[Из песочницы] PHP: культура программирования

Когда её нет


Низкий порог вхождения, легкий способ прострелить себе ногу, потратьте свою энергию на изучение настоящего языка программирования — много обидных слов может услышать PHP-разработчик от коллег-программистов, которым посчастливилось освоить другие технологии. PHP удобно ругать всем, — каждый посвященный может найти, за что зацепиться. Тем не менее, на рынке до сих пор очень востребованы хорошие специалисты, способные писать качественный код на этом языке. Более того, если вы выбрали этот путь, на собеседовании в серьезной компании с подкованными технически руководителями и старшими программистами вы вряд ли услышите что-нибудь глумливое про PHP.

Во многом такое негативное отношение объясняется отсутствием культуры программирования у большого количества PHP-разработчиков. Почему так происходит? Да, у этого языка действительно низкий порог вхождения и легко освоить его может человек без специального технического образования. Изучив основы, можно сразу делать небольшие проектики и даже продавать свои услуги на биржах фрилансеров. А раз на такое есть спрос, зачем тратить время на углубление своих знаний, когда деньги можно зарабатывать уже сейчас?
Иногда случается чудо, — такие проекты «взлетают» и их владельцам требуется расширение функционала и увеличение производительности, а связь с человеком, который год назад всё это наваял, увы, уже оборвалась. Да и у владельцев появились средства на оплату труда настоящих профессионалов.

И вот приходит специалист на поддержку всего этого наследия, клонирует себе репозиторий (в лучшем случае, — бывает, что о контроле версий там и не слыхали) и потихоньку начинает седеть от ужаса. Коллеги ухмыляются — «Ах, да, это же PHP! А чего ты хотел? Каков язык, таков и код». А еще, если с проектом через какой-нибудь API нужно взаимодествовать другим частям разветвленной системы, то «похапэшника», создавшего это, начинают проклинать все технические специалисты в организации. Если вы начинающий PHP-разработчик и вы не любитель унижения, боли и всего такого прочего, попробую поделиться с вами положительным опытом.

Быть культурнее


Мы можем говорить о какой-то общей культуре, когда существует набор символов, кодов, объединяющий нас. У разработчиков программного обеспечения есть такие духовные скре такой особенный язык общения, уровень понимания которого дает распознать хорошего специалиста. К счастью, это не какая-то тайнопись посвященных, — будьте любознательны и это знание обязательно придет!

К примеру, я сам начинал разрабатывать на PHP, когда дикая смесь HTML кода с логикой и можество точек вхождения еще не казались чем-то ужасным. Я был абсолютно бескультурным программистом, у меня не было технического образования, про язык я знал из форумов и книги Люка Веллинга и Лоры Томсон «Разработка веб-приложений с помощью PHP и MySQL», но такое положение вещей доставляло много боли. Я даже не слышал такого термина «точка вхождения». Пришла мысль — как бы направить все запросы только к одному скрипту и обрабатывать их централизовано? Любознательность заставила изучить конфигурацию Apache и возможности .htaccess.

Потом пришло понимание, что инвестиции в собственные знания всегда многократно окупаются, — это беспроигрышный вариант. А культура программирования как раз основана на знаниях (но не только), и это основная ценность в сообществе разработчиков.

Культура — это текст


Я встречал программистов, не любивших читать техническую литературу. Не скажу, что это были плохие знатоки своего дела. Чаще всего, на вопрос, почему ты не знаешь этого автора или как ты мог пропустить второе издание, там ведь как раз про то, над чем ты работаешь, отвечают: зачем тратить долгие часы на чтение потоков воды, когда знание можно получить в сжатом и удобном виде из документации и чего-то вроде stackoverflow. Конечно, в ходе разговора часто выяснялось, что это небольшое лукавство, в культурном багаже уже есть и Банда Четырех, и «Совершенный код», и «Программист-прагматик»… Мы понимаем друг друга.

Сейчас серьезные бородатые апологеты Java и C++ зададут вопрос — а какое все это имеет отношение к PHP? Не закидывайте меня порчеными овощами — на PHP тоже можно писать красивые вещи, если, конечно есть глубокое понимание того, как это делать. А оно невозможно без широкого контекста культуры программирования. Увидеть красоту языка, понять, как нужно делать правильно, мне помогла книга Мэтта Зандстры «PHP. Объекты, шаблоны и методики программирования». После первого прочтения многое было непонятно, но возникло непреодолимое желание поглощать технические тексты мегабайтами.

А позже стало ясно, что знать хорошо какой-то язык программирования можно, если знаешь другие языки. Получить хорошую теоретическую базу в этом плане мне сначала помогла книга Бьярне Страуструпа «Программирование: принципы и практика использования C++» (в общем-то, когда-то ее чтение и навело меня на мысль написать статью о культуре программирования и PHP). И не обязательно оттачивать свои способности в другом языке до совершенства (хотя, скорее всего, что-то из этого в итоге будет доставлять больше радости, чем PHP), достаточно понимать принципы и различия. Такой разносторонний взгляд открывает скрытые ранее возможности сделать свой код понятнее и производительнее, а видя в ваших исходных текстах знакомые шаблоны проектирования, гуру Java уже не будут косо смотреть на вас (ну, разве что чуть-чуть, по привычке).

© Habrahabr.ru