10 правил, призванных облегчить проведение контроля и статического анализа кода.
Вот что об этих правилах говорят в NASA:
Правила можно сравнить с ремнём безопасности в машине: сначала немного неудобно, но вскоре они входят в привычку и уже трудно представить, как без них обходиться.
Gerard J. HolzmannЭти правила были созданы в 2006 году Джерардом Дж. Хольцманном в Лаборатории реактивного движения (ЛРД) NASA. Они были направлены на то, чтобы искоренить те приёмы программирования на языке С, которые затрудняют проведение контроля и статического анализа кода.
Правила дополняют руководящие принципы MISRA C и включены в большой набор рекомендаций по написанию кода ЛРД.
goto
или рекурсия.Эти правила были определены для языка С, но некоторые из них могут быть использованы при разработке современных интернет-приложений и приложений для мобильных устройств. Вот те правила, которые выбрал я:
1. Избегать сложных конструкций ветвленияЕсли не будет на то необходимости, я не стану использовать рекурсию для выполнения задачи, с которой может справиться и простой for
. Рекурсии очень опасны там, где у вас нет непосредственного доступа к машине: окажись вы, к примеру, на Марсе, или на Луне, или на дне морском!
Похоже на первое правило: буду создавать циклы с фиксированными границами, чтобы не допустить бесконечных циклов или бесконтрольного разрастания кода.
4. Каждая функция должна располагаться максимум на одной страницеУместив функцию на одной странице, будет легче сразу увидеть и понять все функциональные возможности того или иного метода вашей программы.
Если функция не умещается на странице, это будет означать, что вы добавляете слишком много действий в свой код.
Если вы не делите большую функцию на маленькие, то это может привести к возникновению ещё одной проблемы: дублированию кода.
6. Ограничивать область видимости объектов с данными до минимально возможнойНикогда не используйте var
на JavaScript — всегда лучше использовать let
, чтобы не допустить утечки или наложения переменных и даже их дублирования.
То же касается и других языков, таких как C#. Используйте самую минимальную область видимости для своих переменных, например, private
или наиболее защищённую, например, protected
.
C помощью ESLintили подобных инструментов вы легко сможете получать предупреждения от своего кода.
Потом надо их всех удалить или устранить, даже если для вас они не имеют большого значения.
Вот теперь мы готовы отправить наш код на Марс!
Марсоход CuriosityПеревод статьи Riccardo Giorato: The Power of 10 — NASA’s Rules for Coding
Комментарии