![image][1]
_Маргарет Гамильтон стоит рядом с написанным ей исходным кода бортового компьютера «Аполлона»_
Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.
В JPL пишут на Си, и на их сайте есть документ "[JPL Institutional Coding Standard][2]", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в [Хекслете][3] постоянно говорим об этом в [вебинарах][4] и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «[Основы программирования][5]», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.
В документе JPL есть много правил, но пользователь Реддита сделал выжимку десяти главных принципов. Вот перевод этого списка.
[Читать дальше →][6]
[1]:
https://habrastorage.org/files/6c7/e63/542/6c7e635425e24eda90fd4ac9d80c9adb.gif
[2]:
http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
[3]:
https://ru.hexlet.io?utm_source=habr&utm_medium=blog&utm_campaign=nasa
[4]:
https://ru.hexlet.io/videos?utm_source=habr&utm_medium=blog&utm_campaign=nasa
[5]:
https://ru.hexlet.io/courses/programming-basics?utm_source=habr&utm_medium=blog&utm_campaign=nasa
[6]:
https://habrahabr.ru/post/303160/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut