Disclaimer

Данные рекомендации не могут являться истиной в последней инстанции, однако, следование им поможет улучшить читаемость кода.

Стандарты нужны уже потому, что одинаково достают всех и таким образом, эти все чувствуют себя командой

Общие рекомендации

Транслит

Не используйте в своем коде транслит. Английский язык - один из интрументов стандартизации кода

Пример
    $massivSsulok = Array(....);
    $linksArr = Array(....);

Имена переменных, функций, методов и т.п.

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

При именовании переменных идем от глобального к частному - сначала о чем речь, потом конкретные части

Пример
    $colorRed = '#f00';
    $colorGreen = '#0f0';
    $objName = "Вася";
    $objHealth = "Эмоционально нестабилен";

При именовании функций и методов сначала указывайте что делаем, а потом с чем именно.

Пример
    getParams();
    setParams();
    resetPswd();

(Желательно) Старайтесь использовать общепринятые слова и сокращения. Это упростит понимание, а также сократит название переменных, функций и т.п.

Пример
    getIdentificator();
    itemsArray = [];
    getID();
    itemsArr = [];

Для именования констант используйте заглавные буквы.

Пример
    define ("foo", "bar");
    const foo;
    define ("FOO", "bar");
    const FOO;

Длина функций и методов

Помните, что 1 функция (или метод) должна выполнять только 1 действие. Используйте несколько небольших функций вместо 1 большой. Это значительно упрощает поддержку и читаемость кода.

Пример
    function godObj() {
      action1;
      action2;
      ...
      actionN;
    }
    function init() {
      action1();
      action2();
      ...
    }

    function action1() {
      action1;
    }

    function action2() {

    }

    ....

Фигурные скобки

Ставьте открывающую фигурную скобку блока операторов на той же строке, что и оператор

Пример
    if ( foo )
      {
        bar();
      }
    if ( foo ) {
      bar();
    }

(Опционально) Аргументы функций

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

Пример
    some(big(func(a(), b()));
    some( big( func(a(), b() ) );

"Магические" числа

Не используйте "магические числа" - числа, значения которых неочевидны.

Пример
    if ( $action == 2 ) { ... }
    const RESIZE = 1;
    const CROP = 2;
    if ( $action == self::CROP ) { ... }

Подчеркивание

Не используйте в коде символ подчеркивания. (Исключением может стать имя константы, которое пишется заглавными буквами)

Пример
    $some_var = foo;
    class='some_class'
    $someVar = foo;
    class='some-class'

Протокол

Не используйте протокол в ссылках. Указание протокола делает ссылку абсолютной.

Пример
    <a href="http://example.com/">
    .example {
      url: (http://images.ru/somepic.jpg);
    }
    <a href="//example.com/">
    .example {
      url: (//images.ru/somepic.jpg);
    }

Форматирование

Отступы

Не используйте символ табуляции. Вместо него используйте символ пробела. Никогда не смешивайте пробелы и табы.

Рекоммендованное кол-во пробелов: 2

Следите за тем, чтобы открывающие и закрывающие скобки были на одном уровне

Пример
    .foo {
      bar {
        ...
        }
      }
    foo {
      bar {
        ...
      }
    }

Регистр

Используйте только нижний регистр (lowercase)

Пример

Весь код должен быть написан в нижнем регистре: Это относится к названиям элементов, названиям атрибутов, значениям атрибутов (кроме текста/CDATA), селекторам, свойствам и их значениям (кроме текста).

    <A HREF="/">Home</A>
    <a href="/">Home</a>

Общие мета правила

Кодировка

Используйте UTF-8 (без BOM).

Указывайте кодировку в HTML шаблонах и документах с помощью <meta charset="utf-8">. Опускайте кодировку для сss-файлов: для них UTF-8 задана по умолчанию.

Комментарии

Комментируйте неочевидные участки кода

Комментировать стоит, отвечая на вопрос "Зачем это здесь?", а не "Что здесь?". Комментируйте только действительно неочевидные куски кода: необходимость "костылей", необычные алгоритмы и т.п.

Не комментируйте все подряд: если код нуждается в комментарии, может стоит его улучшить?

Следите за актуальностью ваших комментариев, т.к. "просроченные" комментарии могут сбить с толку.

Не комментируйте код: если он не нужен - удалите его. Закомментированный код может порождать массу проблем при дальнейшей поддержке проекта. В крайнем случае - оставьте комментарий о причине комментирования с датой.

Пример
    // Здесь проходимся по всем элементам массива
    foreach ( $arr as $elem ) ...
    // Заимствованное решение. Взято: http://ru.wikipedia.org/wiki/Куайн_(программирование)#Perl
    $_=q{$_=q{x};s/x/$_/;print};s/x/$_/;print

Задачи

Отмечайте задачи через TODO. Указывайте ответственных в круглых скобках. Старайтесь быть максимально конкретными, чтобы задача была понятна даже спустя какое-то время.

Пример
/* Поэтому в начале header идет еще одно "костыльное" определение $showSape,
для которого Фил допишет хитрый SQL-запрос для определения ID-шника объекта полугодовой давности */
/* TODO(Фил): Заменить "костыль" в header на SQL-запрос для определения ID-шника объекта полугодовой давности для определения $showSape. */

HTML

Тип документа

HTML5 (HTML синтаксис) рекомендуется для всех html-документов: <!DOCTYPE html>.

Рекомендуется использовать HTML с типом контента text/html. Не используйте XHTML, так как application/xhtml+xml, хуже поддерживается браузерами и ограничивает возможность оптимизации.


CSS

Стиль именования

Для именования составных названий классов, id и т.п. используйте дефис как разделитель

Пример
    #newsblock { }
    .NewsItem { }
    #news-block { }
    .news-item { }

JavaScript

Стиль именования

Для именования составных названий функций, переменных и т.п. используйте lowerCamelCase (каждое составное слово названия, кроме первого, начинается с заглавной буквы)

Пример
    function getSomeParams() { ... }
    var newsBlockHeight = 100;

Для общепринятых сокращений, аббревиатур и т.п. используйте заглавные буквы

Пример
    function getID () { ... }
    var userHUD = ...;

Точка с запятой

Всегда ставьте точку с запятой в конце строки.


PHP

Стиль именования

Для именования составных названий функций, переменных и т.п. используйте lowerCamelCase (каждое составное слово названия, кроме первого, начинается с заглавной буквы)

Пример
    function getSomeParams() { ... }
    $newsBlockHeight = 100;

Для общепринятых сокращений, аббревиатур и т.п. используйте заглавные буквы

Пример
    function getID () { ... }
    $userHUD = ...;