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

Какой Вы кодер?
Хочу стать Быдлокодером (34)
13%
Начинающий Быдлокодер (21)
8%
Быдлокодер - Профессионал :) (28)
11%
Учусь РНР (90)
35%
Начинающий кодер (53)
20%
Продвинутый кодер (22)
8%
На уровне профи! (11)
4%
Всего голосов: 259
5.06K
.
╭∩╮ (`-`) ╭∩╮
Нет, вы не подумайте, что в заголовке утверждение. Я вовсе не имею ничего против блокнота, поэтому заголовок с вопросом. Но странная статистика, заставила меня все же написать такой заголовок.
Вы наверно читали мою предыдущую статью, где я субъективно-объективными методами попытался определить, кого же можно назвать быдлокодером. Саму статью (про быдлокодеров) конечно можно развивать еще, но давайте лучше поговорим об инструментах кодера. Да, именно КОДЕРА, а кто из них обычный кодер, а какой с приставкой "быдло" это уже сами разберетесь.
Вот я говорил про статистику. Вы сами понаблюдайте вокруг, составьте себе список тех, кого Вы имеете основание считать Быдлокодером (конечно если сами таковым не являетесь). Я наблюдал и сделал интересный вывод.
А именно:
В 80% случаев, быдлокодер работает в блокноте, или каком-то его более продвинутом подобии, с подсветкой кода и примитивными функциями закоса под IDE. Быдлокодеры этим очень гордятся и при любом возможном случае хвастаются на форумах, мол вот какие мы крутые, обычным блокнотом варганим великие дела. Быдлокодер-профессионал конечно может себе поставить кое-что замороченное, в большинстве случаев Zend Studio, чтоб потом на серьезных форумах хвастаться своей крутизной, но реальную работу все равно ведет в блокноте. Хотя, в случае с Zend Studio я их не осуждаю. Меня бы самого тянуло к блокноту…
Но вернемся к теме нашей статьи. Вы вот меня спросите, "зачем мол ты докопался до блокнота, хули не нравиццо?" Я уже писал, что ничего не имею против блокнота, когда он применяется там, где надо. Если вам нужно подкорректировать одну строчку, или вписать несколько слов в меню, это действительно вполне можно сделать и в блокноте. Но когда Вы садитесь за написание серьезных вещей (больших и сложных скриптов), инструмент тоже должен быть серьезный.
Вот представьте себе, Вам нужно стоить дом, нужно выкопать котлован. Да, это можно сделать простой лопатой, но сколько у Вас уйдет времени и сил? Экскаватор стоит дорого, но он с этой работой справляется шутя. Да и в любой отрасли и специальности, ХОРОШИЙ специалист всегда имеет ХОРОШИЙ инструмент. Подойдите на любом заводе к токарю, или фрезеровщику высокого разряда и попросите его поработать на старом, сломанном станке с тупыми резцами, или вообще напильником… Да он Вас пошлет куда подальше. Попросите водителя профессионала сесть за старый, раздолбанный авто... Смешно не правда ли?
Так почему же кодер отличается от вышеперечисленных специальностей? Кодер - это тоже специалист в своем деле. И хороший специалист должен иметь хороший инструмент! Обычно даже не один, а набор инструментов.
Можно ли в блокноте, или другом примитивном инструменте написать к примеру CMS? Вполне можно, и пишут же. Но работа получается соответствующая, про которую обычно говорят "быдлокод". Быдлокодер мне конечно возразит, скажет мол "фигню афтар пишед", но далее я уже перейду на серьезный язык и напишу про то, ради чего собственно и затевалась статья
Быдлокодер конечно будет визжать и брыкаться, плеваться, говорить мол "мне и так удобно с моим блокнотом, зачем мне лишние заморочки?".
Вот цель данной статьи, как раз рассказать про эти самые "заморочки". То есть, чем серьезная IDE отличается от пусть и продвинутого блокнота. Многие этим не пользуются, ибо не знают, для чего предназначена та, или иная функция (которых в серьезной IDE очень много). Я конечно не смогу рассказать про все, точнее расскажу про малую часть, но ОЧЕНЬ полезную.
.
╭∩╮ (`-`) ╭∩╮
Если Вы читали статью, где я проводил обзор IDE редакторов для PHP кодера (http://gazenwagen.com/forum/in ... 21921), то наверно обратили внимание, что оценку я ставил по определенным критериям. давайте еще раз перечислим их:
Итак, важнейшие функции:
1) Возможность сворачивания блоков кода (Code Folding)
2) Возможность редактировать один скрипт в двух окнах, или с разбивкой одного (Code Split). Это очень удобно, когда редактируешь большие скрипты.
3) Настраиваемая подсветка кода
4) Живая проверка синтаксиса
5) Контекстная справка по функциям
6) Навигатор по коду, с подсветкой (и желательно с группировкой) переменных
7) Поддержка "проектов"
8) Поиск объявленой переменной по всем файлам проекта
9) Продвинутый поиск с заменой, как по отдельному файлу, так и по всем файлам проекта.
10) Дебаггер
11) Профилировщик
12) Поддержка систем контроля версий
13) Поддержка различных кодировок (Unicode и др.)
Справедливости ради нужно заметить, что некоторые из особо «продвинутых» блокнотов, типа PSpad, или Notepad++ имеют некоторые из этих функций, но всего вместе нет, иначе это уже будет не блокнот, а настоящая IDE
.
╭∩╮ (`-`) ╭∩╮
Возможность сворачивания блоков кода (Code Folding)
Вы легко можете «свернуть» ненужный кусок кода, и все будет выглядеть намного нагляднее. Данная функция очень полезна при работе с большим кодом, в несколько сотен, или тысяч строк.
Данная функция есть у некоторых продвинутых блокнотов.
Прикрепленные файлы:
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Возможность редактировать один скрипт в двух окнах, или с разбивкой одного (Code Split)
Серьезный кодер часто сталкивается с ситуацией, когда код большой. Где-то вначале файла расположена функция, которая используется где-то внизу. Приходится упорно скролить мышкой, натирая мозоль на пальце и напрягая глаза.
Но в продвинутых редакторах, эта проблема решена очень удобно. Окно с кодом можно разбить на 2 части, независимо работая в них с одним большим кодом. Чрезвычайно удобная вещь, к сожалению есть далеко не у всех редакторов. К примеру, данной функции нет ни у phpDesigner ни у RapidPHP.
З.Ы.
Что интересно, данную функцию имеют Notepad++ b PSpad, которых можно отнести к «продвинутым» блокнотам.
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
Настраиваемая подсветка кода
Ну, про подсветку (раскраску) кода знают все. Она есть практически во всех продвинутых блокнотах, не говоря уже об IDE.
Однако, подсветка подсветке рознь. Одному нравится, чтоб переменные были красного цвета, другому – зеленого. В принципе, стандарта нет, как нравится, так и работай, есть просто устоявшиеся цвета, которые применяются наиболее часто. Чтоб Вы могли легко настроить свой редактор «под себя», как Вам удобно и как комфортно Вашим глазам, подсветка кода тоже должна быть настраиваемая. Тогда Вы легко поменяете любой цвет на нужный Вам.
Однако «подсветка кода» не ограничивается одной только раскраской. В продвинутых IDE типа Nusphere phpEd, Zend studio, NetBeans и некоторых других (к сожалению далеко не во всех), есть чрезвычайно удобная вещь – это подсветка переменных. Щелкнул мышью на одной – и редактор выделил цветом в коде все места, где эта переменная используется! Продвинутый кодер сразу оценит это удобство, и постоянно будет его использовать.
З.Ы.
В RapidPHP функция подсветки тоже есть и очень удобная, правда реализована несколько иначе.
Для того, чтоб подсветить переменную, на ней нужно не щелкнуть, а выделить ее.
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
Живая проверка синтаксиса
Еще одна из наиболее востребованных функций, которая значительно ускоряет разработку и позволяет избежать ошибок – это живая проверка синтаксиса. То есть, Ваш РНР код проверяется прямо в процессе его написания.
Забыли поставить точку с запятой? Неправильно написали функцию? Сами знаете, такое бывает довольно часто даже у опытных кодеров. И тут как раз приходит на помощь «живая проверка синтаксиса», которая выделит красным цветом ту строку, где Вы допустили ошибку.
К счастью, на сегодняшний день, данная функция есть практически во всех IDE, как серьезных, так и не очень. Не забывайте, что для работы данной функции нужен РНР, а он не всегда идет вместе с редакторами. Его придется доустанавливать отдельно и потом в настройках редактора указывать путь к файлу php.exe. Если у Вас стоит Денвер, то можно РНР не ставить, а просто указать путь к файлу php.exe Денвера.
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
Контекстная справка по функциям
Наверно излишне напоминать, что «голова – не библиотека» все запомнить невозможно. Язык РНР имеет очень много всяческих функций, многие из которых приходится использовать в своем коде. Соответственно, по этим функциям должна быть справка, или учебник.
Наилучший вариант – официальная справка php.net
Но согласитесь, каждый раз юзать поиск неудобно и долго. Для этого, большинство продвинутых IDE имеют контекстную справку по функциям. Просто щелкаете мышкой на интересующей Вас функции в коде и открывается справка в нужном месте.
З.Ы.
Некоторые редакторы позволяют в настройках указать, какую справку использовать, онлайн (напрямую с php.net) или встроенную.
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
Навигатор по коду, с подсветкой (и желательно с группировкой) переменных
Навигатор - это вещь такая же удобная, как оглавление у книжки. Да. можно вручную раскопать код и найти нужную переменную, можно воспользоваться поиском. Но когда есть навигатор, все намного элегантнее и удобнее.
Вы сможете избежать "быдлокода", с умом именуя свои переменные, не объявляя их лишний раз, в этом как раз и поможет "навигатор".

