Стандарты разработки
Здравствуйте!
Начинающие и средние программисты часто пишут код как попало, главное чтобы работало, а потом не могут прочесть свой же код через неделю. Куда труднее приходится другим программистам, вынужденным читать их код. Такой код сложно поддерживать, и можно наплодить багов, просто не заметив опечаток. Чтобы такого происходило поменьше, придумали стандарты разработки.
Сила стандарта разработки в двух вещах. Во-первых, стандарт прививает хорошие привычки — это особенно важно для начинающих. Во-вторых, что важнее, стандарт разработки заставляет писать код, который выглядит ожидаемо. Вот что это значит: схожая логика в коде выглядит похоже, а различающаяся логика отличается. Становится проще понимать, что делает тот или иной кусок кода.
Однако стандарт — не уголовный кодекс. Если что-то в стандарте вас не устраивает, поменяйте это. Главное, чтобы вся команда следовала одному и тому же стандарту.
Некоторые стандарты введены разработчиками, другие выработало сообщество. Сегодня мы посмотрим, что хорошего было придумано, чтобы держать оформление кода в узде.
C
Стандарты разработки на C античные: как придумали их давным-давно, так они и не менялись сильно, да и не нужно. Самый новый из них — PEP-7 от разработчиков Python.
GNU считается основным стандартом.
GNU Coding Standart: https://www.gnu.org/prep/standards/html_node/Writing-C.html
CMU Coding Standart: https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html
NetBSD Style Guidelines: http://cvsweb.netbsd.org/bsdweb.cgi/src/share/misc/style?rev=HEAD&content-type=text/x-cvsweb-markup
PEP-7: https://www.python.org/dev/peps/pep-0007/
C++
CMU Coding Standart: https://users.ece.cmu.edu/~eno/coding/CppCodingStandard.html
High Integrity C++ Coding Standard: http://www.codingstandard.com/section/index
Google C++ Style Guide: https://google.github.io/styleguide/cppguide.html
Java
Стандарт от Oracle очень древний, так что советую брать за основу Google Style Guide.
Oracle Style Guide: http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
Google Java Style Guide: https://google.github.io/styleguide/javaguide.html
Python
PEP-8 — стандарт от разработчиков языка. Думаю, они немного разбираются в том, как правильно оформлять код на Python. Если вы только хотите изучить питон, то рекомендуем начать с нашего бесплатного интенсива "Основы языка Python".
PEP-8: https://www.python.org/dev/peps/pep-0008/
Среднего качества перевод PEP-8: Гугл Докс
Google Python Style Guide: https://google.github.io/styleguide/pyguide.html
PHP
PSRs — стандарты от инициативной группы PHP-FIG: первый базовый, описывающий основные соглашения, второй расширенный, для особых вещей.
PEAR Coding Standard: https://pear.php.net/manual/en/standards.php
PSR-1: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
Перевод PSR1-2: https://github.com/dotzero/fig-standards/tree/master/accepted/ru
Zend Coding Standart: https://github.com/zendframework/zendframework/wiki/Coding-Standards
Ruby
В отличие от других языков, для Ruby стандартов немного. Основной — этот, он сформирован сообществом.
The Ruby Style Guide: https://github.com/arbox/ruby-style-guide/blob/master/README-ruRU.md
JavaScript
W3C Style Guide: http://www.w3schools.com/js/js_conventions.asp
Swift и ObjC
Raywenderlich Swift Guide: https://github.com/raywenderlich/swift-style-guide
Raywenderlich Objective C Guide: https://github.com/raywenderlich/objective-c-style-guide
Go
Go прекрасен тем, что одной командой go fmt весь проект приводится к одному аккуратному виду.
Effective Go: https://golang.org/doc/effective_go.html
Code Review Comments: https://github.com/golang/go/wiki/CodeReviewComments
Что думаете о стандартах? Какие применяете? Рассказывайте.
Все расскажем: профессия «Веб-разработчик».