[#] [Перевод] 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками
habrabot(difrex,1) — All
2016-06-13 17:30:04


![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