Стандарты разработки

Зачем нужны и какие бывают.
16 мая 2016225057Андрей Никифоров4564521

Здравствуйте!

Начинающие и средние программисты часто пишут код как попало, главное чтобы работало, а потом не могут прочесть свой же код через неделю. Куда труднее приходится другим программистам, вынужденным читать их код. Такой код сложно поддерживать, и можно наплодить багов, просто не заметив опечаток. Чтобы такого происходило поменьше, придумали стандарты разработки.

Сила стандарта разработки в двух вещах. Во-первых, стандарт прививает хорошие привычки — это особенно важно для начинающих. Во-вторых, что важнее, стандарт разработки заставляет писать код, который выглядит ожидаемо. Вот что это значит: схожая логика в коде выглядит похоже, а различающаяся логика отличается. Становится проще понимать, что делает тот или иной кусок кода.

Однако стандарт — не уголовный кодекс. Если что-то в стандарте вас не устраивает, поменяйте это. Главное, чтобы вся команда следовала одному и тому же стандарту.

Некоторые стандарты введены разработчиками, другие выработало сообщество. Сегодня мы посмотрим, что хорошего было придумано, чтобы держать оформление кода в узде.

C

Стандарты разработки на C античные: как придумали их давным-давно, так они и не менялись сильно, да и не нужно. Самый новый из них — PEP-7 от разработчиков Python.

GNU считается основным стандартом.

GNU Coding Standarthttps://www.gnu.org/prep/standards/html_node/Writing-C.html

CMU Coding Standarthttps://users.ece.cmu.edu/~eno/coding/CCodingStandard.html

NetBSD Style Guidelineshttp://cvsweb.netbsd.org/bsdweb.cgi/src/share/misc/style?rev=HEAD&content-type=text/x-cvsweb-markup

PEP-7https://www.python.org/dev/peps/pep-0007/

C++

CMU Coding Standarthttps://users.ece.cmu.edu/~eno/coding/CppCodingStandard.html

High Integrity C++ Coding Standardhttp://www.codingstandard.com/section/index

Google C++ Style Guidehttps://google.github.io/styleguide/cppguide.html

Java

Стандарт от Oracle очень древний, так что советую брать за основу Google Style Guide.

Oracle Style Guidehttp://www.oracle.com/technetwork/java/codeconvtoc-136057.html

Google Java Style Guidehttps://google.github.io/styleguide/javaguide.html

Python

PEP-8 — стандарт от разработчиков языка. Думаю, они немного разбираются в том, как правильно оформлять код на Python.

PEP-8https://www.python.org/dev/peps/pep-0008/

Среднего качества перевод PEP-8: Гугл Докс

Google Python Style Guidehttps://google.github.io/styleguide/pyguide.html

PHP

PSRs — стандарты от инициативной группы PHP-FIG: первый базовый, описывающий основные соглашения, второй расширенный, для особых вещей.

PEAR Coding Standardhttps://pear.php.net/manual/en/standards.php

PSR-1https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md

PSR-2https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

Перевод PSR1-2https://github.com/dotzero/fig-standards/tree/master/accepted/ru

Zend Coding Standarthttps://github.com/zendframework/zendframework/wiki/Coding-Standards

Ruby

В отличие от других языков, для Ruby стандартов немного. Основной — этот, он сформирован сообществом.

The Ruby Style Guidehttps://github.com/arbox/ruby-style-guide/blob/master/README-ruRU.md

JavaScript

W3C Style Guidehttp://www.w3schools.com/js/js_conventions.asp

Swift и ObjC

Raywenderlich Swift Guidehttps://github.com/raywenderlich/swift-style-guide

Raywenderlich Objective C Guidehttps://github.com/raywenderlich/objective-c-style-guide

Go

Go прекрасен тем, что одной командой go fmt весь проект приводится к одному аккуратному виду.

Effective Gohttps://golang.org/doc/effective_go.html

Code Review Commentshttps://github.com/golang/go/wiki/CodeReviewComments

 

Что думаете о стандартах? Какие применяете? Рассказывайте.


Все расскажем: профессия «Веб-разработчик».

Новые комментарии