У комп'ютерному програмуванні узгодження імен — це набір правил для вибору послідовності символів, які будуть використовуватися для ідентифікаторів, які позначають змінні, типи, функції та інші сутності у початковому коді та документації.
Причини використання угоди про іменування (на відміну від дозволу програмістам вибирати будь-яку послідовність символів) включають наступне:
- Щоб зменшити зусилля, необхідні для читання та розуміння початкового коду;
- Щоб перевірки коду зосередилися на питаннях, важливіших за синтаксис і стандарти імен.
- Щоб інструменти перевірки якості коду зосереджували свої звіти на важливих питаннях, крім синтаксису та стилю.
Вибір умов найменування може бути надзвичайно суперечливим питанням, коли прихильники кожного вважають своє найкращим, а інших — нижчим. У просторіччі кажуть, що це питання догми. Багато компаній також створили власний набір конвенцій.
Потенційні переваги
Деякі з потенційних переваг, які можна отримати, прийнявши угоду про іменування, включають наступне:
- надати додаткову інформацію (тобто метадані) про використання ідентифікатора;
- допомогти формалізувати очікування та сприяти несуперочності в команді розробників;
- уможливити використання автоматизованого рефакторингу або інструментів пошуку та заміни з мінімальною можливістю помилок;
- для підвищення ясності у випадках потенційної двозначності;
- покращити естетичний і професійний вигляд продукту роботи (наприклад, заборонивши надто довгі назви, смішні чи «милі» назви або абревіатури);
- щоб допомогти уникнути «колізій імен», які можуть виникнути, коли робочий продукт різних організацій об'єднується (див. також: простори імен);
- надавати значущі дані для використання під час передачі проекту, що вимагає подання вихідного коду програми та всієї відповідної документації;
- щоб забезпечити краще розуміння у випадку повторного використання коду після тривалого проміжку часу.
Виклики
Вибір конвенцій про найменування (і ступінь їх дотримання) часто є спірним питанням, прихильники вважають свою точку зору найкращою, а інші — нижчою. Більше того, навіть за наявності відомих і чітко визначених домовленостей про найменування деякі організації можуть не дотримуватися їх послідовно, що спричиняє непослідовність і плутанину. Ці проблеми можуть посилюватися, якщо правила іменування є внутрішньо суперечливими, довільними, складними для запам'ятовування або іншим чином сприймаються як більш обтяжливі, ніж корисні.
Читабельність
Добре підібрані ідентифікатори значно полегшують розробникам і аналітикам розуміння того, що робить система та як виправити або розширити вихідний код для застосування для нових потреб.
Наприклад, хоча
a = b * c;
синтаксично правильний, його мета неочевидна. Порівняйте це з:
weekly_pay = hours_worked * hourly_pay_rate;
що визначає значення і зміст початкового коду, принаймні для тих, хто знайомий з контекстом виразу.
Експерименти показують, що стиль ідентифікатора впливає на запам'ятовування та точність, а знайомство зі стилем прискорює запам'ятовування.
Загальні елементи
Точні правила іменування залежать від контексту, у якому вони використовуються. Тим не менш, є кілька загальних елементів, які впливають на більшість, якщо не на всі угоди про найменування, які широко використовуються сьогодні.
Довжина ідентифікаторів
Фундаментальними елементами всіх домовленостей про іменування є правила, що стосуються довжини ідентифікатора (тобто кінцевої кількості окремих символів, дозволених в ідентифікаторі). Деякі правила диктують фіксовану числову межу, тоді як інші визначають менш точні евристики чи вказівки.
Правила щодо довжини ідентифікатора постійно оскаржуються на практиці та є предметом багатьох академічних дебатів.
Деякі міркування:
- коротші ідентифікатори можуть бути кращими як більш доцільні, оскільки їх легше вводити (хоча багато IDE та текстові редактори забезпечують завершення тексту, що пом'якшує це)
- надзвичайно короткі ідентифікатори (такі як «i» або «j») дуже важко однозначно розрізнити за допомогою автоматизованих інструментів пошуку та заміни (хоча це не проблема для інструментів на основі регулярних виразів)
- довші ідентифікатори можуть бути кращими, оскільки короткі ідентифікатори не можуть кодувати достатньо інформації або виглядають надто загадковими
- довші ідентифікатори можуть бути неприйнятними через візуальний безлад
Це відкрите питання дослідження, чи деякі програмісти віддають перевагу коротшим ідентифікаторам, тому що їх легше ввести або придумати, ніж довші ідентифікатори, чи тому, що в багатьох ситуаціях довший ідентифікатор просто захаращує видимий код і не дає видимої додаткової переваги.
Стислість у програмуванні частково пояснюється:
- ранні компонувальники, які вимагали обмеження імен змінних 6 символами для економії пам'яті. Пізніший «прогрес» дозволив використовувати довші імена змінних для розуміння людиною, але лише перші кілька символів були значущими. У деяких версіях BASIC, таких як TRS-80 Level 2 Basic, дозволялися довгі імена, але лише перші дві літери були значущими. Ця функція дозволяла помилкову поведінку, яку було важко налагодити, наприклад, коли використовувалися такі імена, як «VALUE» і «VAT», які мали бути різними.
- ранні редактори вихідного коду не мають автозаповнення
- ранні монітори з низькою роздільною здатністю з обмеженою довжиною рядка (наприклад, лише 80 символів)
- велика частина інформатики походить від математики, де імена змінних традиційно складаються лише з однієї літери
Літера і цифри
Деякі угоди про найменування обмежують, чи літери можуть відображатися у верхньому чи нижньому регістрі. Інші конвенції не обмежують регістр літер, але надають чітке тлумачення на основі регістру літер. Деякі угоди про найменування визначають, чи можна використовувати букви, цифри або буквено-цифрові символи, і якщо так, то в якій послідовності.
Багатослівні ідентифікатори
Загальна рекомендація: «Використовуйте значущі ідентифікатори». Одне слово може бути не таким значущим або конкретним, як кілька слів. Отже, деякі домовленості про найменування визначають правила обробки «складених» ідентифікаторів, що містять більше одного слова.
Оскільки більшість мов програмування не дозволяють використовувати пробіли в ідентифікаторах, необхідний метод розмежування кожного слова (щоб полегшити наступним читачам інтерпретацію того, які символи належать якому слову). Історично деякі ранні мови, зокрема FORTRAN (1955) і ALGOL (1958), дозволяли пропуски в ідентифікаторах, визначаючи кінець ідентифікаторів за контекстом. Від цього відмовилися в пізніших мовах через складність токенізації. Можна писати назви, просто з'єднуючи слова, і це іноді використовується, як у mypackage
для назв пакетів Java, хоча розбірливість страждає для більш довгих термінів, тому зазвичай використовується певна форма розділення.
Слова розділені роздільником
Один із підходів полягає в тому, щоб розділяти окремі слова не буквено-цифровим символом. Для цієї мети зазвичай використовуються два символи: дефіс («-») і підкреслення («_»); наприклад, назва з двох слів «два слова» буде представлена як «два слова» або «два_слова». Дефіс використовується майже всіма програмістами, які пишуть COBOL (1959), Forth (1970) і Lisp (1958); він також поширений в Unix для команд і пакетів і використовується в CSS. Ця конвенція не має стандартної назви, хоча її можна називати lisp-case або COBOL-CASE (порівняйте Pascal case), kebab-case, brochette-case або інші варіанти. З них kebab-case, датований принаймні 2012 роком, з тих пір набув певної популярності.
Навпаки, мови традиції FORTRAN/ALGOL, зокрема мови сімейств C і Pascal, використовували дефіс для інфіксного оператора віднімання та не бажали вимагати пробілів навколо нього (як мови вільної форми), запобігаючи його використанню в ідентифікатори. Альтернативою є використання підкреслень; це поширене явище в сімействі C (включаючи Python), зі словами з малого регістру, які можна знайти, наприклад, у «Мові програмування C» (1978), і стало відомим як «зміїний регістр». Знаки підкреслення у верхньому регістрі, як у UPPER_CASE, зазвичай використовуються для макросів препроцесора C, тому відомих як MACRO_CASE, і для змінних середовища в Unix, таких як BASH_VERSION у bash. Іноді це з гумором називають SCREAMING_SNAKE_CASE.
Слова, розділені регістром
Інший підхід полягає в тому, щоб позначити межі слів за допомогою середньої літери, що називається «camelCase», «PascalCase» і багатьма іншими іменами, таким чином відповідно відображаючи «два слова
» як «twoWords
» або «TwoWords
». Ця конвенція зазвичай використовується в Pascal, Java, C# та Visual Basic . Обробка ініціалізмів в ідентифікаторах (наприклад, «XML» і «HTTP» у XMLHttpRequest
) різниться. Деякі вимагають, щоб вони були написані у нижньому регістрі (наприклад, XmlHttpRequest
), щоб полегшити введення, читабельність і легкість , тоді як інші залишають їх у верхньому регістрі (наприклад, XMLHTTPRequest
). для точності.
Приклади форматів багатослівних ідентифікаторів
Форматування | Імена |
---|---|
два слова | flatcase |
ДВА СЛОВА | ВЕЛИКИЙ РЕГІСТР |
два слова | (нижній) camelCase, dromedaryCase |
Два слова | PascalCase, UpperCamelCase, StudlyCase |
два_слова | snake_case, snail_case, вибоїна_case |
ДВА_СЛОВА | ALL_CAPS, SREAMING SNAKE CASE, MACRO_CASE, CONSTANT_CASE |
два_слова | camel_Snake_Case |
Два_слова | Pascal_Snake_Case, Title_Case |
два слова | kebab-case, dash-case, lisp-case, spinal-case |
ДВА СЛОВА | TRAIN-CASE, COBOL-CASE, SCREAMING-KEBAB-CASE |
Два слова | Train-Case, HTTP-Header-Case |
Метадані та гібридні конвенції
Деякі домовленості про найменування представляють правила або вимоги, які виходять за рамки вимог конкретного проекту чи проблемної області, а натомість відображають більший всеосяжний набір принципів, визначених архітектурою програмного забезпечення, базовою мовою програмування чи іншою міжпроектною методологією.
Угорська нотація
Мабуть, найвідомішою є угорська нотація, яка кодує призначення («Apps Hungarian») або тип («Systems Hungarian») змінної в назві. Наприклад, префікс «sz» для змінної szName вказує на те, що змінна є рядком із нульовим завершенням.
Позиційна нотація
Стиль, який використовується для дуже короткого (вісім символів і менше), може бути таким: LCCIIL01, де LC буде заявкою (акредитиви), C для COBOL, IIL для конкретної підмножини процесу, а 01 — порядковий номер.
Цей вид конвенції все ще активно використовується в мейнфреймах, що залежать від JCL, і також спостерігається у стилі MS-DOS 8.3 (максимум вісім символів із крапкою-роздільником, після якого йде три символи).
Складена схема слів (OF Language)
«Мова OF» IBM була задокументована в посібнику IMS (система управління інформацією).
У ньому детально описана схема слів PRIME-MODIFIER-CLASS, яка складалася з імен на кшталт «CUST-ACT-NO» для позначення «номера рахунку клієнта».
Слова PRIME мали на меті позначити основні «сутності», що представляють інтерес для системи.
Для додаткового уточнення, кваліфікації та читабельності використано слова-МОДИФІКАТОРИ.
Слова CLASS в ідеалі були б дуже коротким списком типів даних, що стосуються конкретної програми. Загальні слова CLASS можуть бути такими: NO (номер), ID (ідентифікатор), TXT (текст), AMT (сума), QTY (кількість), FL (прапор), CD (код), W (робота) тощо. На практиці доступні слова КЛАСУ являтимуть собою список із менш ніж двох десятків термінів.
Слова CLASS, зазвичай розташовані праворуч (суфікс), служили майже тій самій меті, що й префікси угорської нотації.
Призначення слів CLASS, крім узгодженості, полягало в тому, щоб вказати програмісту тип даних певного поля даних. До прийняття полів BOOLEAN (лише два значення) FL (прапор) вказував на поле лише з двома можливими значеннями.
Спеціальні мовні умовності
ActionScript
Конвенції та передові методи кодування Adobe пропонують стандарти імен для ActionScript, які здебільшого відповідають стандартам ECMAScript. Стиль ідентифікаторів схожий на стиль Java.
Ада
В Ada єдиним рекомендованим стилем ідентифікаторів є Mixed_Case_With_Underscores
.
APL
In APL dialects, the delta (Δ) is used between words, e.g. PERFΔSQUARE (no lowercase traditionally existed in older APL versions). If the name used underscored letters, then the delta underbar (⍙) would be used instead.
C і C++
У C і ключові слова та стандартні ідентифікатори бібліотек здебільшого написані малими літерами. У стандартній бібліотеці C найпоширенішими є скорочені назви (наприклад, isalnum для функції, яка перевіряє, чи є символ буквено-цифровим), тоді як стандартна бібліотека C++ часто використовує підкреслення як роздільник слів (наприклад, out_of_range). Ідентифікатори, що представляють макроси, за домовленістю записуються лише з використанням великих літер і підкреслення (це пов'язано з угодою багатьох мов програмування про використання ідентифікаторів у верхньому регістрі для констант). Імена, які містять подвійне підкреслення або починаються з підкреслення та великої літери, зарезервовані для реалізації (компілятор, стандартна бібліотека) і не повинні використовуватися (наприклад, __reserved або _Reserved). Зовні це схоже на стропінг, але семантика відрізняється: підкреслення є частиною значення ідентифікатора, а не символами лапок (як стропінг): значенням __foo є __foo (що зарезервовано), а не foo (але в іншому просторі імен).
C#
Угоди про найменування C# зазвичай відповідають інструкціям, опублікованим Microsoft для всіх мов .NET (див. розділ .NET нижче), але жодні угоди не застосовуються C# компілятор.
Інструкції Microsoft щодо іменування полів стосуються лише static
, public
і protected
полів; поля, які не є static
та мають інші рівні доступності (наприклад, internal
та private
), явно не охоплюються цими рекомендаціями. Найбільш поширеною практикою є використання PascalCase
для назв усіх полів, за винятком тих, які є private
(і не є ані const
, ані static
), яким надаються імена, що використовують camelCase
, перед яким стоїть одне підкреслення; наприклад, _totalCount
.
Будь-яке ім'я ідентифікатора може мати префікс комерційного символу (@
) без будь-яких змін у значенні. Тобто і factor
, і @factor
посилаються на той самий об'єкт. За домовленістю цей префікс використовується лише у випадках, коли інакше ідентифікатор був би або зарезервованим ключовим словом (наприклад, for
і while
), яке не можна використовувати як ідентифікатор без префікса, або контекстним ключовим словом (наприклад, from
і where
), у яких випадках префікс не є обов'язковим (принаймні, не під час його оголошення; наприклад, хоча оголошення dynamic dynamic;
є дійсним, це зазвичай розглядатиметься як dynamic @dynamic;
щоб одразу вказати читачеві, що остання є назвою змінної).
Dart/Flatter
У мові Dart, яка використовується у Flutter SDK, угоди подібні до умов Java, за винятком того, що константи записуються в нижньому регістрі. Dart нав'язує синтаксичне правило, згідно з яким нелокальні ідентифікатори, які починаються з підкреслення (_), розглядаються як приватні (оскільки мова не має явних ключових слів для публічного чи приватного доступу). Крім того, імена вихідних файлів не відповідають правилу Java «один загальнодоступний клас на вихідний файл, ім'я має збігатися», замість цього для імен файлів використовується snake_case.
Go
У Go для написання багатослівних імен прийнято використовувати MixedCaps
або mixedCaps
, а не підкреслення. Коли йдеться про структури чи функції, перша буква вказує на видимість зовнішніх пакетів. Зробивши першу літеру великою, цей фрагмент коду експортується, тоді як нижній регістр робить його придатним для використання лише в поточній області.
Java
У Java різні спільноти Java, такі як Sun Microsystems, Netscape, AmbySoft, тощо. Нижче наведено зразок умов іменування, встановлених Sun Microsystems, де ім'я в «CamelCase» складається з ряду слів, з'єднаних без пробілів, причому початкова літера кожного слова, за винятком першого слова, написана великими літерами — наприклад, «camelCase».
Тип ідентифікатора | Правила найменування | Приклади |
---|---|---|
Класи | Назви класів мають бути іменниками UpperCamelCase , з великою першою літерою кожного слова. Використовуйте цілі слова — уникайте акронімів і абревіатур (окрім випадків, коли абревіатура використовується набагато ширше, ніж довга форма, наприклад URL-адреса або HTML). |
|
Методи | Методи мають бути дієсловами lowerCamelCase або багатослівними назвами, які починаються з дієслова малими літерами; тобто з першою літерою малої та першими літерами наступних слів великими. |
|
Змінні | Локальні змінні, змінні екземпляра та змінні класу також записуються в lowerCamelCase . Імена змінних не повинні починатися з символів підкреслення (_ ) або знака долара ($ ), навіть якщо обидва дозволені. Це відрізняється від інших , які стверджують, що підкреслення слід використовувати для префікса всіх змінних екземпляра. Імена змінних мають бути короткими, але змістовними. Вибір назви змінної має бути — тобто таким, щоб вказувати випадковому спостерігачеві намір її використання. Слід уникати односимвольних імен змінних, за винятком тимчасових змінних, які «викидаються». Загальні назви для тимчасових змінних: i, j, k, m і n для цілих чисел; c, d і e для символів. |
|
Константи | Константи слід писати великими літерами, розділеними символами підкреслення. Імена констант також можуть містити цифри, якщо це необхідно, але не як перший символ. |
|
Компілятори Java не дотримуються цих правил, але недотримання їх може призвести до плутанини та помилкового коду. Наприклад, widget.expand()
і Widget.expand()
увазі істотно різні поведінки: widget.expand()
передбачає виклик методу expand()
в екземплярі під назвою widget
, тоді як Widget.expand()
передбачає виклик статичного методу expand()
у класі Widget
. Один із широко поширених стилів кодування Java передбачає використання UpperCamelCase
для класів і lowerCamelCase
використовуватися для примірників (instances) і методів. Визнаючи таке використання, деякі IDE, такі як Eclipse, реалізують ярлики на основі CamelCase. Наприклад, у функції content assist Eclipse введення лише великих літер слова CamelCase запропонує будь-яке відповідне ім’я класу чи методу (наприклад, введення «NPE» та активація content assist може запропонувати NullPointerException
). Ініціалізація з трьох або більше літер — CamelCase замість верхнього регістру (наприклад, parseDbmXmlFromIPAddress
замість parseDBMXMLFromIPAddress
). Можна також встановити межу на дві або більше букв (наприклад parseDbmXmlFromIpAddress
).
JavaScript
Вбудовані бібліотеки JavaScript використовують ті самі правила іменування, що й Java. Типи даних і функції конструктора використовують верхній регістр (RegExp
, TypeError
, XMLHttpRequest
, DOMObject
), а методи використовують нижній регістр (getElementById
, getElementsByTagNameNS
, createCDATASection
). Щоб бути послідовними, більшість розробників JavaScript дотримуються цих умов. Дивіться також: Конвенції Дугласа Крокфорда
Lisp
Загальною практикою в більшості діалектів Lisp є використання тире для розділення слів в ідентифікаторах, як у with-open-file
та make-hash-table
. Імена динамічних змінних зазвичай починаються і закінчуються зірочками: *map-walls*
. Назви констант позначені знаком плюс: +map-size+
.
. NET
Microsoft .NET рекомендує UpperCamelCase
, також відомий як PascalCase, для більшості ідентифікаторів. (lowerCamelCase
рекомендовано для і змінних) і є спільною угодою для .NET мови. Корпорація Майкрософт також рекомендує не використовувати підказки щодо префіксів типів (також відомі як Угорська нотація). Замість використання угорської нотації рекомендується закінчувати назву назвою базового класу; LoginButton
замість BtnLogin
.
Objective-C
Objective-C має загальний стиль кодування, який сягає корінням у Smalltalk. Сутності верхнього рівня, включаючи класи, протоколи, категорії, а також конструкції C, які використовуються в програмах Objective-C, як-от глобальні змінні та функції, мають верхній регістр із коротким префіксом у верхньому регістрі, що позначає простір імен, наприклад NSString
, UIAppDelegate
, NSApp
або CGRectMake
. Константи можуть мати префікс малої літери «k», наприклад kCFBooleanTrue
.
Змінні екземпляра об'єкта використовують lowerCamelCase із префіксом підкреслення, як-от _delegate
та _tableView
.
Назви методів використовують кілька частин нижнього регістру CamelCase, розділених двокрапками, які розмежовують аргументи, наприклад: application:didFinishLaunchingWithOptions:
stringWithFormat:
і isRunning
.
Pascal, Modula-2 і Oberon
У мовах Wirthian Pascal, Modula-2 і Oberon зазвичай використовуються ідентифікатори з Capitalized
або UpperCamelCase
для програм, модулів, констант, типів і процедур, а lowerCamelCase
ідентифікатори в lowercase
або в нижньому регістрі для математичних констант, змінних, формальних параметрів і функцій. У той час як деякі діалекти підтримують підкреслення та знаки долара в ідентифікаторах, регістр «змія» та регістр макросів, швидше за все, обмежуються використанням в іноземних інтерфейсах API.
Perl
Perl бере деякі ознаки своєї спадщини C для конвенцій. Назви локальних змінних і підпрограм пишуться малими літерами з інфіксним підкресленням. Підпрограми та змінні, призначені для обробки як приватні, мають префікс підкреслення. Змінні пакета виділяються в регістр заголовків. Усі оголошені константи мають великі літери. Назви пакетів пишуться регістром, за винятком прагмат, наприклад strict
і , які пишуться малими літерами.
PHP
Рекомендації PHP містяться в PSR-1 (стандартна рекомендація PHP 1) і PSR-12. Згідно з PSR-1, назви класів повинні бути в регістрі Pascal, константи класів повинні бути в MACRO_CASE, а назви функцій і методів повинні бути в верблюдячому регістрі.
Python і Ruby
Python і Ruby рекомендують UpperCamelCase
для назв класів, CAPITALIZED_WITH_UNDERSCORES
для констант і snake_case
для інших назв.
У Python, якщо ім'я має бути «private», перед ним ставиться один або два символи підкреслення (у Python це більш-менш хак). Приватні змінні застосовуються в Python лише за угодою. Імена також можуть бути суфіксами підкреслення, щоб запобігти конфлікту з ключовими словами Python. Префікс із подвійним підкресленням змінює поведінку в класах щодо (викривлення імен). Префікс і з подвійним підкресленням — так звані методи «dunder» («double under») у Python — зарезервовано для «магічних імен», які виконують особливу поведінку в об'єктах Python.
R
Хоча немає офіційного посібника зі стилю для R, посібник зі стилю tidyverse від R-гуру Хедлі Вікхема встановлює стандарт для більшості користувачів. Цей посібник рекомендує уникати спеціальних символів у назвах файлів і використовувати лише цифри, літери та підкреслення для назв змінних і функцій, напр. fit_models.R.
Raku
дотримується більш-менш тих самих умов, що й Perl, за винятком того, що він допускає інфіксний дефіс -
або апостроф '
(або одиночний цитата) всередині ідентифікатора (але не двох поспіль), за умови, що після нього йде буква. Тому програмісти Raku часто використовують у своїх ідентифікаторах kebab case; наприклад, fish-food
і don't-do-that
є дійсними ідентифікаторами.
Rust
Rust рекомендує UpperCamelCase
для псевдонімів типів і назв структур, ознак, enum і варіантів enum, SCREAMING_SNAKE_CASE
для констант або статики та snake_case
для імен членів змінних, функцій і структур.
Swift
Swift змінив правила іменування з кожним окремим випуском. Однак велике оновлення Swift 3.0 стабілізувало умови іменування для lowerCamelCase
у змінних і оголошеннях функцій. Константи зазвичай визначаються типами перерахувань або константними параметрами, які також записуються таким чином. Оголошення класів та інших типів об'єктів є UpperCamelCase
.
Починаючи з Swift 3.0, було створено чіткі вказівки щодо іменування мови з метою стандартизації імен і декларацій API для всіх сторонніх API.
Дивитися також
Примітки
- Derek M. Jones «Operand names influence operator precedence decisions» An experiment investigating the effect of variable names on operator precedence selection
- Raymond, Eric S. (1 жовтня 2004). religious issues. The Jargon File (вид. version 4.4.8). Процитовано 7 листопада 2011.
- Binkley, Dave; Davis, Marcia (2009). To CamelCase or Under_score (PDF). 2009 IEEE 17th International Conference on Program Comprehension (17): 158—167. doi:10.1109/ICPC.2009.5090039. ISBN .
- Naming a Package
- CSS reference. . Процитовано 18 червня 2016.
- StackOverflow – What's the name for snake_case with dashes?.
- . Архів оригіналу за 7 серпня 2016. Процитовано 27 січня 2023.
- Camel_SNAKE-kebab. GitHub. September 2019.
- UnderscoreVersusCapitalAndLowerCaseVariableNaming
- jwfearn (5 вересня 2012). Revisions to jwfearn's answer to What's the name for dash-separated case?.
- Living Clojure (2015), by Carin Meier, p. 91
- lodash: kebabCase
- -kinds-of-cases naming - Які бувають різні види випадків?. Stack Overflow. Процитовано 16 серпня 2020.
- Короткий список програмування правила іменування. deanpugh.com (en- GB) . 20 березня 2018. Процитовано 16 серпня 2020.
- PSR-1: Базовий стандарт кодування - PHP-FIG. www.php-fig.org (англ.).
{{}}
: Проігноровано невідомий параметр|доступ -date=
() - commons.org/camel-snake-kebab/ camel-snake-kebab. camel-snake-kebab (амер.). Процитовано 16 серпня 2020.
- Making Wrong Code Look Wrong. Joel on Software. 11 травня 2005.
- 3.2.1 Names - Chapter 3 - Ada 95 QUALITY AND STYLE Guide.
- ISO/IEC 9899:1999 Programming languages – C. ISO.
- ISO/IEC 14882:2011 Information technology – Programming languages – C++. ISO.
- Правила іменування. Microsoft.
- Names of Type Members. Microsoft.
- Effective Dart - the Dart Style Guide.
- Effective Go - the Go Programming Language.
- «Угоди про код для мови програмування Java», [ http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html Розділ 9: «Угоди про імена»]
- «ПОСІБНИК ЩОДО СТАНДАРТІВ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ NETSCAPE ДЛЯ JAVA», [http ://collaboratory.emsl.pnl.gov/docs/collab/sam/CodeStandards.html [ 2009-03-03 у Wayback Machine.] Посібник зі стандартів кодування програмного забезпечення Collab для Java] . Архів оригіналу за 3 березня 2009. Процитовано 16 лютого 2023.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - .html «Стандарти кодування AmbySoft Inc. для Java v17.01d»[недоступне посилання]
- Morelli, Brandon (17 листопада 2017). 5 JavaScript Style Guides – Including AirBnB, GitHub, & Google. codeburst.io. Процитовано 17 серпня 2018.
- Variables.
- Naming conventions on
- Стилі використання великих літер Microsoft .NET Framework
- .NET Framework Developer's Guide — General Naming Conventions
- [Інструкції з проектування фреймворку, Кшиштоф Кваліна, Бред Абрамс, сторінка 62]
- . Архів оригіналу за 10 вересня 2016. Процитовано 27 січня 2023.
- . Архів оригіналу за 10 вересня 2016. Процитовано 27 січня 2023.
- Perl style guide.
- perlmodlib – constructing new Perl modules and finding existing ones.
- PHP standards recommendations.
- PSR-1: Basic Coding Standard - PHP-FIG.
- [ https://www.python.org/dev/peps/pep-0008/ Керівництво по стилю для коду Python PEP8]
- . Архів оригіналу за 30 листопада 2017. Процитовано 27 січня 2023.
- Загальні правила синтаксису Perl 6.
- Назви. doc.rust-lang.org (англ.). Процитовано 4 лютого 2018.
- Інструкції з розробки API swift.org.
Посилання
- coding-guidelines.com has a pdf який використовує лінгвістику та психологію для спроби аналізу витрат і вигод щодо проблем іменування ідентифікаторів
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U komp yuternomu programuvanni uzgodzhennya imen ce nabir pravil dlya viboru poslidovnosti simvoliv yaki budut vikoristovuvatisya dlya identifikatoriv yaki poznachayut zminni tipi funkciyi ta inshi sutnosti u pochatkovomu kodi ta dokumentaciyi Prichini vikoristannya ugodi pro imenuvannya na vidminu vid dozvolu programistam vibirati bud yaku poslidovnist simvoliv vklyuchayut nastupne Shob zmenshiti zusillya neobhidni dlya chitannya ta rozuminnya pochatkovogo kodu Shob perevirki kodu zoseredilisya na pitannyah vazhlivishih za sintaksis i standarti imen Shob instrumenti perevirki yakosti kodu zoseredzhuvali svoyi zviti na vazhlivih pitannyah krim sintaksisu ta stilyu Vibir umov najmenuvannya mozhe buti nadzvichajno superechlivim pitannyam koli prihilniki kozhnogo vvazhayut svoye najkrashim a inshih nizhchim U prostorichchi kazhut sho ce pitannya dogmi Bagato kompanij takozh stvorili vlasnij nabir konvencij Potencijni perevagiDeyaki z potencijnih perevag yaki mozhna otrimati prijnyavshi ugodu pro imenuvannya vklyuchayut nastupne nadati dodatkovu informaciyu tobto metadani pro vikoristannya identifikatora dopomogti formalizuvati ochikuvannya ta spriyati nesuperochnosti v komandi rozrobnikiv umozhliviti vikoristannya avtomatizovanogo refaktoringu abo instrumentiv poshuku ta zamini z minimalnoyu mozhlivistyu pomilok dlya pidvishennya yasnosti u vipadkah potencijnoyi dvoznachnosti pokrashiti estetichnij i profesijnij viglyad produktu roboti napriklad zaboronivshi nadto dovgi nazvi smishni chi mili nazvi abo abreviaturi shob dopomogti uniknuti kolizij imen yaki mozhut viniknuti koli robochij produkt riznih organizacij ob yednuyetsya div takozh prostori imen nadavati znachushi dani dlya vikoristannya pid chas peredachi proektu sho vimagaye podannya vihidnogo kodu programi ta vsiyeyi vidpovidnoyi dokumentaciyi shob zabezpechiti krashe rozuminnya u vipadku povtornogo vikoristannya kodu pislya trivalogo promizhku chasu ViklikiVibir konvencij pro najmenuvannya i stupin yih dotrimannya chasto ye spirnim pitannyam prihilniki vvazhayut svoyu tochku zoru najkrashoyu a inshi nizhchoyu Bilshe togo navit za nayavnosti vidomih i chitko viznachenih domovlenostej pro najmenuvannya deyaki organizaciyi mozhut ne dotrimuvatisya yih poslidovno sho sprichinyaye neposlidovnist i plutaninu Ci problemi mozhut posilyuvatisya yaksho pravila imenuvannya ye vnutrishno superechlivimi dovilnimi skladnimi dlya zapam yatovuvannya abo inshim chinom sprijmayutsya yak bilsh obtyazhlivi nizh korisni ChitabelnistDobre pidibrani identifikatori znachno polegshuyut rozrobnikam i analitikam rozuminnya togo sho robit sistema ta yak vipraviti abo rozshiriti vihidnij kod dlya zastosuvannya dlya novih potreb Napriklad hochaa b c sintaksichno pravilnij jogo meta neochevidna Porivnyajte ce z weekly pay hours worked hourly pay rate sho viznachaye znachennya i zmist pochatkovogo kodu prinajmni dlya tih hto znajomij z kontekstom virazu Eksperimenti pokazuyut sho stil identifikatora vplivaye na zapam yatovuvannya ta tochnist a znajomstvo zi stilem priskoryuye zapam yatovuvannya Zagalni elementiTochni pravila imenuvannya zalezhat vid kontekstu u yakomu voni vikoristovuyutsya Tim ne mensh ye kilka zagalnih elementiv yaki vplivayut na bilshist yaksho ne na vsi ugodi pro najmenuvannya yaki shiroko vikoristovuyutsya sogodni Dovzhina identifikatoriv Fundamentalnimi elementami vsih domovlenostej pro imenuvannya ye pravila sho stosuyutsya dovzhini identifikatora tobto kincevoyi kilkosti okremih simvoliv dozvolenih v identifikatori Deyaki pravila diktuyut fiksovanu chislovu mezhu todi yak inshi viznachayut mensh tochni evristiki chi vkazivki Pravila shodo dovzhini identifikatora postijno oskarzhuyutsya na praktici ta ye predmetom bagatoh akademichnih debativ Deyaki mirkuvannya korotshi identifikatori mozhut buti krashimi yak bilsh docilni oskilki yih legshe vvoditi hocha bagato IDE ta tekstovi redaktori zabezpechuyut zavershennya tekstu sho pom yakshuye ce nadzvichajno korotki identifikatori taki yak i abo j duzhe vazhko odnoznachno rozrizniti za dopomogoyu avtomatizovanih instrumentiv poshuku ta zamini hocha ce ne problema dlya instrumentiv na osnovi regulyarnih viraziv dovshi identifikatori mozhut buti krashimi oskilki korotki identifikatori ne mozhut koduvati dostatno informaciyi abo viglyadayut nadto zagadkovimi dovshi identifikatori mozhut buti neprijnyatnimi cherez vizualnij bezlad Ce vidkrite pitannya doslidzhennya chi deyaki programisti viddayut perevagu korotshim identifikatoram tomu sho yih legshe vvesti abo pridumati nizh dovshi identifikatori chi tomu sho v bagatoh situaciyah dovshij identifikator prosto zaharashuye vidimij kod i ne daye vidimoyi dodatkovoyi perevagi Stislist u programuvanni chastkovo poyasnyuyetsya ranni komponuvalniki yaki vimagali obmezhennya imen zminnih 6 simvolami dlya ekonomiyi pam yati Piznishij progres dozvoliv vikoristovuvati dovshi imena zminnih dlya rozuminnya lyudinoyu ale lishe pershi kilka simvoliv buli znachushimi U deyakih versiyah BASIC takih yak TRS 80 Level 2 Basic dozvolyalisya dovgi imena ale lishe pershi dvi literi buli znachushimi Cya funkciya dozvolyala pomilkovu povedinku yaku bulo vazhko nalagoditi napriklad koli vikoristovuvalisya taki imena yak VALUE i VAT yaki mali buti riznimi ranni redaktori vihidnogo kodu ne mayut avtozapovnennya ranni monitori z nizkoyu rozdilnoyu zdatnistyu z obmezhenoyu dovzhinoyu ryadka napriklad lishe 80 simvoliv velika chastina informatiki pohodit vid matematiki de imena zminnih tradicijno skladayutsya lishe z odniyeyi literiLitera i cifri Deyaki ugodi pro najmenuvannya obmezhuyut chi literi mozhut vidobrazhatisya u verhnomu chi nizhnomu registri Inshi konvenciyi ne obmezhuyut registr liter ale nadayut chitke tlumachennya na osnovi registru liter Deyaki ugodi pro najmenuvannya viznachayut chi mozhna vikoristovuvati bukvi cifri abo bukveno cifrovi simvoli i yaksho tak to v yakij poslidovnosti Bagatoslivni identifikatori Zagalna rekomendaciya Vikoristovujte znachushi identifikatori Odne slovo mozhe buti ne takim znachushim abo konkretnim yak kilka sliv Otzhe deyaki domovlenosti pro najmenuvannya viznachayut pravila obrobki skladenih identifikatoriv sho mistyat bilshe odnogo slova Oskilki bilshist mov programuvannya ne dozvolyayut vikoristovuvati probili v identifikatorah neobhidnij metod rozmezhuvannya kozhnogo slova shob polegshiti nastupnim chitacham interpretaciyu togo yaki simvoli nalezhat yakomu slovu Istorichno deyaki ranni movi zokrema FORTRAN 1955 i ALGOL 1958 dozvolyali propuski v identifikatorah viznachayuchi kinec identifikatoriv za kontekstom Vid cogo vidmovilisya v piznishih movah cherez skladnist tokenizaciyi Mozhna pisati nazvi prosto z yednuyuchi slova i ce inodi vikoristovuyetsya yak u mypackage dlya nazv paketiv Java hocha rozbirlivist strazhdaye dlya bilsh dovgih terminiv tomu zazvichaj vikoristovuyetsya pevna forma rozdilennya Slova rozdileni rozdilnikom Odin iz pidhodiv polyagaye v tomu shob rozdilyati okremi slova ne bukveno cifrovim simvolom Dlya ciyeyi meti zazvichaj vikoristovuyutsya dva simvoli defis i pidkreslennya napriklad nazva z dvoh sliv dva slova bude predstavlena yak dva slova abo dva slova Defis vikoristovuyetsya majzhe vsima programistami yaki pishut COBOL 1959 Forth 1970 i Lisp 1958 vin takozh poshirenij v Unix dlya komand i paketiv i vikoristovuyetsya v CSS Cya konvenciya ne maye standartnoyi nazvi hocha yiyi mozhna nazivati lisp case abo COBOL CASE porivnyajte Pascal case kebab case brochette case abo inshi varianti Z nih kebab case datovanij prinajmni 2012 rokom z tih pir nabuv pevnoyi populyarnosti Navpaki movi tradiciyi FORTRAN ALGOL zokrema movi simejstv C i Pascal vikoristovuvali defis dlya infiksnogo operatora vidnimannya ta ne bazhali vimagati probiliv navkolo nogo yak movi vilnoyi formi zapobigayuchi jogo vikoristannyu v identifikatori Alternativoyu ye vikoristannya pidkreslen ce poshirene yavishe v simejstvi C vklyuchayuchi Python zi slovami z malogo registru yaki mozhna znajti napriklad u Movi programuvannya C 1978 i stalo vidomim yak zmiyinij registr Znaki pidkreslennya u verhnomu registri yak u UPPER CASE zazvichaj vikoristovuyutsya dlya makrosiv preprocesora C tomu vidomih yak MACRO CASE i dlya zminnih seredovisha v Unix takih yak BASH VERSION u bash Inodi ce z gumorom nazivayut SCREAMING SNAKE CASE Slova rozdileni registrom Inshij pidhid polyagaye v tomu shob poznachiti mezhi sliv za dopomogoyu serednoyi literi sho nazivayetsya camelCase PascalCase i bagatma inshimi imenami takim chinom vidpovidno vidobrazhayuchi dva slova yak twoWords abo TwoWords Cya konvenciya zazvichaj vikoristovuyetsya v Pascal Java C ta Visual Basic Obrobka inicializmiv v identifikatorah napriklad XML i HTTP u a href wiki XMLHttpRequest title XMLHttpRequest XMLHttpRequest a riznitsya Deyaki vimagayut shob voni buli napisani u nizhnomu registri napriklad XmlHttpRequest shob polegshiti vvedennya chitabelnist i legkist todi yak inshi zalishayut yih u verhnomu registri napriklad XMLHTTPRequest dlya tochnosti Prikladi formativ bagatoslivnih identifikatoriv Formati bagatoslivnih identifikatoriv Formatuvannya Imenadva slova flatcaseDVA SLOVA VELIKIJ REGISTRdva slova nizhnij camelCase dromedaryCaseDva slova PascalCase UpperCamelCase StudlyCasedva slova snake case snail case viboyina caseDVA SLOVA ALL CAPS SREAMING SNAKE CASE MACRO CASE CONSTANT CASEdva slova camel Snake CaseDva slova Pascal Snake Case Title Casedva slova kebab case dash case lisp case spinal caseDVA SLOVA TRAIN CASE COBOL CASE SCREAMING KEBAB CASEDva slova Train Case HTTP Header CaseMetadani ta gibridni konvenciyiDeyaki domovlenosti pro najmenuvannya predstavlyayut pravila abo vimogi yaki vihodyat za ramki vimog konkretnogo proektu chi problemnoyi oblasti a natomist vidobrazhayut bilshij vseosyazhnij nabir principiv viznachenih arhitekturoyu programnogo zabezpechennya bazovoyu movoyu programuvannya chi inshoyu mizhproektnoyu metodologiyeyu Ugorska notaciya Mabut najvidomishoyu ye ugorska notaciya yaka koduye priznachennya Apps Hungarian abo tip Systems Hungarian zminnoyi v nazvi Napriklad prefiks sz dlya zminnoyi szName vkazuye na te sho zminna ye ryadkom iz nulovim zavershennyam Pozicijna notaciya Stil yakij vikoristovuyetsya dlya duzhe korotkogo visim simvoliv i menshe mozhe buti takim LCCIIL01 de LC bude zayavkoyu akreditivi C dlya COBOL IIL dlya konkretnoyi pidmnozhini procesu a 01 poryadkovij nomer Cej vid konvenciyi vse she aktivno vikoristovuyetsya v mejnfrejmah sho zalezhat vid JCL i takozh sposterigayetsya u stili MS DOS 8 3 maksimum visim simvoliv iz krapkoyu rozdilnikom pislya yakogo jde tri simvoli Skladena shema sliv OF Language Mova OF IBM bula zadokumentovana v posibniku IMS sistema upravlinnya informaciyeyu U nomu detalno opisana shema sliv PRIME MODIFIER CLASS yaka skladalasya z imen na kshtalt CUST ACT NO dlya poznachennya nomera rahunku kliyenta Slova PRIME mali na meti poznachiti osnovni sutnosti sho predstavlyayut interes dlya sistemi Dlya dodatkovogo utochnennya kvalifikaciyi ta chitabelnosti vikoristano slova MODIFIKATORI Slova CLASS v ideali buli b duzhe korotkim spiskom tipiv danih sho stosuyutsya konkretnoyi programi Zagalni slova CLASS mozhut buti takimi NO nomer ID identifikator TXT tekst AMT suma QTY kilkist FL prapor CD kod W robota tosho Na praktici dostupni slova KLASU yavlyatimut soboyu spisok iz mensh nizh dvoh desyatkiv terminiv Slova CLASS zazvichaj roztashovani pravoruch sufiks sluzhili majzhe tij samij meti sho j prefiksi ugorskoyi notaciyi Priznachennya sliv CLASS krim uzgodzhenosti polyagalo v tomu shob vkazati programistu tip danih pevnogo polya danih Do prijnyattya poliv BOOLEAN lishe dva znachennya FL prapor vkazuvav na pole lishe z dvoma mozhlivimi znachennyami Specialni movni umovnostiActionScript Konvenciyi ta peredovi metodi koduvannya Adobe proponuyut standarti imen dlya ActionScript yaki zdebilshogo vidpovidayut standartam ECMAScript Stil identifikatoriv shozhij na stil Java Ada V Ada yedinim rekomendovanim stilem identifikatoriv ye Mixed Case With Underscores APL In APL dialects the delta D is used between words e g PERFDSQUARE no lowercase traditionally existed in older APL versions If the name used underscored letters then the delta underbar would be used instead C i C U C i C klyuchovi slova ta standartni identifikatori bibliotek zdebilshogo napisani malimi literami U standartnij biblioteci C najposhirenishimi ye skorocheni nazvi napriklad isalnum dlya funkciyi yaka pereviryaye chi ye simvol bukveno cifrovim todi yak standartna biblioteka C chasto vikoristovuye pidkreslennya yak rozdilnik sliv napriklad out of range Identifikatori sho predstavlyayut makrosi za domovlenistyu zapisuyutsya lishe z vikoristannyam velikih liter i pidkreslennya ce pov yazano z ugodoyu bagatoh mov programuvannya pro vikoristannya identifikatoriv u verhnomu registri dlya konstant Imena yaki mistyat podvijne pidkreslennya abo pochinayutsya z pidkreslennya ta velikoyi literi zarezervovani dlya realizaciyi kompilyator standartna biblioteka i ne povinni vikoristovuvatisya napriklad reserved abo Reserved Zovni ce shozhe na stroping ale semantika vidriznyayetsya pidkreslennya ye chastinoyu znachennya identifikatora a ne simvolami lapok yak stroping znachennyam foo ye foo sho zarezervovano a ne foo ale v inshomu prostori imen C Ugodi pro najmenuvannya C zazvichaj vidpovidayut instrukciyam opublikovanim Microsoft dlya vsih mov NET div rozdil NET nizhche ale zhodni ugodi ne zastosovuyutsya C kompilyator Instrukciyi Microsoft shodo imenuvannya poliv stosuyutsya lishe static public i protected poliv polya yaki ne ye static ta mayut inshi rivni dostupnosti napriklad internal ta private yavno ne ohoplyuyutsya cimi rekomendaciyami Najbilsh poshirenoyu praktikoyu ye vikoristannya PascalCase dlya nazv usih poliv za vinyatkom tih yaki ye private i ne ye ani const ani static yakim nadayutsya imena sho vikoristovuyut camelCase pered yakim stoyit odne pidkreslennya napriklad totalCount Bud yake im ya identifikatora mozhe mati prefiks komercijnogo simvolu bez bud yakih zmin u znachenni Tobto i factor i factor posilayutsya na toj samij ob yekt Za domovlenistyu cej prefiks vikoristovuyetsya lishe u vipadkah koli inakshe identifikator buv bi abo zarezervovanim klyuchovim slovom napriklad for i while yake ne mozhna vikoristovuvati yak identifikator bez prefiksa abo kontekstnim klyuchovim slovom napriklad from i where u yakih vipadkah prefiks ne ye obov yazkovim prinajmni ne pid chas jogo ogoloshennya napriklad hocha ogoloshennya dynamic dynamic ye dijsnim ce zazvichaj rozglyadatimetsya yak dynamic dynamic shob odrazu vkazati chitachevi sho ostannya ye nazvoyu zminnoyi Dart Flatter U movi Dart yaka vikoristovuyetsya u Flutter SDK ugodi podibni do umov Java za vinyatkom togo sho konstanti zapisuyutsya v nizhnomu registri Dart nav yazuye sintaksichne pravilo zgidno z yakim nelokalni identifikatori yaki pochinayutsya z pidkreslennya rozglyadayutsya yak privatni oskilki mova ne maye yavnih klyuchovih sliv dlya publichnogo chi privatnogo dostupu Krim togo imena vihidnih fajliv ne vidpovidayut pravilu Java odin zagalnodostupnij klas na vihidnij fajl im ya maye zbigatisya zamist cogo dlya imen fajliv vikoristovuyetsya snake case Go U Go dlya napisannya bagatoslivnih imen prijnyato vikoristovuvati MixedCaps abo mixedCaps a ne pidkreslennya Koli jdetsya pro strukturi chi funkciyi persha bukva vkazuye na vidimist zovnishnih paketiv Zrobivshi pershu literu velikoyu cej fragment kodu eksportuyetsya todi yak nizhnij registr robit jogo pridatnim dlya vikoristannya lishe v potochnij oblasti Java U Java rizni spilnoti Java taki yak Sun Microsystems Netscape AmbySoft tosho Nizhche navedeno zrazok umov imenuvannya vstanovlenih Sun Microsystems de im ya v CamelCase skladayetsya z ryadu sliv z yednanih bez probiliv prichomu pochatkova litera kozhnogo slova za vinyatkom pershogo slova napisana velikimi literami napriklad camelCase Tip identifikatora Pravila najmenuvannya PrikladiKlasi Nazvi klasiv mayut buti imennikami Upper a href wiki CamelCase class mw redirect title CamelCase CamelCase a z velikoyu pershoyu literoyu kozhnogo slova Vikoristovujte cili slova unikajte akronimiv i abreviatur okrim vipadkiv koli abreviatura vikoristovuyetsya nabagato shirshe nizh dovga forma napriklad URL adresa abo HTML klas Raster klas ImageSprite Metodi Metodi mayut buti diyeslovami lower a href wiki CamelCase class mw redirect title CamelCase CamelCase a abo bagatoslivnimi nazvami yaki pochinayutsya z diyeslova malimi literami tobto z pershoyu literoyu maloyi ta pershimi literami nastupnih sliv velikimi run runFast getBackground Zminni Lokalni zminni zminni ekzemplyara ta zminni klasu takozh zapisuyutsya v lower a href wiki CamelCase class mw redirect title CamelCase CamelCase a Imena zminnih ne povinni pochinatisya z simvoliv pidkreslennya abo znaka dolara navit yaksho obidva dozvoleni Ce vidriznyayetsya vid inshih yaki stverdzhuyut sho pidkreslennya slid vikoristovuvati dlya prefiksa vsih zminnih ekzemplyara Imena zminnih mayut buti korotkimi ale zmistovnimi Vibir nazvi zminnoyi maye buti tobto takim shob vkazuvati vipadkovomu sposterigachevi namir yiyi vikoristannya Slid unikati odnosimvolnih imen zminnih za vinyatkom timchasovih zminnih yaki vikidayutsya Zagalni nazvi dlya timchasovih zminnih i j k m i n dlya cilih chisel c d i e dlya simvoliv int i char c float myWidth Konstanti Konstanti slid pisati velikimi literami rozdilenimi simvolami pidkreslennya Imena konstant takozh mozhut mistiti cifri yaksho ce neobhidno ale ne yak pershij simvol span class kd static span span class w span span class kd final span span class w span span class kt int span span class w span span class n MAX PARTICIPANTS span span class w span span class o span span class w span span class mi 10 span span class p span Kompilyatori Java ne dotrimuyutsya cih pravil ale nedotrimannya yih mozhe prizvesti do plutanini ta pomilkovogo kodu Napriklad widget expand i Widget expand uvazi istotno rizni povedinki widget expand peredbachaye viklik metodu expand v ekzemplyari pid nazvoyu widget todi yak Widget expand peredbachaye viklik statichnogo metodu expand u klasi Widget Odin iz shiroko poshirenih stiliv koduvannya Java peredbachaye vikoristannya a href wiki D0 92 D0 B5 D1 80 D0 B1 D0 BB D1 8E D0 B4 D1 8F D1 87 D0 B8 D0 B9 D1 80 D0 B5 D0 B3 D1 96 D1 81 D1 82 D1 80 title Verblyudyachij registr UpperCamelCase a dlya klasiv i a href wiki D0 92 D0 B5 D1 80 D0 B1 D0 BB D1 8E D0 B4 D1 8F D1 87 D0 B8 D0 B9 D1 80 D0 B5 D0 B3 D1 96 D1 81 D1 82 D1 80 title Verblyudyachij registr lowerCamelCase a vikoristovuvatisya dlya primirnikiv instances i metodiv Viznayuchi take vikoristannya deyaki IDE taki yak Eclipse realizuyut yarliki na osnovi CamelCase Napriklad u funkciyi content assist Eclipse vvedennya lishe velikih liter slova CamelCase zaproponuye bud yake vidpovidne im ya klasu chi metodu napriklad vvedennya NPE ta aktivaciya content assist mozhe zaproponuvati NullPointerException Inicializaciya z troh abo bilshe liter CamelCase zamist verhnogo registru napriklad parseDbmXmlFromIPAddress zamist parseDBMXMLFromIPAddress Mozhna takozh vstanoviti mezhu na dvi abo bilshe bukv napriklad parseDbmXmlFromIpAddress JavaScript Vbudovani biblioteki JavaScript vikoristovuyut ti sami pravila imenuvannya sho j Java Tipi danih i funkciyi konstruktora vikoristovuyut verhnij registr RegExp TypeError XMLHttpRequest DOMObject a metodi vikoristovuyut nizhnij registr getElementById getElementsByTagNameNS createCDATASection Shob buti poslidovnimi bilshist rozrobnikiv JavaScript dotrimuyutsya cih umov Divitsya takozh Konvenciyi Duglasa Krokforda Lisp Zagalnoyu praktikoyu v bilshosti dialektiv Lisp ye vikoristannya tire dlya rozdilennya sliv v identifikatorah yak u with open file ta make hash table Imena dinamichnih zminnih zazvichaj pochinayutsya i zakinchuyutsya zirochkami map walls Nazvi konstant poznacheni znakom plyus map size NET Microsoft NET rekomenduye a href wiki CamelCase class mw redirect title CamelCase UpperCamelCase a takozh vidomij yak PascalCase dlya bilshosti identifikatoriv a href wiki CamelCase class mw redirect title CamelCase lowerCamelCase a rekomendovano dlya i zminnih i ye spilnoyu ugodoyu dlya NET movi Korporaciya Majkrosoft takozh rekomenduye ne vikoristovuvati pidkazki shodo prefiksiv tipiv takozh vidomi yak Ugorska notaciya Zamist vikoristannya ugorskoyi notaciyi rekomenduyetsya zakinchuvati nazvu nazvoyu bazovogo klasu LoginButton zamist BtnLogin Objective C Objective C maye zagalnij stil koduvannya yakij syagaye korinnyam u Smalltalk Sutnosti verhnogo rivnya vklyuchayuchi klasi protokoli kategoriyi a takozh konstrukciyi C yaki vikoristovuyutsya v programah Objective C yak ot globalni zminni ta funkciyi mayut verhnij registr iz korotkim prefiksom u verhnomu registri sho poznachaye prostir imen napriklad NSString UIAppDelegate NSApp abo CGRectMake Konstanti mozhut mati prefiks maloyi literi k napriklad kCFBooleanTrue Zminni ekzemplyara ob yekta vikoristovuyut lowerCamelCase iz prefiksom pidkreslennya yak ot delegate ta tableView Nazvi metodiv vikoristovuyut kilka chastin nizhnogo registru CamelCase rozdilenih dvokrapkami yaki rozmezhovuyut argumenti napriklad application didFinishLaunchingWithOptions stringWithFormat i isRunning Pascal Modula 2 i Oberon U movah Wirthian Pascal Modula 2 i Oberon zazvichaj vikoristovuyutsya identifikatori z Capitalized abo UpperCamelCase dlya program moduliv konstant tipiv i procedur a lowerCamelCase identifikatori v lowercase abo v nizhnomu registri dlya matematichnih konstant zminnih formalnih parametriv i funkcij U toj chas yak deyaki dialekti pidtrimuyut pidkreslennya ta znaki dolara v identifikatorah registr zmiya ta registr makrosiv shvidshe za vse obmezhuyutsya vikoristannyam v inozemnih interfejsah API Perl Perl bere deyaki oznaki svoyeyi spadshini C dlya konvencij Nazvi lokalnih zminnih i pidprogram pishutsya malimi literami z infiksnim pidkreslennyam Pidprogrami ta zminni priznacheni dlya obrobki yak privatni mayut prefiks pidkreslennya Zminni paketa vidilyayutsya v registr zagolovkiv Usi ogolosheni konstanti mayut veliki literi Nazvi paketiv pishutsya registrom za vinyatkom pragmat napriklad strict i yaki pishutsya malimi literami PHP Rekomendaciyi PHP mistyatsya v PSR 1 standartna rekomendaciya PHP 1 i PSR 12 Zgidno z PSR 1 nazvi klasiv povinni buti v registri Pascal konstanti klasiv povinni buti v MACRO CASE a nazvi funkcij i metodiv povinni buti v verblyudyachomu registri Python i Ruby Python i Ruby rekomenduyut UpperCamelCase dlya nazv klasiv CAPITALIZED WITH UNDERSCORES dlya konstant i snake case dlya inshih nazv U Python yaksho im ya maye buti private pered nim stavitsya odin abo dva simvoli pidkreslennya u Python ce bilsh mensh hak Privatni zminni zastosovuyutsya v Python lishe za ugodoyu Imena takozh mozhut buti sufiksami pidkreslennya shob zapobigti konfliktu z klyuchovimi slovami Python Prefiks iz podvijnim pidkreslennyam zminyuye povedinku v klasah shodo vikrivlennya imen Prefiks i z podvijnim pidkreslennyam tak zvani metodi dunder double under u Python zarezervovano dlya magichnih imen yaki vikonuyut osoblivu povedinku v ob yektah Python R Hocha nemaye oficijnogo posibnika zi stilyu dlya R posibnik zi stilyu tidyverse vid R guru Hedli Vikhema vstanovlyuye standart dlya bilshosti koristuvachiv Cej posibnik rekomenduye unikati specialnih simvoliv u nazvah fajliv i vikoristovuvati lishe cifri literi ta pidkreslennya dlya nazv zminnih i funkcij napr fit models R Raku dotrimuyetsya bilsh mensh tih samih umov sho j Perl za vinyatkom togo sho vin dopuskaye infiksnij defis abo apostrof abo odinochnij citata vseredini identifikatora ale ne dvoh pospil za umovi sho pislya nogo jde bukva Tomu programisti Raku chasto vikoristovuyut u svoyih identifikatorah kebab case napriklad fish food i don t do that ye dijsnimi identifikatorami Rust Rust rekomenduye UpperCamelCase dlya psevdonimiv tipiv i nazv struktur oznak enum i variantiv enum SCREAMING SNAKE CASE dlya konstant abo statiki ta snake case dlya imen chleniv zminnih funkcij i struktur Swift Swift zminiv pravila imenuvannya z kozhnim okremim vipuskom Odnak velike onovlennya Swift 3 0 stabilizuvalo umovi imenuvannya dlya lowerCamelCase u zminnih i ogoloshennyah funkcij Konstanti zazvichaj viznachayutsya tipami pererahuvan abo konstantnimi parametrami yaki takozh zapisuyutsya takim chinom Ogoloshennya klasiv ta inshih tipiv ob yektiv ye UpperCamelCase Pochinayuchi z Swift 3 0 bulo stvoreno chitki vkazivki shodo imenuvannya movi z metoyu standartizaciyi imen i deklaracij API dlya vsih storonnih API Divitisya takozhKategoriya Konvenciyi imenuvannya Domovlenosti pro stil kodu Prostir nazv Sintaksis programuvannya PrimitkiDerek M Jones Operand names influence operator precedence decisions An experiment investigating the effect of variable names on operator precedence selection Raymond Eric S 1 zhovtnya 2004 religious issues The Jargon File vid version 4 4 8 Procitovano 7 listopada 2011 Binkley Dave Davis Marcia 2009 To CamelCase or Under score PDF 2009 IEEE 17th International Conference on Program Comprehension 17 158 167 doi 10 1109 ICPC 2009 5090039 ISBN 978 1 4244 3998 0 Naming a Package CSS reference Procitovano 18 chervnya 2016 StackOverflow What s the name for snake case with dashes Arhiv originalu za 7 serpnya 2016 Procitovano 27 sichnya 2023 Camel SNAKE kebab GitHub September 2019 UnderscoreVersusCapitalAndLowerCaseVariableNaming jwfearn 5 veresnya 2012 Revisions to jwfearn s answer to What s the name for dash separated case Living Clojure 2015 by Carin Meier p 91 lodash kebabCase kinds of cases naming Yaki buvayut rizni vidi vipadkiv Stack Overflow Procitovano 16 serpnya 2020 Korotkij spisok programuvannya pravila imenuvannya deanpugh com en GB 20 bereznya 2018 Procitovano 16 serpnya 2020 PSR 1 Bazovij standart koduvannya PHP FIG www php fig org angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr dostup date dovidka commons org camel snake kebab camel snake kebab camel snake kebab amer Procitovano 16 serpnya 2020 Making Wrong Code Look Wrong Joel on Software 11 travnya 2005 3 2 1 Names Chapter 3 Ada 95 QUALITY AND STYLE Guide ISO IEC 9899 1999 Programming languages C ISO ISO IEC 14882 2011 Information technology Programming languages C ISO Pravila imenuvannya Microsoft Names of Type Members Microsoft Effective Dart the Dart Style Guide Effective Go the Go Programming Language Ugodi pro kod dlya movi programuvannya Java http java sun com docs codeconv html CodeConventions doc8 html Rozdil 9 Ugodi pro imena POSIBNIK ShODO STANDARTIV PROGRAMNOGO ZABEZPEChENNYa NETSCAPE DLYa JAVA http collaboratory emsl pnl gov docs collab sam CodeStandards html 2009 03 03 u Wayback Machine Posibnik zi standartiv koduvannya programnogo zabezpechennya Collab dlya Java Arhiv originalu za 3 bereznya 2009 Procitovano 16 lyutogo 2023 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya html Standarti koduvannya AmbySoft Inc dlya Java v17 01d nedostupne posilannya Morelli Brandon 17 listopada 2017 5 JavaScript Style Guides Including AirBnB GitHub amp Google codeburst io Procitovano 17 serpnya 2018 Variables Naming conventions on Stili vikoristannya velikih liter Microsoft NET Framework NET Framework Developer s Guide General Naming Conventions Instrukciyi z proektuvannya frejmvorku Kshishtof Kvalina Bred Abrams storinka 62 Arhiv originalu za 10 veresnya 2016 Procitovano 27 sichnya 2023 Arhiv originalu za 10 veresnya 2016 Procitovano 27 sichnya 2023 Perl style guide perlmodlib constructing new Perl modules and finding existing ones PHP standards recommendations PSR 1 Basic Coding Standard PHP FIG https www python org dev peps pep 0008 Kerivnictvo po stilyu dlya kodu Python PEP8 Arhiv originalu za 30 listopada 2017 Procitovano 27 sichnya 2023 Zagalni pravila sintaksisu Perl 6 Nazvi doc rust lang org angl Procitovano 4 lyutogo 2018 Instrukciyi z rozrobki API swift org Posilannyacoding guidelines com has a pdf yakij vikoristovuye lingvistiku ta psihologiyu dlya sprobi analizu vitrat i vigod shodo problem imenuvannya identifikatoriv