Стандарт оформления кода
Станда́рт оформле́ния ко́да (станда́рт коди́рования, стиль в программи́ровании) (англ. coding standards, coding convention или programming style) — набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования. Наличие общего стиля программирования облегчает понимание и поддержание исходного кода, написанного более чем одним программистом, а также упрощает взаимодействие нескольких человек при разработке программного обеспечения[1].
Применение
[править | править код]Стандарт оформления кода обычно принимается и используется некоторой группой разработчиков программного обеспечения для единообразного оформления совместно используемого кода. Целью принятия и использования стандарта является упрощение восприятия программного кода человеком, минимизация нагрузки на память и зрение при чтении программы[источник не указан 4354 дня].
Образцом для стандарта кодирования может стать набор соглашений, принятых в какой-либо распространённой печатной работе по языку (например, стандарт кодирования на языке Си, получивший сокращённое наименование K&R, происходит из классического описания Си его авторами — Керниганом и Ритчи), широко применяемая библиотека или API (так, на распространение венгерской нотации явно повлияло её использование в MS-DOS и Windows API, а большинство стандартов кодирования для Delphi используют, в той или иной мере, манеру кодирования библиотеки VCL).
Реже разработчик языка выпускает подробные рекомендации по кодированию. Например, выпущены стандарты кодирования на C# от Microsoft[2] и на Java от Sun. Предложенная разработчиком или принятая в общеизвестных источниках манера кодирования в большей или меньшей степени дополняется и уточняется в корпоративных стандартах.
Состав
[править | править код]Стандарт сильно зависит от используемого языка программирования. Например, стандарт оформления кода для языка Си будет серьёзно отличаться от стандарта для языка BASIC. В целом, исходя из назначения стандарта, обычно он имеет целью добиться такого положения, когда программист достаточной квалификации мог бы дать заключение о функции, выполняемой конкретным участком кода, а в идеале — также определить его корректность, изучив только сам этот участок кода или, во всяком случае, минимально изучив другие части программы.
Иными словами, смысл кода должен быть виден из самого кода, без необходимости изучать контекст. Поэтому стандарт кодирования обычно строится так, чтобы за счёт определённого визуального оформления элементов программы повысить информативность кода для человека.
Обычно, стандарт оформления кода описывает:
- способы выбора названий и используемый регистр символов для имён переменных и других идентификаторов:
- запись типа переменной в её идентификаторе (венгерская нотация) и
- регистр символов (нижний, верхний, «верблюжий», «верблюжий» с малой буквы), использование знаков подчёркивания для разделения слов;
- стиль отступов при оформлении логических блоков — использование символов табуляции, ширина отступа;
- способ расстановки скобок, ограничивающих логические блоки;
- использование пробелов при оформлении логических и арифметических выражений;
- стиль комментариев и использование документирующих комментариев.
Вне стандарта подразумевается:
- отсутствие магических чисел;
- ограничение размера кода по горизонтали (чтобы помещался на экране) и вертикали (чтобы весь код файла держался в памяти), а также функции или метода в размер одного экрана.
Стандарты кодирования и синтаксис языков
[править | править код]Основные принципы распространённых стандартов кодирования в последнее время оказывают влияние на синтаксис вновь создаваемых языков программирования. В некоторых из них соглашения, ранее применявшиеся только в стандартах кодирования, стали обязательными элементами синтаксиса. Так, в некоторых современных языках (Python[3], Nemerle) отступы влияют на логику исполнения (то есть блоки кода выделяются не ключевыми словами, а размером отступов), в других (Ruby) — частью языка стали соглашения о регистре букв и префиксах для типов, констант, переменных и полей классов[источник не указан 4354 дня][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. Правила именования .
- Голуб А. И. Верёвка достаточной длины, чтобы... выстрелить себе в ногуС. 241 (Глава 3. Форматирование и документация 37-55 Глава 4. Имена и индификаторы 56-. // Зацепин В. / перев. Зацепин В. ред. Базаров В.. — Москва, 2001. —
- How To Write Unmaintainable Code (англ.). Дата обращения: 10 июня 2010. Архивировано из оригинала 27 августа 2011 года.
Для улучшения этой статьи желательно:
|