Не секрет что PHP является самым популярным языком программирования серверной части web-приложений. В силу своей простоты, этот язык притягивает к себе множество новичков, которые вооружившись книгами и информацией с форумов, несутся на всевозможные фрилансы, закидывая рынок веб-приложений проектами, дальнейшая доработка которых практически не возможна (лучше сделать все заново с нуля, чем поддерживать уже существующий код). Многие берут деньги с заказчиков и хватаются за проекты, которые им не по силам, тем самым портят впечатления о фрилансерах. Но как известно «научится играть на гитаре, можно только играя на гитаре», так же и для того чтобы освоить веб-разработку, нужно ею заниматься и постоянно совершенствоваться, многие вещи приходят только на практике. Мне бы хотелось дать несколько советов начинающим веб-мастерам о том как писать код основываясь на собственном опыте доработок разнообразных проектов.
1) Хорошо ознакомьтесь с документацией языка
Многие программисты (например на СС++Java) при необходимости разработать серверные скрипты веб-ресурса, пользуясь C – подобностью синтаксиса PHP, начинают создавать код, основываясь на своем опыте разработки в прикладном программирование. Самый распространенный пример который встречался мне во многих проектах:
function doSomething() { $query = mysql_query(“select …”); while ($result = mysql_fetch_row($query)) { $a[] = $result->key; } … unset($a); }
PHP сам выгружает переменные из памяти при достижении конца скрипта/функции по этому удаление массива, совершенно лишняя операция. Второй по популярности случай следующий
echo “<a href=’ #’ onclick=’ajax_load(”; echo ‘”’.$block.’”, “’.$data.’”)’; echo “’>link</a>”;
Лучше потратить несколько часов на детальное прочтение документации, и писать код который не будет заставлять пить валерьянку человека который его потом за Вами будет дорабатывать. Ведь ни что не мешало написать проще, например так:
echo “<a href=”#” onclick=”ajax_load(‘$block’,’$data’)”>link</a>”;
2) Не используйте старые конструкции языка
Дело в том, что PHP как и все популярные языки постоянно развивается, появляются новые конструкции и функции которые должны улучшить работу Ваших приложений. Более старые, медленные и не эффективные, помечаются разработчиками языка как устаревшие. Так что, например написание скрипта на PHP 5.2, может вызвать ошибки и сбои при работе Вашего проекта на более новой версии языка. Так что не забываем следить за нововведениями.
3) Не изобретайте велосипед
Если перед Вами стоит задача, задумайтесь, а не приходилось ли её делать раньше кому-то до Вас? Вполне возможно что это уже реализовано в самом языке, возможно другим разработчиком.
4) Нужно быть параноиком
Всегда, ВСЕГДА, проверяем данные пришедшие с клиента на их подлинность. Убираем HTML, чистим кавычки, слешы, преобразовываем к числу (если нужно) и только потом подставляем это в запрос, не раньше.
5)Пишите универсальный код
Когда перед Вами становится задача, которая может применяться где-то еще в проекте (или в другом проекте) целесообразно вынести ее в отдельную функцию, или даже в отдельный модуль (не забываем про совет в пункте 3).
6) Не усложняйте код
Написанный Вами код должен быть максимально простым и понятным для других людей (в том числе и для Вас, после того как Вы спустя год вернетесь к старому проекту).
Пример как не желательно:
function doSomething($id, $param) { $sql = “select… whre id=$id limit 1;”; $query = mysql_query($sql); if($query) { $result = mysql_fetch_assoc($qr); if ($result[‘key’] == $param) { return true; } else { return false; } } else return false; }
Как желательно было написать:
function doSomething($id, $param) { $sql = “select… whre id=$id limit 1;”; if (($query = mysql_query($sql))== false) return false; if( $result = mysql_fetch_assoc($query) { return $result[‘key’] == $param; } else return false; }
7) Не забываем комментировать
Ну тут все просто, комментируем важные момента кода, и оформляем комментарии к классам, свойствам, методам, и функциям, предпочтительно в формате PHPDoc.
8) Не забываем про ООП
PHP 5 – это полноценный ООП язык, проектируя проект, не забывайте про это. Классовая иерархия позволит не только легко расширять код, но и упростит использование уже написанного кода в других проектах.
9) Учим шаблоны программирования
Шаблоны программирования это отдельная широкая тема, которая позволит Вам более четко понять принципы ООП программирования и избежать ошибок в проектировании. Особенно нужно ознакомится с паттерном MVC.
10) Не делаем средствами PHP то что можно сделать средствами SQL
Дело в том, что SQL запросы выполняются на уровне драйвера и работают в разы быстрей чем PHP. В MySQL или в другой СУБД достаточно встроенных функций и конструкций что бы сделать все что Вам нужно. Например что бы узнать количество записей, можно использовать SQL функцию COUNT.
Вот в принципе основные моменты которые я хотел рассмотреть, и посоветовать уделить им больше внимания начинающим веб-разработчикам. Желаю всем успехов в обучении и разработке своих проектов.
Автор: dkorsar