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

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

Храните общие участки кода – классы, доступы к базе данных – отдельно от проекта (сайта). Таким образом, вы обезопасите себя от случайного доступа и утечки паролей через 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
  • Просмотров: 946
  • Комментариев: 0
  • Создан: 20.01.2014 17:51

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

Ваши предложения и пожелания пишите на pro@kosmom.ru

Теги

ajax axios backup bootstrap core framework eloquent excel home project html ios javascript keep-alive kpi laravel legacy mvp orm php rip scroll solid timestamp undefined vue vuetify watch безопасность биометрический паспорт ваша любаша для путешествий загран на 10 лет загран паспорт загранпаспорт нового образца зимние книги как заполнить анкеты кеширование книги на новый год логирование мцф недвижимость новогодние книги образец заполнения антеты паспорт для путешествий паспорт нового поколения печать продукт проектирование прокси разработка ремонт ремонт в апартаментах ремонт нежилого помещения самокат сдача сколько стоил ремонт апартаментов спорт стандарты таблица финансы хостинг цена ремонта что почитать зимой юзабилити

Случайный пост

15.04.2016 12:11
Покупки в магазине Фикс прайс более чем на 800 рублей