Спецификация разработки на JavaScript

Спецификация предназначена для прикладных разработчиков и разработчиков компонентов и классов Prognoz Platform 8 на JavaScript.

Список статей:

  1. Понятия и определения.

  2. Принципы кодирования.

  3. Требования к CSS коду.

  4. Сценарии использования компонентов.

  5. Правила описания контекстной документации.

Общие требования

Кроме описанных в статьях особенностей, также существует ряд общих требований к разработке:

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

  2. Все классы, свойства, методы и переменные должны иметь осмысленные названия.

  3. Отсутствие высокой связности и низкой (неплотной) увязки.

  4. Число строк в методе не должно превышать 1-2 экранов, кроме тех случаев, когда это оправдано и содержит комментарии.

  5. Глобальные переменные не должны использоваться.

  6. Запрет на использование излишне запутанного кода, с множественными перекрестными ссылками между объектами.

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

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

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

  10. Запрет на использование подхода «Copy/Paste». Не рекомендуется целиком копировать другие участки кода.

  11. Запрет на использование длинных конструкций вида:

for (var i = 0; i < 10; i++)

   a().b().c().d().e().f().g(i);

Необходимо делать так:

var f = a().b().c().d().e().f();

for (var i = 0; i < 10; i++)

   f.g(i);

  1. Должны использоваться эффективные алгоритмы и структуры данных.

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

  2. В качестве отступов должны использоваться символы табуляции, вложенные блоки должны отделяться от объемлющих одним символом табуляции.

  3. Длина строки не должна превышать 90 символов.

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