Компания JetBrains известна, в первую очередь, своей средой Java-разработки IntelliJ IDEA. Но, помимо неё, у компании есть масса первоклассных продуктов, которые будут интересны разработчикам, ориентирующимся на другие технологические платформы. Сегодня познакомимся с двумя средами, предназначенными для web-разработчиков.
Что такое Web IDE по версии JetBrains
Компания jetBrains достаточно четко обозначает что, по её мнению, заслуживает названия Web IDE. Ничего нового и сверхъестественного в её взгляде на вещи, собственно говоря, нет. На сайте компании можно найти простую формулу: Web IDE = JavaScript / HTML Editor + JS Debugger + VCS Support. Думаю, что большая часть наших читателей согласится с тем, что эта формула действительно хорошо описывает среду для web-разработчиков.
Впрочем, она справедлива только для одного из двух продуктов, о которых пойдет разговор. Вторая среда - это типичная IDE для языка PHP, на котором сегодня пишется львиная доля всех сайтов в Сети. На мой взгляд, Web IDE в полном смысле этого слова - это обе эти среды вместе, плюс ещё продукт наподобие Adobe Fireworks или другой инструмент создания web-графики. Впрочем, если говорить не о комплексной разработке сайтов, а именно о кодинге, то продуктов от JetBrains хватит, что называется, "выше крыши", тем более что PHPStorm полностью включает в себя функциональность WebStorm.
WebStorm: самое главное
Сначала поговорим о среде разработки, название которой можно перевести как "Буря в Сети". Подробную информацию о ней можно найти на сайте компании-разработчика по адресу www.jetbrains.com/webstorm.
Первое, что хочется сказать про эту среду, - она кросс-платформенная. То есть работать с ней можно и из-под Windows, и из-под Linux, и из-под MacOS. Это очень удобно по той причине, что у каждого web-разработчика, не привязанного, по сути, к конкретной операционной системе, может быть своя любимая программная платформа, с которой он предпочитает работать. И пересаживать всех под Windows или под Linux - не самый удачный путь.
Второй пункт - это поддержка HTML5, о котором я совсем недавно рассуждал в рубрике "Анализ" ("КВ" №11). Пусть HTML5 пока и не самый популярный стандарт, но некоторые заказчики уже внесли его в список своих требований, а, как известно, кто платит, тот и заказывает музыку. В чем именно выражается поддержка HTML5? В основном, конечно же, в подсказках по введенным этим стандартом новым тегам с возможностью корректной валидации HTML5-страниц и аналогичными возможностями для связанных с HTML5 элементов страницы (скриптов и т.д.).
Ну а третье, что хотелось бы отметить - это поддержка популярных JS-фреймворков на уровне среды. Поддержка, в общем-то, заключается практически в тех же самых вещах, что и в случае HTML5. То есть среда выдаёт подсказки по использованию конструкций кода для фреймворков, позволяет оперативно просматривать документацию по фреймворкам и делать другие подобные вещи. Логично сразу спросить, какие именно фреймворки поддерживаются. Их пока не очень много, но все достаточно важны: JQuery, YUI, Prototype, DoJo, MooTools, Qooxdoo, Bindows.
Есть ещё немало вещей, которые хочется сказать про эту среду, но сейчас мы перейдем к разговору о другом продукте, который также должен появиться в этом обзоре.
А теперь о PHPStorm
Сразу, как водится, дам ссылку на страницу, посвященную этой IDE: www.jetbrains.com/phpstorm. Нужно сказать, что всё, что написано выше про WebStorm, справедливо и для второго из рассматриваемых программных продуктов, потому что эта среда является расширением для WebStorm с поддержкой PHP.
Поддержка PHP реализована на всех уровнях: и на уровне управления проектами в среде, и на уровне написания программного кода, и на уровне его последующей отладки и тестирования. Есть встроенный модуль создания тестов для PHPUnit и их последующего запуска прямо из IDE. Если тест провален, вы можете мгновенно переходить от StackTrace на строку кода, где произошла ошибка.
Действительно приятная и гораздо более полезная, чем поддержка unit-тестов, вещь - это визуальный PHP-отладчик. Он поддерживает не только точки останова, вычисление выражений в рантайме, но и такие вещи, как одновременная отладка страницы для нескольких сессий, сохранение сессии при переключении между страницами и т.д. Очень полезна и интеграция с основными браузерами, популярными в пользовательской среде - вы можете использовать панели инструментов Zend Toolbar, XDebug или закладки браузера, чтобы начать отладку непосредственно с любой страницы в Firefox, IE, Google Chrome или Safari.
Поддерживаются и системы контроля версий - куда без этого в современной интегрированной среде? Их список, в общем-то, вполне стандартен для IDE, выпущенных в последние годы, и выглядит следующим образом: Subversion, Mercurial, Git, Perforce, CVS. Как пишут разработчики из JetBrains, все трудоёмкие задачи выполняются автоматически, а встроенный визуальный инструмент слияния разрешает все конфликты быстрым и интуитивно понятным способом. Изменения, внесённые локально, выделяются по мере ввода в редакторе кода, и "откатить" их можно буквально в два клика мышью. Дополнительно к этому, если вы работаете с кодом чисто локально, то есть не используете систему управления версиями, среда позволит всё равно следить за изменениями, которые вносились в код. Среда сохраняет историю изменения каждого файла проекта, а также всего проекта в целом и позволяет затем посмотреть на этапы этих изменений.
В принципе, наверное, основные особенности PHPStorm, о которых нужно было рассказать в первую очередь, я уже упомянул. Теперь поговорим немного и об общем впечатлении от этих двух сред разработки.
"Штормы" в целом
Нужно сказать, что обеим "штормам", как и в целом продуктам компании JetBrains, присуще высокое качество. Они удобны для пользователя, приятны для глаза, быстро запускаются, не тормозят при работе (если только, конечно, у вас не совсем уж древний компьютер). В общем и целом, это как раз те среды разработки, которые с удовольствием используют сами программисты и HTML-кодеры, и не последнюю роль в этом играют разные удобные функции, о которых я ещё не успел подробно рассказать.
Например, возьмем такую вещь, как рефакторинг JavaScript-кода. Казалось бы, не слишком важная функция, потому что не каждый день разработчику приходится заниматься "причесыванием" и реструктуризацией своего старого или вовсе чужого программного кода. Но на самом деле эта функциональность очень и очень важна, поскольку избавляет разработчика от скучной рутинной работы. Что именно позволяет делать эта функция в средах JetBrains? * Переименовывать элементы программного кода, выполнять извлечение переменной/функции или, напротив, её "встраивание", перемещать и копировать участки кода с автоматическим изменением всех связей с ними. Также можно выполнять безопасное удаление элементов или участков кода и выделение кода в отдельный файл скрипта. Всё это, как видите, можно сделать и вручную, но когда IDE это может делать сама, производительность труда разработчика возрастает.
Ещё одна "мелочь", из которой складывается удобство работы в конкретной интегрированной среде - это навигация по коду. Речь даже не столько о таких средствах, как разнообразные деревья классов, стилей и прочего, располагаемые традиционно сбоку от основного редактора кода, сколько о возможности получения актуальной информации именно тогда, когда она нужна. Например, если вы в "Штормах" наведете курсор на название класса CSS, который применяется к какому-нибудь div'у на web-странице, и нажмете Ctrl+Shift+I, тут же всплывёт окно, содержащее в себе определение соответствующего стиля. Также для определённого тега можно посмотреть всё дерево наследования стилей, просто кликнув правой кнопкой мыши по тегу и выбрав из всплывающего меню пункт "Show Applied Styles".
Или, скажем, ещё одна вещь, не очень типичная для IDE, предлагающих поддержку HTML и PHP: подсказки по коду SQL-запросов, встречающихся в скриптах. Когда запросы не очень сложные, то и без подсказок вполне можно жить. Но даже с простыми запросами в масштабных проектах, да и просто в ситуациях, когда разработчик вынужден держать в голове множество названий таблиц, баз данных и прочего из разных проектов, эта функция будет очень полезной.
Не могу не упомянуть тут и инструмент проверки орфографии, который совсем не помешал бы и некоторым IDE для Java, C++ и т.д., потому что иногда написанные в спешке комментарии содержат в себе ошибки, полностью маскирующие их смысл. Ну а если речь о редактировании HTML-страниц, становится понятно, что средство проверки орфографии просто жизненно необходимо.
Резюме
Наверное, еще долго можно было бы рассказывать о функциях WebStorm и PHPStorm, но здесь, я так думаю, как раз тот случай, когда лучше один раз увидеть, чем сто раз услышать. Компания JetBrains не зря славится как разработчик интегрированных сред высочайшего уровня - мы с вами убедились, что продукты компании для web-разработчиков чрезвычайно удобны, многофункциональны и вообще всесторонне замечательны. На этом разговор о них и закончим - думаю, если даже после прочитанного вы не заинтересовались этими программными продуктами, то вам они, скорее всего, не интересны в принципе.
Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by
Горячие темы