Блокнот - оружие быдлокодера?

Какой Вы кодер?
Хочу стать Быдлокодером (34)
13%
Начинающий Быдлокодер (21)
8%
Быдлокодер - Профессионал :) (28)
11%
Учусь РНР (90)
35%
Начинающий кодер (53)
20%
Продвинутый кодер (22)
8%
На уровне профи! (11)
4%
Всего голосов: 259
4.12K
.
╭∩╮ (`-`) ╭∩╮
Продвинутый поиск с заменой, как по отдельному файлу, так и по всем файлам проекта
Данная функция также непосредственно дополняет поддержку "проектов". Поиск и замена есть во всех текстовых редакторах, но "глобальный" только в продвинутых IDE, которые поддерживают "проекты".
.
╭∩╮ (`-`) ╭∩╮
Дебаггер
Отладка и поиск ошибок - вещь неоднозначная, каждый ее делает основываясь на своем опыте...
Но существуют дополнения, которые устанавливаются на Ваш сервер отладки (обычно на денвер) и позволяют получать подробнейшую информацию о ходе выполнения скрипта.

К примеру: вы написали сложный класс, в котором куча переменных и методов. И у Вас вдруг возникла ошибка, скрипт работает не так, как Вы задумали, или вообще не работает.
При разработке, подобная ситуация встречается очень часто (если не сказать всегда).
Как поступить? Писать кучу echo $var; выводя нужные переменные для отладки?
тут как раз и приходит на помощь дебаггер.
Вы можете выполнять код построчно, наблюдая за поведением и всеми локальными и глобальными переменными (за их значениями), можете установить где-то в нужном месте скрипта так называемую "точку останова" (BreakPoint) и код выполнится именно до этого места.
Все IDE, которые имеют поддержку дебаггера, обычно при отладке открывают специальное окно, где выводятся все переменные и параметры выполнения скрипта.

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

Наиболее распространен бесплатный Xdebug, однако есть и более продвинутые, коммерческие варианты отладчиков.
Один из них (вообще, первый из созданных отладчиков для РНР) встроен в Zend Studio, другой в составе NuSphere PhpEd.
Прикрепленные файлы:
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Профилировщик
Довольно редкая вещь, из IDE, встроенный профилировщик имеют только Zend Studio и NuSphere PhpEd.
Однако, если Вы используете Xdebug, к нему есть отдельные утилиты (например WinCacheGrind), которые позволяют проводить профилировку. Конечно это уже не так удобно, как если профилировщик встроенный, но тем не менее, свою работу выполняет.

Итак, что такое "профилировка" и с чем ее едят?
Вы наверно часто видели (возможно и используете сами) вывод времени генерации страницы с помощью microtime().
Знаете, что когда время генерации мало - скрипт работает быстро и это хорошо.
Когда время генерации велико - это плохо и скрипт работает медленно.

Но как искать причину медленной работы скрипта?
Что виновато, неудачный алгоритм, цикл, или просто большая база и запрос забирает много времени?
Что именно нужно оптимизировать для достижения максимальной производительности?

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

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

З.Ы.
На картинке виден результат работы профилировщика.
Подробно показана работа всех функций, с графиками, временем выполнения и, если работа функции циклическая, то сколько раз она выполнялась.
Как вы догадываетесь. с помощью простого замера времени генерации страницы, такую информацию получить невозможно.
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
Поддержка систем контроля версий
Серьезные разработчики, которые работают с крупными проектами. уже давно заценили удобство систем контроля версий и наверняка используют какую-то из них.
Наиболее распространенная из них - Subversion (это серверная часть) сокращенно называемая SVN.
Из клиентских частей, именно она ставится на компьютере разработчика, наиболее продвинутая и удобная - это TortoiseSVN

Некоторые IDE имеют свой, встроенный клиент для SVN, но на мой взгляд это лишнее. Я пока еще не видел клиента, удобнее, чем TortoiseSVN и важно, чтоб IDE его поддерживала.
Тут в основном хорошие новости, большинство из нормальных IDE без проблем поддерживают TortoiseSVN
Проблема только у редакторов, написанных на Java (Zend Studio, NetBeans, Aptana), но у них обычно есть свои, встроенные клиенты SVN.
Вообще нет поддержки в DzSoft PHP Editor и PHP Expert Editor, но если Вы не используете SVN и не работаете с крупными проектами, для вас данный факт несущественный.

На рисунке Вы можете видеть работу TortoiseSVN.
В менеджере проекта редактора, все файлы, которые синхронизированы с репозиторием, имеют зеленые метки.
Те файлы (и папки), где есть изменения, выделены красными метками.
Одно из открытых окон спереди - это сравнение изменений между тем, что вы наработали и тем, что в репозитории (сравнение с предыдущей версией).
Окно сзади - это важнейшая часть - журнал SVN проекта, где показаны все изменения, начиная с самого первого билда.
В случае необходимости, Вы сможете достать любой файл, любой версии.
Прикрепленные файлы:
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Поддержка различных кодировок (Unicode и др.)
Тут все просто. На сегодняшний день, даже все блокноты поддерживают нужные кодировки. Нас в основном интересует UTF-8.
Если вдруг Ваш редактор не поддерживает юникод - сразу выбросьте его и сожгите до мелкого пепла
.
╭∩╮ (`-`) ╭∩╮
Блокнот VS IDE
Подводя итог, давайте разберемся, что же лучше, блокнот, или IDE?

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

Некоторые из блокнотов весьма продвинутые и имеют кучу плагинов и их возможно "дорастить" до уровня IDE.
К примеру, PSpad поддерживает проекты, имеет на борту такие функции, как Code Split, Code Folding, Code navigator и кучу других. Если к нему подцепить РНР, настроить живую проверку синтаксиса (это возможно в его настройках), установить Xdebug и WinCacheGrind, то это уже получится самая настоящая IDE, блокнотом уже назвать язык не поворачивается

Всеми любимый Notepad++ в отличие от PSpad, как раз является очень продвинутым блокнотом. У него есть куча плагинов, которая помогает при редактировании кода, есть FTP менеджер. Но у него нет большинства функций, которые мы рассмотрели выше и которые присущи IDE. Потому, на мой взгляд, Notepad++ остается пусть и весьма продвинутым, но именно "блокнотом", точнее даже "текстовым редактором для кодеров".

IDE дает Вам то преимущество, что там уже все собрано вместе, настроено и корректно работает. Вам не нужно возиться с кучей плагинов, которые к тому же не всегда совместимы друг с другом. В IDE вопрос совместимости отпадает.
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Последний вопрос: ЧТО ВЫБРАТЬ?
На это я уже отвечал в другой статье, с обзором IDE, но давайте еще раз зададимся этим же вопросом, с учетем "блокнотов". Блокнот, или IDE?

Если вы занимаетесь РНР кодированием не 10 минут в год, а это Ваше настоящее увлечение, то по мере совершенствования вашего мастерства, Вы будете выбирать себе более серьезные инструменты. Не страшно, если Вы прочитали статью и с ужосом обнаружили, что до сих пор пользуетесь блокнотом и по некоторым признакам, попадаете под определение "быдлокодера" Инструмент всегда можно поменять, главное, чтоб Вам было удобно.

К примеру, расскажу о себе. Сайтами я занимаюсь уже очень давно, еще с 1999 года, именно РНР конечно не так давно, года 3 с хвостиком, раньше работал на ASP. Но хочу описать хронологию моих основных инструментов работы для кодирования:
MS FrontPage -> Macromedia Dreamweaver -> phpDesigner -> RapidPHP -> NuSphere PhpEd -> PhpStorm + PhpEd
Конечно пробовал огромную кучу других редакторов, но основными инструментами являлись именно те, что перечислил.
В данный момент, мой личный "набор инструментов" выглядит так:
Corel DRAW! - векторная графика, логотипы
Adobe Photoshop - редактирование изображений, подготовка фотографий
Adobe Fireworks - основной графический дизайн сайтов, кнопки, иконки, анимация
Adobe Dreamweaver - Верстка WEB сайтов, подготовка сложных макетов дизайна
RapidPHP - редактирование CSS, HTML, в "походном режиме" редактирование РНР
JetBrains PhpStorm - основной инструмент для разработки кода
NuSphere PhpEd - отладка и профилировка PHP кода
SmartFTP - продвинутый FTP клиент. Все работы с сайтами я веду именно через него, ибо удобство и функции не идут ни в какое сравнение с теми, что обычно встроены в редакторы. Как говорится в пословице: "пироги должен печь пирожник, а сапоги точать сапожник".
NaviCat Premium - работа с базами данных, отладка SQL запросов, бэкап баз с сайтов и др.
DENWER (собственный мод) - локальное тестирование и отладка проектов.
TortoiseSVN - контроль версий, работа с репозиторием.
Инструментов как видите много, но каждый из них справляется именно со своим делом лучше и удобнее других, потому активно использую все эти программы.

Что же выбрать Вам?
Конечно, если занимаетесь кодированием редко, чтоб лишь подредактировать пару строк, вполне можете ограничиться одним из блокнотов, типа PSpad, или Notepad++
Но если Вы работаете серьезно, то однозначно надо выбирать среди полноценных IDE.
Насчет выбора IDE, я напишу в отдельной статье, которая скоро появится тут на сайте.

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

З.Ы.
Перепечатка статьи разрешена, но с обязательным указанием автора и ссылки на этот сайт.
.
╭∩╮ (`-`) ╭∩╮
Уххх, дописал, надо выпить пива, чтоб расслабиться
Можно каментировать гг
.
Я оссознал что я быдлокодер =)) терь перешел на RAPID PHP 2007
.
╭∩╮ (`-`) ╭∩╮
Dimario (07.07.2010/15:21)
Я оссознал что я быдлокодер =)) терь перешел на RAPID PHP 2007
Не, 2007 не то. Переходи на RapidPHP 2010
Всего: 309