Не все редакторы имеют удобный навигатор. У одних его вообще нет, у других он реализован очень неудобно.
Наилучшая реализация данной функции у RapidPHP, NuSphere phpEd, Zend Studio, Komodo IDE.
Отличный редактор NetBeans данную функцию тоже имеет, но реализована она очень плохо и подходит только для объектного стиля программирования.
Прикрепленные файлы:
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Поддержка "проектов"
Вот начинающий кодер, который еще не имеет опыта, или "быдло-профи" может спросить: "А зачем мне проекты? Я могу и поотдельности редачить скрипты".
Да, "редачить" то их можно, если к примеру Вы хотите поменять пару строчек в готовом двиге, для этого действительно подойдет блокнот и проекты не нужны.

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

Давайте разберемся, какие преимущества нам дает "проект" как таковой?

1) Порядок
В "проекте" собраны все настройки, файлы, папки, библиотеки, учетные записи FTP, базы данных и др. которые относятся именно к нему. Ничего лишнего, все четко и понятно.
Нужно переключиться на другой проект? Один клик мыши и пожалуйста!

2) Глобальный поиск
Одно из ВАЖНЕЙШИХ преимуществ проекта в том, что Вы можете вести поиск по всем файлам проекта. К примеру, у меня изменилась функция, мне нужно найти все места, где она использовалась и исправить вызов. Как Вы такое сделаете в блокноте? Будете по очереди открывать все файлы и искать в них? А если файлов нескольлко сотен?
С проектом все просто. В IDE, которые их поддерживают, есть функция "искать в файлах проекта". Я к примеру, набираю имя функции, жму "искать" и мне в специальном окне выводятся все строки во всех файлах. где эта функция использовалась. Кликнув на нужной строке, я открываю нужный файл в нужном месте. Неоценимое удобство!
Аналогично и с глобальной заменой. К примеру, у меня изменилось имя функции, или переменной, мне нужно заменить везде, где используется (это называется рефакторинг). С проектом все просто, есть "глобальная замена".
Попробуйте подобное сделать в блокноте Сколько у Вас это займет времени?

