Стандарт оформлення коду

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Станда́рт оформле́ння ко́ду або станда́рт кодування[джерело?] (англ. coding standards[джерело?], англ. coding convention або англ. programming style) — набір правил та угод, що використовуються при написанні сирцевого коду на деяких мовах програмування.

Використання[ред. | ред. код]

Стандарт оформлення коду зазвичай приймається та використовується групою розробників програмного забезпечення для єдиного стилю оформлення коду, над яким йде спільна праця. Метою прийняття та використання стандарту є спрощення сприйняття програмного коду людиною, мінімізація навантаження на пам'ять та зір при читанні програми.

Зразком для стандарту кодування може стати набір угод, прийнятих в якій-небудь поширеній печатній праці з мови програмування (наприклад, стандарт кодування мовою С, що отримав коротку назву K&R, виходить з класичного описання С його творцями — Керніганом та Рітчі), поширена бібліотека або API (так, на поширення угорської нотації вплинув той факт, що її використовували в MS-DOS та Windows API, а більшість стандартів кодування для Delphi використовують манеру кодування бібліотеки VCL). Рідше розробник мови програмування випускає детальні рекомендації по кодуванню на ній; випущені, наприклад, стандарти кодування на C# від Microsoft та на Java від Sun. Запропонована розробником та прийнята в загально відомих джерелах манера кодування може бути доповнена та уточнена у корпоративних стандартах.

Склад[ред. | ред. код]

Стандарт дуже залежить від використовуваної мови програмування. Наприклад, стандарт оформлення коду для С буде сильно відрізнятися від стандарту для мови BASIC. Зазвичай метою стандарту є досягнення такого стану, коли програміст достатньої кваліфікації міг би дати висновки про функцію, яку виконує конкретна ділянка коду, а в ідеалі — також визначити його коректність, вивчивши тільки цю ділянку коду, або мінімально вивчивши інші частини програми. Іншими словами, сенс коду повинен буди зрозумілим з самого коду без необхідності вивчати контекст. Тому стандарти кодування будуються так, щоб шляхом визначеного візуального оформлення елементів програми збільшити інформативність коду для людини.

Зазвичай, стандарт оформлення коду описує:

  • засоби вибору значень та використовуваний регістр символів для імен змінних та інших ідентифікаторів.
    • запис типу змінної в її ідентифікаторі (угорська нотація).
    • регістр символів (нижній, верхній, «верблюжий», «верблюжий» з малої букви), використання знаку підкреслення для розділу слів.
  • стиль відступів при оформленні логічних блоків — чи використовуються табуляції, ширина відступу.
  • спосіб розстановки дужок, що обмежують логічні блоки.
  • використання пробілів при оформленні логічних та арифметичних виразів.
  • стиль коментарів та використання документуючих коментарів.

Поза стандартом існують правила про:

  • відсутність магічних чисел
  • обмеження розміру коду по горизонталі на вертикалі.

Стандарти кодування і синтаксис мов програмування[ред. | ред. код]

Основні принципи поширених стандартів кодування в останній час впливають на синтаксис нових мов програмування. В деяких з них, угоди, що раніше використовувались тільки в стандартах кодування, стають обов'язковими елементами синтаксису. Так, у деяких сучасних мовах (Python, Nemerle) відступи впливають на логіку виконання (тобто блоки коду виділяються не ключовими словами, а розміром відступів). В інших стали частиною мови угоди про регістри літер та префіксів для типів, констант, змінних та полів класів.

Якщо раніше недисциплінований програміст міг ігнорувати стандарти кодування з особистих міркувань, заради зручності та швидкості написання коду, то тепер, при роботі з новими мовами, дотримання стандартів деякою мірою контролюється транслятором.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]

  • Стандарты оформления кода языков программирования и всё что этого касается (російською) . Архів оригіналу за 27 серпня 2011. Процитовано 10 червня 2010. {{cite web}}: Cite має пустий невідомий параметр: |description= (довідка)