При разработке прикладных продуктов, как правило, используются собственные рекомендации и требования написания кода. Данные требования и рекомендации зависят от того, на каком языке и платформе производится разработка. Для разработки на базе «Форсайт. Аналитическая платформа» можно выделить следующие рекомендации:
Кроме описанных в статьях особенностей, также существует ряд общих требований к разработке:
Все классы, свойства и методы должны иметь комментарий и контекстную документацию, из которой без дополнительных пояснений должно быть понятно назначение этого класса, свойства или метода.
Все классы, свойства, методы и переменные должны иметь осмысленные названия.
Отсутствие высокой связности и низкой (неплотной) увязки.
Число строк в методе не должно превышать 1-2 экранов, кроме тех случаев, когда это оправдано и содержит комментарии.
Глобальные переменные не должны использоваться.
Запрет на использование излишне запутанного кода, с множественными перекрестными ссылками между объектами.
Должен использоваться объектно-ориентированный стиль программирования (то есть, с использованием наследования, инкапсуляции и полиморфизма) без перекосов в процедурный, функциональный и так далее.
Наследование в иерархиях классов должно быть оптимальным, чтобы обеспечить максимальную расширяемость функциональности классов без переработки структуры классов.
Обобщенное программирование (шаблоны, параметризованные функции, классы и тому подобное) должны использоваться в максимальной степени, но не избыточно (не должно затруднять понимание и модификацию кода, расширение функциональности классов и методов).
Запрет на использование подхода «Copy/Paste». Не рекомендуется целиком копировать другие участки кода.
Запрет на использование длинных конструкций вида:
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);
Должны использоваться эффективные алгоритмы и структуры данных.
Не должны использоваться неоптимальные циклы и циклы с глубокой вложенностью.
Длина строки не должна превышать 90 символов.
Запрещается использование в теле функции свойств arguments.callee, а также оператора присоединения with.
Запрещается использование функции eval, а также конструктора new Function для создания динамического кода из строки.
Имена всех CSS-классов записываются в UpperCamelCase и имеют префикс PP; также они должны содержать название соответствующего DHTML-компонента: PPListBox / PPListItem / PPButton.
CSS-селекторы не должны включать имена тегов для которых применяется класс, кроме случаев где это действительно необходимо.
В CSS-селекторах не рекомендуется писать полный путь к тегу в структуре DHTML-компонента. То есть, вместо:
.PPListBox LI.PPListItem TABLE.PPListItemTable TD.PPListItemContent
необходимо писать так:
.PPListBox .PPListItemContent
Следует избегать глобальной установки стилей для HTML-тегов в CSS-файлах, содержащих описание стилей отдельных компонентов.
Следует сводить количество CSS-классов к минимуму.
Имена CSS классам необходимо задавать осмысленные, то есть они должны отражать контекст применения данного класса.
Неочевидные стили для сложной разметки необходимо пояснять в комментариях.
Рекомендации к работе с компонентами продукта «Форсайт. Аналитическая платформа» описаны в статьях: