Соглашение по разработке

Общие

  • Функциональность и внешнее представление компонента не должны быть связаны, т.к при отключении CSS компонент должен сохранить свое поведение;
  • Компонент не может сразу решать несколько задач;
  • Документировать код;
  • Тестировать.

CSS

  • При именовании селекторов используем классическую схему БЭМ (block-name__element-name_modifier-name);
  • Разделять стили на основные и скины/модификаторы.
  • Добавлять префикс с именем компонента. Например, rf-accordion.
  • Добавлять префикс js к компонентам, если это селекторы используются в JS. Например, js-tabs.

JS

  • Разделять пустой строкой смысловые блоки;
  • Использовать «Шаблон единственной инструкции var»;
  • Использовать двойные ковычки вместо одинарных;
  • Не переносить фигурные скобки на новую строку при использовании условных операторов;
  • Проверять код с помощью jsHint;
  • Следовать lowerCamelCase.Например, для переменных - variableName, а для функция, getFunctionName.

Термины

  • Основные стили – это стили без которых компонент теряет свою функциональность;
  • Скин – это стили для внешнего оформления компонента;

Поддержка браузеров

  • последняя версия Google Chrome
  • последняя версия Firefox
  • последняя версия Opera
  • последняя версия Yandex Browser
  • последняя версия Safari
  • последняя версия Edge
  • IE 11
  • последняя версия mobile Safari
  • последняя версия mobile Google Chrome