Стандарт кодирования
Станда́рт оформле́ния ко́да (станда́рт коди́рования, стиль в программи́ровании) (англ. coding standards, coding convention или programming style) — набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования. Наличие общего стиля программирования облегчает понимание и поддержание исходного кода, написанного более чем одним программистом, а также упрощает взаимодействие нескольких человек при разработке программного обеспечения.
Применение
Стандарт оформления кода обычно принимается и используется некоторой группой разработчиков программного обеспечения для единообразного оформления совместно используемого кода. Целью принятия и использования стандарта является упрощение восприятия программного кода человеком, минимизация нагрузки на память и зрение при чтении программы[источник не указан 4662 дня].
Образцом для стандарта кодирования может стать набор соглашений, принятых в какой-либо распространённой печатной работе по языку (например, стандарт кодирования на языке Си, получивший сокращённое наименование K&R, происходит из классического описания Си его авторами — Керниганом и Ритчи), широко применяемая библиотека или API (так, на распространение венгерской нотации явно повлияло её использование в MS-DOS и Windows API, а большинство стандартов кодирования для Delphi используют, в той или иной мере, манеру кодирования библиотеки VCL).
Реже разработчик языка выпускает подробные рекомендации по кодированию. Например, выпущены стандарты кодирования на C# от Microsoft и на Java от Sun. Предложенная разработчиком или принятая в общеизвестных источниках манера кодирования в большей или меньшей степени дополняется и уточняется в корпоративных стандартах.
Состав
Стандарт сильно зависит от используемого языка программирования. Например, стандарт оформления кода для языка Си будет серьёзно отличаться от стандарта для языка BASIC. В целом, исходя из назначения стандарта, обычно он имеет целью добиться такого положения, когда программист достаточной квалификации мог бы дать заключение о функции, выполняемой конкретным участком кода, а в идеале — также определить его корректность, изучив только сам этот участок кода или, во всяком случае, минимально изучив другие части программы.
Иными словами, смысл кода должен быть виден из самого кода, без необходимости изучать контекст. Поэтому стандарт кодирования обычно строится так, чтобы за счёт определённого визуального оформления элементов программы повысить информативность кода для человека.
Обычно, стандарт оформления кода описывает:
- способы выбора названий и используемый регистр символов для имён переменных и других идентификаторов:
- запись типа переменной в её идентификаторе (венгерская нотация) и
- регистр символов (нижний, верхний, «верблюжий», «верблюжий» с малой буквы), использование знаков подчёркивания для разделения слов;
- стиль отступов при оформлении логических блоков — использование символов табуляции, ширина отступа;
- способ расстановки скобок, ограничивающих логические блоки;
- использование пробелов при оформлении логических и арифметических выражений;
- стиль комментариев и использование документирующих комментариев.
Вне стандарта подразумевается:
- отсутствие магических чисел;
- ограничение размера кода по горизонтали (чтобы помещался на экране) и вертикали (чтобы весь код файла держался в памяти), а также функции или метода в размер одного экрана.
Стандарты кодирования и синтаксис языков
Основные принципы распространённых стандартов кодирования в последнее время оказывают влияние на синтаксис вновь создаваемых языков программирования. В некоторых из них соглашения, ранее применявшиеся только в стандартах кодирования, стали обязательными элементами синтаксиса. Так, в некоторых современных языках (Python, Nemerle) отступы влияют на логику исполнения (то есть блоки кода выделяются не ключевыми словами, а размером отступов), в других (Ruby) — частью языка стали соглашения о регистре букв и префиксах для типов, констант, переменных и полей классов[источник не указан 4662 дня]. В результате, если ранее недисциплинированный программист мог игнорировать стандарты кодирования из личных соображений, ради удобства или скорости написания кода, то теперь, при работе на новых языках, соблюдение стандартов в определённой мере контролируется транслятором.
См. также
- Спагетти-код
- Магическое число
- Стандарты кодирования GNU
- Отступ
- Подсветка синтаксиса
Примечания
- 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.
- Code Conventions for the Java Programming Language: Contents (англ.)
- для языка 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 года.
Для улучшения этой статьи желательно: |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Стандарт кодирования, Что такое Стандарт кодирования? Что означает Стандарт кодирования?
Standa rt oformle niya ko da standa rt kodi rovaniya stil v programmi rovanii angl coding standards coding convention ili programming style nabor pravil i soglashenij ispolzuemyh pri napisanii ishodnogo koda na nekotorom yazyke programmirovaniya Nalichie obshego stilya programmirovaniya oblegchaet ponimanie i podderzhanie ishodnogo koda napisannogo bolee chem odnim programmistom a takzhe uproshaet vzaimodejstvie neskolkih chelovek pri razrabotke programmnogo obespecheniya PrimenenieStandart oformleniya koda obychno prinimaetsya i ispolzuetsya nekotoroj gruppoj razrabotchikov programmnogo obespecheniya dlya edinoobraznogo oformleniya sovmestno ispolzuemogo koda Celyu prinyatiya i ispolzovaniya standarta yavlyaetsya uproshenie vospriyatiya programmnogo koda chelovekom minimizaciya nagruzki na pamyat i zrenie pri chtenii programmy istochnik ne ukazan 4662 dnya Obrazcom dlya standarta kodirovaniya mozhet stat nabor soglashenij prinyatyh v kakoj libo rasprostranyonnoj pechatnoj rabote po yazyku naprimer standart kodirovaniya na yazyke Si poluchivshij sokrashyonnoe naimenovanie K amp R proishodit iz klassicheskogo opisaniya Si ego avtorami Kerniganom i Ritchi shiroko primenyaemaya biblioteka ili API tak na rasprostranenie vengerskoj notacii yavno povliyalo eyo ispolzovanie v MS DOS i Windows API a bolshinstvo standartov kodirovaniya dlya Delphi ispolzuyut v toj ili inoj mere maneru kodirovaniya biblioteki VCL Rezhe razrabotchik yazyka vypuskaet podrobnye rekomendacii po kodirovaniyu Naprimer vypusheny standarty kodirovaniya na C ot Microsoft i na Java ot Sun Predlozhennaya razrabotchikom ili prinyataya v obsheizvestnyh istochnikah manera kodirovaniya v bolshej ili menshej stepeni dopolnyaetsya i utochnyaetsya v korporativnyh standartah SostavStandart silno zavisit ot ispolzuemogo yazyka programmirovaniya Naprimer standart oformleniya koda dlya yazyka Si budet seryozno otlichatsya ot standarta dlya yazyka BASIC V celom ishodya iz naznacheniya standarta obychno on imeet celyu dobitsya takogo polozheniya kogda programmist dostatochnoj kvalifikacii mog by dat zaklyuchenie o funkcii vypolnyaemoj konkretnym uchastkom koda a v ideale takzhe opredelit ego korrektnost izuchiv tolko sam etot uchastok koda ili vo vsyakom sluchae minimalno izuchiv drugie chasti programmy Inymi slovami smysl koda dolzhen byt viden iz samogo koda bez neobhodimosti izuchat kontekst Poetomu standart kodirovaniya obychno stroitsya tak chtoby za schyot opredelyonnogo vizualnogo oformleniya elementov programmy povysit informativnost koda dlya cheloveka Obychno standart oformleniya koda opisyvaet sposoby vybora nazvanij i ispolzuemyj registr simvolov dlya imyon peremennyh i drugih identifikatorov zapis tipa peremennoj v eyo identifikatore vengerskaya notaciya i registr simvolov nizhnij verhnij verblyuzhij verblyuzhij s maloj bukvy ispolzovanie znakov podchyorkivaniya dlya razdeleniya slov stil otstupov pri oformlenii logicheskih blokov ispolzovanie simvolov tabulyacii shirina otstupa sposob rasstanovki skobok ogranichivayushih logicheskie bloki ispolzovanie probelov pri oformlenii logicheskih i arifmeticheskih vyrazhenij stil kommentariev i ispolzovanie dokumentiruyushih kommentariev Vne standarta podrazumevaetsya otsutstvie magicheskih chisel ogranichenie razmera koda po gorizontali chtoby pomeshalsya na ekrane i vertikali chtoby ves kod fajla derzhalsya v pamyati a takzhe funkcii ili metoda v razmer odnogo ekrana Standarty kodirovaniya i sintaksis yazykovOsnovnye principy rasprostranyonnyh standartov kodirovaniya v poslednee vremya okazyvayut vliyanie na sintaksis vnov sozdavaemyh yazykov programmirovaniya V nekotoryh iz nih soglasheniya ranee primenyavshiesya tolko v standartah kodirovaniya stali obyazatelnymi elementami sintaksisa Tak v nekotoryh sovremennyh yazykah Python Nemerle otstupy vliyayut na logiku ispolneniya to est bloki koda vydelyayutsya ne klyuchevymi slovami a razmerom otstupov v drugih Ruby chastyu yazyka stali soglasheniya o registre bukv i prefiksah dlya tipov konstant peremennyh i polej klassov istochnik ne ukazan 4662 dnya V rezultate esli ranee nedisciplinirovannyj programmist mog ignorirovat standarty kodirovaniya iz lichnyh soobrazhenij radi udobstva ili skorosti napisaniya koda to teper pri rabote na novyh yazykah soblyudenie standartov v opredelyonnoj mere kontroliruetsya translyatorom Sm takzheSpagetti kod Magicheskoe chislo Standarty kodirovaniya GNU Otstup Podsvetka sintaksisaPrimechaniyaKeith Gabryelski Wildfire C Programming Style 1997 Microsoft Pravila imenovaniya neopr Data obrasheniya 30 dekabrya 2016 Arhivirovano 30 dekabrya 2016 goda Mark Pilgrim Dive into Python Indenting Code neopr Data obrasheniya 1 oktyabrya 2012 Arhivirovano iz originala 16 iyulya 2012 goda The Ruby Style Guide neopr Data obrasheniya 6 marta 2015 Arhivirovano 13 marta 2015 goda LiteraturaD Van Tassel Stil razrabotka effektivnost otladka i ispytanie programm Program style design efficiency debugging and testing 2 e izd M Mir 1985 332 s Stiv Makkonnell Sovershennyj kod Code complete M Russkaya Redakciya 2010 S 896 Master klass ISBN 978 5 7502 0064 1 SsylkiStandarty oformleniya koda yazykov programmirovaniya i vsyo chto etogo kasaetsya rus 25 marta 2008 Arhivirovano iz originala 27 avgusta 2011 goda dlya yazyka C C Stallman R Standart kodirovaniya GNU rus Data obrasheniya 21 iyunya 2011 1 angl C Programming Style Guidelines angl Data obrasheniya 10 iyunya 2010 Arhivirovano 27 avgusta 2011 goda dlya yazyka Java Avtomaticheskij kontrol kachestva Java koda rus Data obrasheniya 10 iyunya 2010 Code Conventions for the Java Programming Language Contents angl dlya yazyka PHP Standarty oformleniya koda yazykov programmirovaniya i vsyo chto etogo kasaetsya rus Data obrasheniya 10 iyunya 2010 dlya yazyka Ruby Rubi rukovodstvo po stilyu oformleniya rus Data obrasheniya 11 dekabrya 2014 dlya yazyka S RSDN Team Soglasheniya po oformleniyu koda komandy RSDN rus RSDN 2003 Vyp 1 2004 dlya yazyka Delphi Tkachenko A V Standart stilevogo oformleniya ishodnogo koda DELPHI rus Korolevstvo Delphi 5 iyunya 2003 Data obrasheniya 10 iyunya 2010 Microsoft Pravila imenovaniya rus Golub A I Veryovka dostatochnoj dliny chtoby vystrelit sebe v nogu rus Zacepin V perev Zacepin V red Bazarov V Moskva 2001 S 241 Glava 3 Formatirovanie i dokumentaciya 37 55 Glava 4 Imena i indifikatory 56 How To Write Unmaintainable Code angl Data obrasheniya 10 iyunya 2010 Arhivirovano iz originala 27 avgusta 2011 goda Dlya uluchsheniya etoj stati zhelatelno Prostavit snoski vnesti bolee tochnye ukazaniya na istochniki Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom
