• Достоинства и фатальные недостатки типизации в php

      Язык php часто ругают, обычно необоснованно. Особенно удивляет, что javascript ругают меньше. Зачастую это делают люди, которые писали на нем 10+ лет назад, когда язык был действительно чертовски плох, да и разработчики в те времена не задумывались над качеством кода. Посмотрите хотя бы на код wordpress, который до сих пор вызывает шок.


      Ругают необоснованно, но проблемы у языка, конечно же, есть, и они серьёзные. Разуметеся, если сравнить последние релизы php7 (с нормальным ООП и строгим тайпхинтингом) и php4, то разница будет колоссальная. Однако и в последних версиях языка не всё гладко, и до java/c# пока что очень далеко. Более того, берусь утверждать, что будущее php тоже довольно сомнительно (с точки зрения типов).


      Другими словами, давайте рассмотрим предметно, что хорошо и что плохо в php с точки зрения типизации.

      Читать дальше →
    • 21 совет по эффективному использованию Composer

      • Перевод
      • Tutorial

      Хотя большинство PHP-разработчиков умеют пользоваться Composer, не все делают это эффективно или лучшим возможным образом. Поэтому я решил собрать советы, которые важны для моей повседневной работы. Большинство из них опираются на принцип «От греха подальше»: если что-то можно сделать несколькими способами, то я выбираю наименее рискованный.
      Читать дальше →
      • +34
      • 9,4k
      • 7
    • Бэкенд игрового сервера World in Conflict выложен в открытый доступ

        image

        Исключительно хорошая новость: совместными усилиями компаний Ubisoft и шведской Massive Entertainment, в открытый доступ выложен рабочий сервер для игры World in Conflict. Данная стратегия в реальном времени (RTS) вышла в 2007 году; её официальный сервер Massgate был закрыт в 2016, после чего коммьюнити massgate.org решило вернуть игру к жизни, чем и вдохновило Ubisoft на данный шаг — теперь любой сможет поднять свой собственный сервер для мультиплеера и другого онлайн-функционала.

        Исходный код бэкенда доступен по ссылке на Github по лицензии GPL-2.0. Сам игровой сервер написан на С++, поэтому для компиляции вам потребуются CMake и Visual Studio. Для запуска вам также понадобятся MySQL (в оригинале использовался MySQL 4.2.1, но всё должно работать и на более свежих версиях) и любой простейший веб-сервер (авторы рекомендуют SimpleHTTPServer).

        Кстати, саму игру можно сейчас получить абсолютно бесплатно до 23 декабря по ссылке — правда, для этого вам может потребоваться завести аккаунт в Uplay.
        Читать дальше →
        • +17
        • 6,5k
        • 1
      • Латентные паразиты

        За годы работы ИТ-директором, среди руководителей разного уровня, сделал одно наблюдение — забавную разницу в подходах к постановке задач и контролю их выполнения.

        Есть нормальные, адекватные постановка и контроль, которые приводят к решению задачи, двигают вперед и улучшают состояние компании.

        А есть странные, забавные, иногда неприятные способы, которые приводят к повышению ЧСВ руководителя, разрушению команды, ухудшению состояния компании, интригам и междоусобицам.

        В чем эта разница? Попробуем разобраться.

        Читать дальше →
      • За пять дней я прошел собеседования в пяти компаниях Силиконовой долины и получил пять предложений о работе

        • Перевод
        За пять дней, с 24 по 28 июля 2017 года, я прошел собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook; все пять компаний предложили мне работу. Это был замечательный опыт и я понимаю, как мне повезло, что мои усилия оправдали себя, поэтому решил написать об этом. Здесь я расскажу о том, как готовился к собеседованиям, как они проходили и какое впечатление произвели на меня компании.



        Как все началось


        Я отработал в Groupon почти три года. Это моя первая работа, там были и прекрасные люди, и отличные проекты. Мы делали всякие интересные штуки, вводили перемены внутри компании, публиковали материалы и все в таком духе. Но со временем я стал ощущать, что темп моего самообразования стал затухать (попросту говоря, замедляться), мне не хватало пищи для ума. К тому же, как и всякого разработчика ПО из Чикаго, меня тянуло в Область залива Сан-Франциско — ведь там столько известных компаний.

        Жизнь коротка, а профессиональная жизнь еще короче. Обговорив все с женой и заручившись ее полной поддержкой, я решил сделать решительный шаг и в первый раз в жизни поменять работу.
        Читать дальше →
      • Почему нужно перестать использовать Git rebase

        • Перевод


        После нескольких лет работы с Git я обнаружил, что постепенно стал переходить на всё более сложные Git-команды в рабочем процессе. Вскоре после того как я открыл для себя Git rebase, я тоже быстро внедрил эту команду в повседневные задачи. Те, кто знаком с этой процедурой, знают, насколько это мощный инструмент и какой это соблазн — постоянно им пользоваться. Но вскоре оказалось, что rebase влечёт за собой ряд неочевидных на первый взгляд трудностей. Но прежде чем обсудить их, хочу быстро рассмотреть различия между merge и rebase.

        Читать дальше →
      • Новый класс для MySql: писать запросы к базе теперь быстро, легко и удобно

          Проблема


          Когда я прихожу на новое место работы, то первым делом я смотрю на то, как организован слой для работы с СУБД. Я не работал с иными фреймворками помимо первого Yii, волею судьбы я попадаю на самописные решения, но везде я вижу практически одно и тоже — просто отвратительная реализация кода доступа к базам данных.

          Читать дальше →
        • Руководство по взаимопониманию между заказчиком и подрядчиком

            image


            Складывается ощущение, что о клиентоориентированности и стремлении к модели «Win-Win» не заявляет только ленивый. Но притом «негласная война» продолжается: исполнители хают «наглых» клиентов, осуждая их в своих уютных бложиках, а заказчики собираются в пятницу вечером в баре, чтобы выдавить слезу разочарования и пожаловаться друзьям на «непрофессионализм» очередных горе-разработчиков / -маркетологов. Каждый тянет одеяло на себя, пытаясь сделать «Win-Lose» в свою пользу. А в итоге получается «Lose-Lose». Хотя очевидно, что 95% рынка с каждой стороны вполне адекватны, у всех есть сильные стороны, достойные уважения.


            Как перестать вести эту бессмысленную «борьбу»? Разберем конкретные тезисы без воды и нудной философии.


            P. S.: это не категоричные установки, претендующие на истину в последней инстанции, а скорее обращение к рынку. Буду искренне рад, если оно поможет хотя бы нескольким «дуэтам» (это и есть правильная форма сотрудничества).
            Читать дальше →
          • Не виноватая я. Он сам пришел

            image

            Я как-то немного пропустил статью и весь всплеск обсуждений и критики Xored. Поэтому буду нагонять.

            Xored — лучшее место для работы, со своей уникальной культурой, уникальным подходом к росту и открытой зарплатной сеткой. Интересные задачи, отличный сплоченный коллектив, гибкий график, возможность частичной работы, и еще много-много всего. За последние годы фирма выросла до 110 человек. При всем при этом, она сохранила и хорошие зарплаты, и интересные проекты, и командный дух.
            Вот только есть одно НО
          • Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом

              Тема трудовой эмиграции в IT-сообществе — одна из любимых. Кто не задумывался о том чтобы уехать туда где трава зеленее? Интернет кишит различными success story. Я же хочу показать, как вашу success story может испортить неудачный выбор места работы.


              В этой статье хочу поделиться с вами своей историей неудачной эмиграции в Прагу и работы с неудачным работодателем, и помочь избежать совершения ошибок, которые совершил я. Немного о себе: меня зовут Алексей, я Java-разработчик, переехал в Санкт-Петербург из Новосибирского Академгородка.


              image
              Читать дальше →