Правила простого кода в веб-разработке

Исходя из опыта в веб разработке – вывел несколько правил, соблюдая которые можно легко ориентироваться в коде, легко поддерживать и дорабатывать. Я не буду упоминать банальных вещей, вроде «пишите комментарии», это вещи, которые каждый сам решает для себя. Начнем с простого

Храните общие участки кода – классы, доступы к базе данных – отдельно от проекта (сайта). Таким образом, вы обезопасите себя от случайного доступа и утечки паролей через FTP, Тем более через прямые запросы через HTTP (если вы умудряетесь хранить пароли в текстовом файле без защиты через htaccess), и сделаете общие данные едиными для всех проектов. Если пароль к базе данных или почтовому ящику, вдруг изменится – вы разом поменяете его ко всем проектам. И сэкономите место на диске.

Дальше интереснее)

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

$status=array(0=>’В работе’,1=>’Завершен’,2=>’На утверждении’);
<>Спросите, зачем?

Теперь все статусы – у вас находятся в одном месте, их можно сменить при необходимости и они обновятся везде. Теперь вы можете во всех шаблонах – строить выпадающие списки с обходом всех статусов

foreach ($status as $item){ … }

Теперь вы можете при выводе конкретного статуса – сослаться на его обозначение, вместо того чтобы перечислять все статусы в шаблоне

<?=$status[$data['STATUS']]?>

Вы можете хранить эти переменные в исполняемом файле, если более нигде они не будут нужны, просто проще искать и исправлять, когда все в одном легкодоступном файле.

Идем далее

Соблюдайте одинаковые названия для всех методов и функций. Как часто вам приходилось использовать AJAX (подробнее про использование ajax описано здесь) в своих разработках? Есть на форме кнопочка и по нажатию на нее – нужно обратиться к серверу и достать данные, либо обновить. Здесь вы можете пойти несколькими путями:

  • Обратиться к исполняемому файлу с указанием метода (По которому система поймет, какую часть кода вы хотите выполнить). Допустимо при очень маленьком проекте
  • Обратиться к специально выделенному для Аякса файлу (например Ajax.php), также с передачей метода. Допустимо при проекте средней сложности
  • Обратиться к папке Ajax и файлу с названием исполняемого метода. Желательно при больших сложных проектах

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

При нажатии на кнопку – мы ссылаемся на функцию Javascript, которая Внимание! Называется точно также, как и метод, который мы передаем через Ajax

Например,так

Function show_data(id){
$.ajax(‘ajax.php’,{act: ‘show_data’,id:id};
}

Теперь, когда вам нужно будет разобраться, почему по нажатию на кнопку – выдается какая-то хрень вдруг – вы, через отладчик по передаче метода через Ajaxлегко поймете – куда вы обращались и быстро найдете эту функцию в Javascript, быстро найдете исполняемый участок кода

Подходим к самому сложному для понимания

Называйте колонки к базе данных с префиксом таблицы. Например, данные по товарам можете хранить с префикса CAT, например CAT_ID, CAT_NAME, CAT_DATE

Таким образом, вы

  • Избежите возможных случайных повторений с ключевыми словами (DATE, ORDER, TEXT) и никогда не будете мучатся с обозначением в виде апострофов `order`
  • Всегда будете знать, какое из полей используется при их перечислении.
    SELECT CAT_NAME,TREE_NAME FROM …
    Вместо
    SELECT CAT.NAME as CAT_NAME,TREE.NAME as TREE_NAME FROM …
  • Можете не придумывать алиасов для таблиц при джойн операциях
    FROM SITE_CAT LEFT JOIN SITE_TREE ON CAT_TREE_ID=TREE_ID
    Вместо
    … FROM SITE_CAT as CAT LEFT JOIN SITE_TREE as TREE on CAT.TREE_ID=TREE.ID

Из последнего примера – можно вычленить еще одно правило. Если колонки таблицы подразумевают связь – колонка в зависимой таблице должна содержать префикс ссылаемой таблицы.

Если у нас конкретный товар цепляется к ветке дерева – он должен содержать колонку CAT_TREE_ID

Таким образом – вы всегда сможете понять какую колонку и с какой вы связываете, не заглядывая в структуру таблицы и не предполагая, что разработчик создал эту колонку для объединения.

Конечно, если полностью подходить к делу – можно накопать еще. Это основные правила, которые здорово помогают. Следуйте им, и будет у вас счастье

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 823
  • Комментариев: 0
  • Создан: 20.01.2014 17:51

Комментарии (0)