Skip to content

Latest commit

 

History

History
111 lines (92 loc) · 4.87 KB

Readme.wiki

File metadata and controls

111 lines (92 loc) · 4.87 KB

Table of Contents

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

PHP

  • Код на 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}

JS

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

Общие нормы

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

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

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