Приемы в PHP |
||||
---|---|---|---|---|
Предсловие Всякий кто сталкивается c PHP, в скором времени приходит к выводу, что это не совсем удобный язык для изучения. Дело в том, что он достаточно новый и динамично развивающийся, каждая последующая версия буквально перечёркивает предыдущую. В таких условиях имеющаяся документация быстро устаревает, а специалисты предпочитают не писать книг, так как информация размещённая в книге начинает устаревать до выхода книги в свет. Почему же PHP так популярен и каким образом столько человек разом обучилось PHP? Дело в том, что большинство PHP-программистов не изучало язык с нуля, а изучало его либо уже зная С/С++, либо Perl. Perl является C-подобным языком программирования (как и PHP), а является предшественником PHP, можно сказать что PHP это Web-ориентированный Perl. Поскольку, PHP просто логически следует из Perl и широкое распространение получил именно из-за того, что программистам было легко переходить с Perl на PHP (ну и с С на PHP, тоже). Замечание Кроме того, свой вклад вносит предметная область — программирование для сети Интернет. Для серьёзного понимания которого желательно знание очень многих вещей (HTML, SQL, UNIX, прикладных протоколов — хотя бы HTTP, стилей программирования на С, Perl, Java). Когда большинство PHP-программистов переходят в мир PHP с багажом другого языка программирования (их стиль уже устоялся), спрос на литературу, в которой бы обсуждались азы программирования не так велик. Новичкам бывает трудно найти информацию об организации кода. Мы надеемся, что эта статья поможет поставить свой собственный стиль, что в конечном итоге может увеличить скорость разработки на 30% и помочь при работе в команде, когда ваш код будет читаться другими программистами, а вам соответственно придётся читать чужой код. Расстановка фигурных скобок и отступы Существует несколько стилей расстановки фигурных скобок, все они диктуются существующими стилями в других C-подобных языках программирования. 1) Рациональный стиль Это один из наиболее распространенных стилей, так как им пользовались Керниген (Kernighan) и Ричи (Ritchie), авторы языка C. Код: <?php Преимущество этого подхода заключается в экономии вертикального пространства, жизненно важного при отладке большого блока кода. Оборотной стороной такого подхода является то, что может оказаться трудным найти символ {, спрятанный в конце строки. Этого стиля придерживаются и Java-программисты, как-то приписывает Sun. 2) Стиль Алмена Эрик Алемен (Eric Allman) написал утилиты BSD в этом стиле, поэтому этот стиль часто называют "стиль BSD": Цитата: Аргументом в поддержку такого стиля является тот факт, что область видимости блочного оператора ясна и визуально ассоциируется с управляющим оператором. 3) Стиль Whitesmith Данный стиль предписывает использование следующей расстановки фигурных скобок Код: <?php Этот стиль имеет преимущество в том, что скобки более тесно ассоциируются с кодом, который они включают и разграничивают, однако при визуальном просмотре текста отыскать скобки оказывается чуть более сложно. 4) Стиль GNU Программисты GNU фонда Free Software Foundation используют следующий стиль расстановки фигурных скобок Код: Внутри любых управляющих конструкций операторы следует располагать с отступом на одинаковое число пробелов, например для операторов if-then-else код должен выглядеть следующим образом: Код: Число может быть любым, обычно используют 2, 4 или 8 пробелов. Старайтесь придерживаться этого правила, некоторые программисты приходят в бешенство когда это число не кратно 2 :) Наиболее оптимальным является использование 2 пробелов, так как при их большем числе вложенные блоки становятся "растянутыми" и их становится сложно воспринимать. Пробелы вокруг символов Бинарные операторы следует обрамлять пробелами: Код: <?php Символ пробела ассоциируется с новым словом, поэтому формула читается не как непонятный набор символов, а как нечто осмысленное. Комментарии PHP собрал в себе практически все комментарии современных языков программирования, наряду с однострочными комментариями в стиле shell-скриптов (#) Код: и С++ (//) Код: можно использовать многострочный комментарий в стиле C: Код: К хорошему тону относится использование однострочных комментариев для короткого комментария, а многострочного — для комментария, охватывающего несколько строк. Не возбраняется использовать однострочные комментарии для большого текста, особенно в начале файла или важного блока кода Код: Как и при работе с отступами и фигурными скобками, основным требованием является необходимость придерживаться одного стиля во всех программных блоках. При расстановке однострочных комментариев возможно два варианта: непосредственно перед выполняемым оператором Код: и после точки с запятой Код: Лучше придерживаться первого правила, так как строка получается длинной и плохо воспринимается читающим. Единственным оправданием использования такого комментария является комментирование закрывающейся скобки длинного программного блока, содержащего много вложенных блоков. Код: Имена переменных и функций $var_bell — стиль C: нижний регистр, знак подчёркивания. $VarBell — стиль Pascal: каждая подстрока в названии начинается с большой буквы. $varBell — стиль Java: первая строка начинается с маленькой буквы, все последующие с большой. Не имеет значения, какой стиль будет вами выбран — главное придерживаться в коде одного стиля. Замечание При названии переменных и функций старайтесь давать им осмысленные имена. Иногда ничего не приходит в голову, и появляется назвать переменную как попало — остерегайтесь этого. В своё время было потрачено не мало часов из-за неудачно названных переменных, иногда отладить код удавалось лишь в том случае, если переменные были переименованы подобающим образом. Рассмотрим несколько примеров. Часто временные строки для хранения SQL называют $query (запрос) — это очень удачное название, ассоциирующееся именно с SQL-запросом. Обычно на этом всё и заканчивается. При появлении второго запроса, вторая переменная получает имя $query1 — это порочная практика. Обычно запросы в рамках одного скрипта отличаются своим действием: один SQL-запрос может выполнять обновление (UPDATE), другой выборку (SELECT), поэтому переменные лучше называть с указанием действия оператора: $query_update и $query_select, соответственно. Часто можно увидеть код Здесь дескриптор запроса, возвращаемый функцией mysql_query() назван $query1, это здорово запутывает как разработчика, так и читающего текст программы. Дескриптор не несёт физического смысла — это лишь ключ к результату, поэтому его лучше называть сокращённым именем таблицы Код: |