• php-cs-fixer: Пишем свой фиксер

    • Tutorial

    Качество кода не только в том, как он работает, но и в том как выглядит. То, что единый в рамках кампании code style — это очень важная вещь — в наши дни убеждать уже никого не нужно. Код должен быть не только написан, но и оформлен. В плане оформления PHP кода, утилита php-cs-fixer давно уже стала стандартом. Использовать ее довольно просто, есть куча правил и можно удобно забиндить ее запуск на какую-нибудь комбинацию клавиш в шторме или на pre-commit hook в гите. Все это легко гуглится и подробно разбирается в сотнях статей. А мы сегодня поговорим о другом. Хотя в php-cs-fixer есть большое количество разных фиксеров, но что, если нам понадобится такой, которого там нет? Как написать собственный фиксер?
    Читать дальше →
  • 7 золотых правил одного программиста

      Это статья про семь простых правил, которые я сформулировал для себя за годы работы программистом. Семь правил, которые подняли мою эффективность. Сделали меня лучше. Это мои правила и они работают для меня. Я не пытаюсь навязать их вам, я хочу поделиться с вами, и, возможно, узнать о том, каких правил и принципов придерживаетесь вы.

      Компьютер всегда прав


      Самая раздражающая ситуация в программировании — когда код верный, но не работает. “Да тут три строчки, блин, просто негде ошибиться! Наверное баг! Пойду потрачу три дня на изучение баг-репортов компилятора/интерпретатора/фреймворка...”. Возникает чувство, будто компьютер над вами издевается!

      Тут главное помнить, что в этих трех строчках есть ошибка. Если код работает не верно — значит код написан не верно. Точка. Виноваты только вы. Универсальный совет — идите спать! Ну или хотя бы отвлекитесь на чашку чая. Когда, через некоторое время, вы вернетесь к коду, наверняка станет ясно, что тут лишний оператор отрицания, или перепутаны две переменные с похожими именами, или еще какая-нибудь мелочь, в которой мы никогда никому не признаемся.
      Читать дальше →
    • Расцвет Composer и закат PEAR

      • Перевод
      [Дабы не возникло недопонимания, стоит пояснить, что автор оригинального текста — Fabien Potencier, создатель популярного PHP фреймворка Symfony — прим. пер.]

      Совсем недавно, Nils Adermann, прислал мне милую открытку, в напоминание о нашей встречи три года назад на “SymfonyLive hackday” в Сан-Франциско. Nils присутствовал на конференции, т.к. за год до этого, он анонсировал, что phpBB в версии 4 перейдет на Symfony.

      В то время, я серьезно интересовался темой менеджеров пакетов, ибо искал удобный способ управлять бандлами в Symfony2. Для плагинов в Symfony1 я использовал PEAR, но код был очень запутанным, ведь PEAR изначально создавался немного не для этого. Философия Бандлера из Ruby сообщества выглядела очень привлекательно, так что я начал поиски подобного пакетного менеджера. После долгих бессонных ночей, я наткнулся на libzypp, и моментально понял, что это оно! К сожалению libzypp — сложная библиотека, написанная на C, и в таком виде, совсем не подходила для Symfony.

      Я смекнул, что хорошим менеджером пакетов, позволяющим пользователям легко устанавливать плагины/бандлы/моды наверняка интересуется и Nils, для phpBB, так что я завел об этом разговор на hackday в Сан-Франциско. Оказалось, что в то время, Нилс уже начал работу над Composer.
      Читать дальше →
    • Программирование — карьерный тупик?

      • Перевод
      Любите программировать? Тогда и не мечтайте о должности CEO, если только не начнете свой бизнес, и даже в этом случае, менеджмент, скорее всего, вытеснит кодинг из вашей жизни.

      В большинстве компаний, до тех пор, пока вы пишете код, у вас есть ограниченное число повышений в должности. Обычно это позиции от джуниора до тимлида. Возможно вы получите должность архитектора, но чаще всего, архитекторы не пишут код.

      Если же вы решите переметнуться в менеджеры, то все дороги для вас открыты. Бывший CEO компании в которой я работаю, начинал как программист 25 лет назад, через 10 лет переключился в менеджмент, и прошел весь путь, до CEO четырех-миллиардной компании. Не так давно, он ушел на пенсию, имея особняк, машины и не имея никаких беспокойств. Тем временем, я работаю с людьми, которые начинали с ним, и которые до сих пор просто ведущие инженеры по разработке программного обеспечения.
      Читать дальше →
    • Горизонтальное масштабирование PHP приложений. Часть 1

      • Перевод

      Итак вы сделали сайт. Всегда интересно и волнительно наблюдать как счетчик посещений медленно, но верно ползет вверх, с каждым днем показывая все лучшие результаты. Но однажды, когда вы этого не ждете, кто-то запостит ссылку на ваш ресурс на каком-нибудь Reddit или Hacker News (или на Хабре — прим. пер.), и ваш сервер ляжет.

      Вместо того, что бы получить новых постоянных пользователей, вы останетесь с пустой страницей. В этот момент, ничего не поможет вам восстановить работоспособность сервера, и трафик будет утерян навсегда. Как же избежать таких проблем? В этой статье мы поговорим об оптимизации и масштабировании.
      Читать дальше →
    • Почему [не]нужно комментировать код

        imageВ последнее время, набирает популярность мысль, что комментарии в коде — дело не обязательное, и даже вредное. Буквально вчера вечером, общаясь со знакомым молодым программистом, попросившим посмотреть его код, я обнаружил, что комменты отсутствовали вовсе, даже привычные описания методов. На мой удивленный смайлик, был ответ: “Комментарии — первый признак плохого кода”. И черт бы с ним, с начинающим программистом, но я периодически читаю что-то похожее в блогах, и слышу от коллег. Может программирование в очередной раз сделало шаг вперед, а я, среди отстающих? Под катом, немного размышлений, о том, когда и почему стоит или не стоит комментировать свой код.
        Читать дальше →
      • Симпсоны на чистом CSS

          image

          Chris Pattle, web-разработчик из Великобритании, сделал потрясающую вещь — нарисовал персонажей всеми любимого мультсериала «Симпсоны» на чистом CSS. Код можно посмотреть в его аккаунте на github, или тут, под катом.
          Читать дальше →
        • Фетиш-ориентированное программирование

          • Перевод

          За то время, что я занимаюсь программированием, я видел не мало проектов, загнувшихся, благодаря фанатичному следованию различным модным правилам и практикам. Это может быть что-то увлекшее всю команду, например OOP или TDD, или что-то, на чем настоял отдельный разработчик, например: табы против пробелов, или определенный стиль фигурных скобок. Даже программист работающий в одиночестве, может саботировать проект, выбрав фетиш в ущерб продуктивности.
          Вот немного вещей, отнимающих часы, а то и дни программистского времени:
          Читать дальше →
        • Много бесплатных книг по программированию

          • Перевод
          image

          Списки книг




          Программирование графики


          Читать дальше →
        • Воспитываем Джуниора

            imageВ последнее время, многие компании начали открывать у себя вакансии для молодых неопытных программистов. Честно говоря, я считаю, что это здорово, ибо устроиться на работу, не имея опыта, в большинстве отраслей довольно сложно. Однако, беря на работу Джуниора вы должны понимать, что на вас ложится некая ответственность, фактически, вы становитесь наставником этого человека, и не каждый руководитель или тим-лид эту ответственность осознает.
            В этой статье, я хочу рассказать о том, нужен ли вам вообще начинающий разработчик и как выстраивать с ним взаимоотношения.
            Для начала, давайте определим, кто такой Джуниор. Начинающие программисты бывают разные, мы возьмем молодого человека, не глупого, только после института, он знает нужный нам язык программирования, у него за плечами несколько маленьких самостоятельных проектиков и, самое главное, есть желание учиться дальше.
            Читать дальше →