Рекомендации для прикладных разработчиков

При разработке прикладных продуктов, как правило, используются собственные рекомендации и требования написания кода. Данные требования и рекомендации зависят от того, на каком языке и платформе производится разработка. Для разработки на базе «Форсайт. Аналитическая платформа» можно выделить следующие рекомендации:

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

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

  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. Длина строки не должна превышать 90 символов.

Запрещенные конструкции языка

Запрещается использование в теле функции свойств arguments.callee, а также оператора присоединения with.

Запрещается использование функции eval, а также конструктора new Function для создания динамического кода из строки.

Рекомендации к CSS коду

  1. Имена всех CSS-классов записываются в UpperCamelCase и имеют префикс PP; также они должны содержать название соответствующего DHTML-компонента: PPListBox / PPListItem / PPButton.

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

  3. В CSS-селекторах не рекомендуется писать полный путь к тегу в структуре DHTML-компонента. То есть, вместо:

.PPListBox LI.PPListItem TABLE.PPListItemTable TD.PPListItemContent

необходимо писать так:

.PPListBox .PPListItemContent

  1. Следует избегать глобальной установки стилей для HTML-тегов в CSS-файлах, содержащих описание стилей отдельных компонентов.

  2. Следует сводить количество CSS-классов к минимуму.

  3. Имена CSS классам необходимо задавать осмысленные, то есть они должны отражать контекст применения данного класса.

  4. Неочевидные стили для сложной разметки необходимо пояснять в комментариях.

Рекомендации к работе с компонентами продукта «Форсайт. Аналитическая платформа» описаны в статьях: