Стандарт оформления кода
Станда́рт оформле́ния ко́да (станда́рт коди́рования, стиль программи́рования) (англ. coding standards, coding convention или programming style) — набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования. Наличие общего стиля программирования облегчает понимание и поддержание исходного кода, написанного более чем одним программистом, а также упрощает взаимодействие нескольких человек при разработке программного обеспечения[1].
ПрименениеПравить
Стандарт оформления кода обычно принимается и используется некоторой группой разработчиков программного обеспечения для единообразного оформления совместно используемого кода. Целью принятия и использования стандарта является упрощение восприятия программного кода человеком, минимизация нагрузки на память и зрение при чтении программы[источник не указан 3776 дней].
Образцом для стандарта кодирования может стать набор соглашений, принятых в какой-либо распространённой печатной работе по языку (например, стандарт кодирования на языке Си, получивший сокращённое наименование K&R, происходит из классического описания Си его авторами — Керниганом и Ритчи), широко применяемая библиотека или API (так, на распространение венгерской нотации явно повлияло её использование в MS-DOS и Windows API, а большинство стандартов кодирования для Delphi используют, в той или иной мере, манеру кодирования библиотеки VCL).
Реже разработчик языка выпускает подробные рекомендации по кодированию. Например, выпущены стандарты кодирования на C# от Microsoft[2] и на Java от Sun. Предложенная разработчиком или принятая в общеизвестных источниках манера кодирования в большей или меньшей степени дополняется и уточняется в корпоративных стандартах.
СоставПравить
Стандарт сильно зависит от используемого языка программирования. Например, стандарт оформления кода для языка Си будет серьёзно отличаться от стандарта для языка BASIC. В целом, исходя из назначения стандарта, обычно он имеет целью добиться такого положения, когда программист достаточной квалификации мог бы дать заключение о функции, выполняемой конкретным участком кода, а в идеале — также определить его корректность, изучив только сам этот участок кода или, во всяком случае, минимально изучив другие части программы.
Иными словами, смысл кода должен быть виден из самого кода, без необходимости изучать контекст. Поэтому стандарт кодирования обычно строится так, чтобы за счёт определённого визуального оформления элементов программы повысить информативность кода для человека.
Обычно, стандарт оформления кода описывает:
- способы выбора названий и используемый регистр символов для имён переменных и других идентификаторов:
- запись типа переменной в её идентификаторе (венгерская нотация) и
- регистр символов (нижний, верхний, «верблюжий», «верблюжий» с малой буквы), использование знаков подчёркивания для разделения слов;
- стиль отступов при оформлении логических блоков — используются ли символы табуляции, ширина отступа;
- способ расстановки скобок, ограничивающих логические блоки;
- использование пробелов при оформлении логических и арифметических выражений;
- стиль комментариев и использование документирующих комментариев.
Вне стандарта подразумевается:
- отсутствие магических чисел;
- ограничение размера кода по горизонтали (чтобы помещался на экране) и вертикали (чтобы весь код файла держался в памяти), а также функции или метода в размер одного экрана.
Стандарты кодирования и синтаксис языковПравить
Основные принципы распространённых стандартов кодирования в последнее время оказывают влияние на синтаксис вновь создаваемых языков программирования. В некоторых из них соглашения, ранее применявшиеся только в стандартах кодирования, стали обязательными элементами синтаксиса. Так, в некоторых современных языках (Python[3], Nemerle) отступы влияют на логику исполнения (то есть блоки кода выделяются не ключевыми словами, а размером отступов), в других (Ruby) — частью языка стали соглашения о регистре букв и префиксах для типов, констант, переменных и полей классов[источник не указан 3776 дней][4]. В результате, если ранее недисциплинированный программист мог игнорировать стандарты кодирования из личных соображений, ради удобства или скорости написания кода, то теперь, при работе на новых языках, соблюдение стандартов в определённой мере контролируется транслятором.
См. такжеПравить
ПримечанияПравить
- ↑ Keith Gabryelski, Wildfire C++ Programming Style, 1997
- ↑ Microsoft, Правила именования (неопр.). Дата обращения: 30 декабря 2016. Архивировано 30 декабря 2016 года.
- ↑ Mark Pilgrim, Dive into Python, Indenting Code (неопр.). Дата обращения: 1 октября 2012. Архивировано из оригинала 16 июля 2012 года.
- ↑ The Ruby Style Guide (неопр.). Дата обращения: 6 марта 2015. Архивировано 13 марта 2015 года.
ЛитератураПравить
- Д. Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ = Program style, design, efficiency, debugging, and testing. — 2-е изд. — М.: Мир, 1985. — 332 с.
- Стив Макконнелл. Совершенный код = Code complete. — М.: Русская Редакция, 2010. — С. 896. — (Мастер-класс). — ISBN 978-5-7502-0064-1.
СсылкиПравить
- Стандарты оформления кода языков программирования и всё что этого касается (рус.) (недоступная ссылка — история) (25 марта 2008). Архивировано 27 августа 2011 года.
- для языка C/C++: Stallman R. Стандарт кодирования GNU. (рус.) Дата обращения: 21 июня 2011. [1] (англ.)
- C++ Programming Style Guidelines (англ.). Дата обращения: 10 июня 2010. Архивировано 27 августа 2011 года.
- для языка Java: Автоматический контроль качества Java-кода (рус.). Дата обращения: 10 июня 2010.
- для языка PHP: Стандарты оформления кода языков программирования и всё что этого касается (рус.). Дата обращения: 10 июня 2010.
- для языка Ruby: Руби: руководство по стилю оформления (рус.). Дата обращения: 11 декабря 2014.
- для языка С#: RSDN Team. Соглашения по оформлению кода команды RSDN (рус.). — RSDN, 2003. — Вып. #1-2004.
- для языка Delphi: Ткаченко А. В. Стандарт стилевого оформления исходного кода DELPHI (рус.). Королевство Delphi (5 июня 2003). Дата обращения: 10 июня 2010.
- для языка C/C++: Stallman R. Стандарт кодирования GNU. (рус.) Дата обращения: 21 июня 2011. [1] (англ.)
- Microsoft. Правила именования (рус.).
- Голуб А. И. Верёвка достаточной длины, чтобы... выстрелить себе в ногу (рус.) // Зацепин В. / перев. Зацепин В. ред. Базаров В.. — Москва, 2001. — С. 241 (Глава 3. Форматирование и документация 37-55 Глава 4. Имена и индификаторы 56-.
- How To Write Unmaintainable Code (англ.) (недоступная ссылка — история). Дата обращения: 10 июня 2010. Архивировано 27 августа 2011 года.
Для улучшения этой статьи желательно:
|