Некоторые правила написания кода
Код на PHP должен соответствовать стандарту PSR1/PSR2. Доступ к базе данных должен осуществляться через PDO с использованием подготовленных запросов и плейсхолдеров.
*Плохо:*
{code lang=php}
$statement = $pdo->query(
"
SELECT name
FROM Users
WHERE sex='$userSex'
"
);
{code}
*Хорошо:*
{code lang=php}
$statement = $pdo->prepare(
"
SELECT name
FROM Users
WHERE sex=:userSex
"
)
->execute(
array(
":userSex" => $userSex
)
);
{code}
*Данный пункт ни коем образом не запрещает использование классов-оберток и/или синглтонов*
Если функция возвращает значение, то она должна возвращать его в любой ситуации (undefined не допускается).
Если возвращать нечего, то можно вернуть False как признак ошибки.
*Плохо:*
{code lang=php}
function getName($id) {
if ($id==1) {
return "John";
}
}
{code}
*Плохо:*
{code lang=php}
function getName($id) {
if ($id==1) {
return "John";
} else {
return;
}
}
{code}
*Хорошо:*
{code lang=php}
function getName($id) {
if ($id==1) {
return "John";
} else {
return false;
}
}
{code}
Код при работе не должен производить ворнингов. При разработке в PhpStorm необходимо максимально вычищать ошибки на которые указывает инспекция кода. При разработке в PhpStorm форматирование кода должно производится встроенным автоформатом по стандартам PSR1/PSR2. Если в файле используется только PHP-код, нельзя ставить закрывающий тег PHP,
т.к. это может привести к трудноотлавливаемым ошибкам.
Не стоит злоупотреблять использованием sprintf для сборки строки без форматирования переменных, т.к. это усложняет читаемость кода.
*Плохо:*
{code lang=php}
$db_config=sprintf('mysql:dbname=%s;host=%s',$_CONFIG['db']['name'],$_CONFIG['db']['host']);
{code}
*Хорошо:*
{code lang=php}
$db_config='mysql:dbname='.$_CONFIG['db']['name'].';host='.$_CONFIG['db']['host'];
{code}
*Хорошо:*
{code lang=php}
$db_config="mysql:dbname={$_CONFIG['db']['name']};host={$_CONFIG['db']['host']}";
{code}
Код должен проходить проверку JSLint без предупреждений. При разработке в PhpStorm необходимо максимально вычищать ошибки которые на которые указывает инспеция кода. При разработке в PhpStorm форматирование кода должно производится встроенным автоформатом.
При разработке нужно предусмотреть неправильное поведение, как пользователя, так и компонентов системы,
и делать проверку полученных данных на корректность.
При изменении функционала кода который уже используется в продакшене,
необходимо предусмотреть совместимость со старыми конфигами и схемами баз данных,
т.к. их обновление может быть рассихронизированно с основным кодом.
Кодировка текстовых файлов, если нет особых требований, должна быть UTF-8 без BOM. Перевод строк в текстовых файлах, если нет особых требований, должен быть в Unix формате. P.S. Если у кого-то есть дополнения или замечания, с удовольствием выслушаю* P.P.S. Также с удовольствием объясню причины внесения того или иного пункта*