/9Bits-Convention

Creative Commons Zero v1.0 UniversalCC0-1.0

Некоторые правила написания кода

PHP

  • Код на PHP должен соответствовать стандарту PSR1/PSR2.

  • Доступ к базе данных должен осуществляться через PDO с использованием подготовленных запросов и плейсхолдеров.

    Плохо:

    $statement = $pdo->query(
        "
        SELECT name
        FROM Users
        WHERE sex='$userSex'
        "
    );

    Хорошо:

    $statement = $pdo->prepare(
        "
        SELECT name
        FROM Users
        WHERE sex=:userSex
        "
    )
        ->execute(
            array(
                ":userSex" => $userSex
            )
        );

    Данный пункт ни коем образом не запрещает использование классов-оберток и/или синглтонов

  • Если функция возвращает значение, то она должна возвращать его в любой ситуации (undefined не допускается). Если возвращать нечего, то можно вернуть False как признак ошибки.

    Плохо:

    function getName($id) {
        if ($id==1) {
            return "John";
        }
    }

    Плохо:

    function getName($id) {
        if ($id==1) {
            return "John";
        } else {
            return;
        }
    }

    Хорошо:

    function getName($id) {
        if ($id==1) {
            return "John";
        } else {
            return false;
        }
    }
  • Код при работе не должен производить ворнингов.

  • При разработке в PhpStorm необходимо максимально вычищать ошибки на которые указывает инспекция кода.

  • При разработке в PhpStorm форматирование кода должно производится встроенным автоформатом по стандартам PSR1/PSR2.

  • Если в файле используется только PHP-код, нельзя ставить закрывающий тег PHP, т.к. это может привести к трудноотлавливаемым ошибкам.

  • Не стоит злоупотреблять использованием sprintf для сборки строки без форматирования переменных, т.к. это усложняет читаемость кода.

    Плохо:

    $db_config=sprintf('mysql:dbname=%s;host=%s',$_CONFIG['db']['name'],$_CONFIG['db']['host']);

    Хорошо:

    $db_config='mysql:dbname='.$_CONFIG['db']['name'].';host='.$_CONFIG['db']['host'];

    Хорошо:

    $db_config="mysql:dbname={$_CONFIG['db']['name']};host={$_CONFIG['db']['host']}";

JS

  • Код должен проходить проверку JSLint без предупреждений.
  • При разработке в PhpStorm необходимо максимально вычищать ошибки которые на которые указывает инспеция кода.
  • При разработке в PhpStorm форматирование кода должно производится встроенным автоформатом.

Общие нормы

  • При разработке нужно предусмотреть неправильное поведение, как пользователя, так и компонентов системы, и делать проверку полученных данных на корректность.
  • При изменении функционала кода который уже используется в продакшене, необходимо предусмотреть совместимость со старыми конфигами и схемами баз данных, т.к. их обновление может быть рассихронизированно с основным кодом.
  • Кодировка текстовых файлов, если нет особых требований, должна быть UTF-8 без BOM.
  • Перевод строк в текстовых файлах, если нет особых требований, должен быть в Unix формате.

P.S. Если у кого-то есть дополнения или замечания, с удовольствием выслушаю

P.P.S. Также с удовольствием объясню причины внесения того или иного пункта