Pull to refresh

Краткий обзор современного инструментария для начинающего разработчика Drupal

Reading time6 min
Views5.3K
Относительно недавно в Москве проходила конференция DrupalConf'2011, на которой я рассказывал про инструменты для начинающего разработчика Drupal.

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

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



Теперь собственно презентация на SlideShare (можно скачать) и пронумерованные тезисы по слайдам.

Слайд 1.
Итак, сперва я обозначу критерии, по которым я подбирал инструменты. В мире распространены с относительно разной популярностью несколько операционных систем — Microsoft Windows, Apple MacOSX и GNU/Linux. В силу некоторых обтоятельств у меня несколько рабочих мест и я использую в своей работе каждую из этих систем. Поэтому одним из наиболее важных для меня критериев выбора программ — это их кроссплатформенность, т.е. способность работать и выглядеть одинаково в нескольких операционных системах.

Следует заметить, что я не являюсь каким-то ярым фанатиком ни одной этой системы. Я одинаково комфортно ощущаю себя в каждой из них. В этом сыграло роль как раз то, что я стараюсь максимально использовать приложения, которые работают во всех системах без проблем. Но для себя я спозиционировал, что Microsoft Windows — это для людей, которые не хотят менять свои привычки, так называемых консерваторов. Apple MacOSX — это для людей, уставших от периодических переустановок систем, частых глюков системы ( в которых кстати зачастую виноват так называемые железные факторы, неправильно подобранная конфигурация или некорректно установленный драйвер на устройство) — в MacOXS этого нет, вы получаете практически готовый и отлаженный компьютер, к тому же собранный очень качественно. Для примера, я решил на днях почистить от пыли iMac жены, которые простоял на одном месте больше 3 лет — после вскрытия корпуса я обнаружил что пыли внутри практически нет, за исключением небольшого налета на лопастях вентилятора, стоящего над процессором.
Ну и наконец, GNU/Linux — для людей, желающий максимально приблизится к сообществу открытого кода (не секрет, что Drupal — это open-source система), а также проводить разработку в приближенных к реальности условиях. Большинство хостингов использует Linux в качестве основной системы на серверах. На мой взгляд даже начинающий разработчик должен иметь хотя бы поверхностное видение того, с чем он работает.

В заключении холиварной темы, напоминаю о том, что я рассказывал о критериях выбора инструментов. Кроме кросспатформенности для меня важны также удобство и функциональность, скорость работы и технические требования. Последний вариант немаловажен по причине того, что я использую нетбук для мобильной работы.

Слайд 2.

Исходя из озвученных мной критериев давайте посмотрим, что можно обсудить. Первое — это Geany. Все знают редактор notepad++ и считают его очень удобным. Но к сожалению, работает он нативно только в Windows и под MacOSX и Linux его нет. Вместо него я использую редактор Geany, который по функциональности в общем то не уступает notepad++, зато работает и в Windows и в Linux, при этом расширяется за счет плагинов и имеет поддержку синтаксиса множества языков программирования и скриптов. Редактор достаточно легковесный и быстрый, хотя в самом начале наверное придется немного привыкнуть к его внешнему виду. Пожалуй минусов то у него и нет, за исключением того, что поддержка более менее развитой работы над проектами в нем отсутствует в принципе и поддержка инструментов для командной разработки минимальна.

Дальше на выбор начинающий разработчик может обратить внимание на две среды разработки, два монстра — это Eclipse и NetBeans. Обе IDE очень функциональны, удобны и обладают множеством плюсов. Выбор между ними неоднозначен, но мне для комфортной работы больше нравится NetBeans. Хотя если вы работаете в большой команде, то скорее всего будете использовать Eclipse — все таки поддержка инструментов командной разработки в ней реализована лучше.

Пожалуй есть только два момента, что меня смущают в работе с NetBeans, но при этом они не мешают — это отсутствие поддержки рабочих пространств в том виде, как они сделаны в Eclipse (рабочее пространство в отдельной папке и выбирается при запуске), а так же отсутствие возможности указать, в каком виде создавать окончания строк — в стиле Windows или в стиле Unix. Как известно, в стандарте кодирования для Drupal указано, что предпочтительней использовать окончания в стиле Unix. Впрочем, фатальной ошибкой использования окончаний строк в стиле Windows не будет. NetBeans смотрит на начало файла и воспроизводит тот стиль, который он находит в ней. Т.е. если изначально файл был с окончаниями в стиле Windows, то так и будет по всему файлу. Создаваемые в NetBeans новые файлы будет созданы в соответствии с той операционной системой, где в данный момент он запущен.

Есть еще множество редакторов и IDE, которые используют разработчки на PHP и на Drupal в частности, но я их не рассматриваю по причинам того, что большинство из них не кроссплатформенны, а некоторые платные.

Слайд 3.

Как известно, скрипты на PHP (Drupal написан на PHP большей частью) выполняются на сервере. Соответственно для разработчика важно подобрать программное обеспечение, которое ему обеспечит работу его проектов в должной мере. Наиболее распространеным является набор из web-сервера Apache, СУБД MySQL и интерпретатора PHP. Есть еще варианты использования web-сервера nginx или lighttpd, СУБД PostgresSQL и других, но они намного менее распространены и к тому же не полностью поддерживаются модулями под Drupal.

Любому более менее опытному разработчику на PHP/Drupal известна широко распространенная сборка под названием Denwer. Это минималистичный набор из Apache+MySQL+PHP, который достаточно установить в ОС, чтобы можно было работать с сайтами на Drupal. Но следует знать, что эта сборка работает только под Windows, на мой взгляд слишком проста и разработчик зачастую не представляет, как оно там внутри него все работает. Ну и встречались моменты, когда при запуске на Denwer сайты на Drupal некорректно работали, хотя у хостера было все без проблем. Эту платформу я упомянул лишь для того, чтобы показать ее слабые стороны.

Для своих проектов, если я работаю с ними локально, я использую XAMPP — это сборка более функциональная, чем Denwer, в ней гораздо шире представлен набор модулей расширения для Apache и PHP. К томуже работает она шустрее и что самое важное — и в Windows, и в Linux и в MacOSX. Единственный недостаток — ее настройка для работы с сайтами, у которых адрес отличен от localhost, чуть сложнее, чем при использовании Denwer.

Чтобы уж совсем разобраться в работе Apache+MySQL+PHP, вы можете самостоятельно установить по очереди все необходимые компоненты, руководство по их настройке вы найдете в сети. Я же хочу упомянуть в этом свете Zend Server — это сборка от той самой небезизвестной компании Zend Technologies. Она распространяется в двух вариантах — бесплатном Community Edition и платной версии, которая включает в себя пару дополнений, в том числе модуль шифрования/расшифровки скриптов.

Упомяну на всякий случай, чтобы избежать упреков, что под MacOSX есть аналог Denwer и называется он MAMP Pro. Но следует понимать, что Pro версия платная, а бесплатный вариант MAMP очень ограничен в функциональности.

Слайд 4.

Мы рассмотрели, в чем может работать разработчик, настало время подсказать некоторые инструменты, которые помогут разработчику построить процесс разработки более корректно.

Особо я хотел упомянуть система контроля версий — это Subversion, GIT, Mercurial и др.

При их использовании вы сможете всегда вернутся и просмотреть историю изменений, причем независимо от того, работали ли вы на этом рабочем месте или на другом. И уж точно эти системы будут полезны, когда над проектом работают несколько человек.

Для начинающего разработчика я бы рекомендовал обратить внимание в первую очередь на GIT — во-первых, эта система не требует отдельной серверной части, а значит проще в использовании, во-вторых ее выбрала команда drupal.org для работы над кодом Drupal и модулей под него, что тоже немаловажно, если вы захотите вынести свой проект в открытый доступ и попасть в список модулей на drupal.org.

Если ваша команда насчитывает много разработчиков, то скорее всего вы будете использовать Subversion, из-за своей централизованности и распространнености она более контролируемая. Кстати, один из докладов на эту тему будет сегодня.
Ну и конечно же, как разработчик Drupal вы должны уметь пользоваться и обязательно использовать модули для разработчиков, как минимум этот Devel и Coder. Модуль Devel вам поможет понять узкие места на сайте, а Coder проконтролирует ваш код, насколько вы его написали корректно с точки зрения стандартов разработки.

Для удобства работы с сайтами на Drupal также настоятельно рекомендую изучить возможности утилиты drush вместе с вариантом drush make, это вам очень поможет. В частности совсем недавно на сайте drupal.ru рассказывалось о том, как с помощью drush синхронизировать между собой версию для разработчика и рабочую версию сайта.

Кстати, я пытался настроить в Windows drush, и у меня даже что-то получалось, но это было достаточно нетривиально, в отличии от Linux.

Слайд 5.

Заключительное слово — на слайде вы можете найти ссылки, где почитать про некоторые из перечисленных мной инструментов и по их настройке для Drupal. Я ранее не упомянул, но при настройке Eclipse или Netbeans есть возможность добавления так называемых шаблонов кода, т.е. уже оформленных кусочков кода, которые вставляются по набору определенного названия и нажатия специальной клавиши — в итоге вы сможете значительно быстрее и правильнее оформлять объявления функций-хуков для Drupal.
Tags:
Hubs:
+11
Comments44

Articles