3) Отладка.
Обычно, для проекта можно настроить параметры отладки, то есть URL сервера, где у Вас расположен разрабатываемый Вами проект. Можно указать хоть локальный (Денвер) хоть удаленный адрес.
Наиболее продвинутые IDE позволяют "в живую" видеть код страницы в действии.

И после описанного, кто-то разве скажет, что "мне нет нужны проекты"? Одна только функция глобального поиска и замены - это железный аргумент в пользу проектов!
Прикрепленные файлы:
.
╭∩╮ (`-`) ╭∩╮
Поиск объявленой переменной по всем файлам проекта
Данная функция непосредственно дополняет поддержку "проектов" но в отличие от "глобального поиска" ищет объявление выбранной переменной.

К примеру:
У Вса в скрипт могут инклюдиться несколько файлов (что обычно и бывает) вам нужно вывести какое-то значение
echo $var;
Тут возникает вопрос: а где задается (объявляется) эта переменная? Если скрипт маленький, найти легко. А вот если скрипт большой? И есть много переменных с таким же именем? Где объявляется именно то, что Вы хотите вывести?
Тут и приходит на помощь данная функция поиска объявления.
В коде, щелкаете правой кнопкой на нужной переменной и выбираете "найти декларацию", или "Find Declaration". Редактор сам найдет, где объявляется именно эта переменная и откроет нужный код в нужном месте.
Особо удобно, когда копаетесь в чужом коде.

Далеко не все редакторы могут искать объявление глобально. Большинство из них ищут только в пределах открытого файла, что в принципе тоже удобно. Но если есть глобальный поиск, то это очень удобно!
Всего: 309