Открыть сервисСервис

Дока — термин программирования и документирования

Дока — разговорный термин, обозначающий документацию к программному обеспечению, а также специалиста, занимающегося её созданием и поддержкой. В русскоязычном IT-сообществе слово является сокращением от «документация» и используется преимущественно в неформальном общении; в официальном контексте применяется термин «техническая документация».

Этимология и употребление

Слово «дока» сформировалось в русскоязычном профессиональном жаргоне программистов и системных администраторов в 1990-е — 2000-е годы. Оно образовано усечением слова «документация» по модели, типичной для компьютерного сленга (ср. «дев» от «разработчик», «релиз» от «релиз-менеджер»). В узком контексте под «докой» понимается текстовый материал, описывающий программный интерфейс, формат данных, протокол или порядок эксплуатации системы. В более широком — весь комплекс сопроводительных материалов к продукту.

Термин имеет два основных значения:

  • Документация — тексты, схемы, примеры кода и справочные материалы, сопровождающие программный продукт.
  • Документировщик — специалист, формализующий знания о системе и оформляющий их в виде, пригодном для использования разработчиками и пользователями.

Виды программной документации

Согласно стандарту IEEE 829 и его российскому аналогу ГОСТ 34.602-89, документация на программные средства подразделяется на несколько типов:

Тип документаНазначение
План тестированияОписывает стратегию и объём тестирования
Спецификация тест-кейсовПеречень и описание отдельных тестов
Отчёт о тестированииРезультаты выполнения тестов
Руководство пользователяИнструкции по использованию продукта
Руководство администратораНастройка и обслуживание системы
Техническое описаниеАрхитектура, API, форматы данных

В отечественной практике также применяется система стандартов ЕСКД (Единая система конструкторской документации) и ГОСТ на программную документацию (серия 34), регламентирующая состав и оформление документов на программные комплексы для государственных и оборонных заказов.

Способы документирования

Документация в коде (docstrings)

Строки документации (docstrings) — литеральные строки, размещаемые в начале модуля, класса или функции и доступные программным способом во время выполнения. Механизм поддерживается во многих языках: Python (PEP 257), Java (Javadoc), C# (XML-комментарии), Rust (rustdoc), Go (godoc). Инструменты вроде Sphinx (Python) или Doxygen (C/C++) генерируют из них статические сайты и справочники.

README и сопроводительные файлы

В формате репозиториев Git стандартом де-факто является файл README (обычно README.md в разметке Markdown), содержащий краткое описание проекта, инструкции по установке и примеры использования. Вместе с ним часто размещаются LICENSE (лицензия), CONTRIBUTING (правила участия), CHANGELOG (история изменений) и CODE_OF_CONDUCT.

API-документация

Описание программных интерфейсов традиционно оформляется в форматах OpenAPI (Swagger), RAML или API Blueprint. Спецификация OpenAPI, основанная на YAML или JSON, позволяет автоматически генерировать интерактивную документацию и клиентские библиотеки.

Внутренняя и пользовательская документация

Внутренняя документация (internal docs) предназначена для команды разработки: архитектурные решения (ADR — Architecture Decision Records), описания процессов, онбординг-материалы. Пользовательская документация ориентирована на конечного потребителя и включает руководства, справочные статьи, базы знаний.

Роль документации в разработке

Качественная документация снижает стоимость ввода новых сотрудников в проект, упрощает сопровождение и повышает надёжность интеграций. Согласно исследованиям в области программной инженерии, недостаток документации — одна из основных причин «вырождения» легаси-систем, когда поведение программы становится непонятным даже её авторам.

В agile-разработке документация традиционно считается второстепенной по сравнению с работающим кодом, однако практики DevOps и «documentation as code» (ведение документации в системе контроля версий наравне с кодом) вернули ей значение. Инструменты вроде Docusaurus, MkDocs, Jekyll и GitBook позволяют хранить и версионировать документацию совместно с исходным кодом.

Специальность «документировщик»

В крупных технологических компаниях роль технического писателя (technical writer) выделена в отдельную специальность. В России и СНГ такие специалисты работают в IT-компаниях, телекоммуникациях и на производстве, создавая руководства, API-документацию и справочные материалы. Смежной областью является UX-писание (UX writing) — создание текстов для интерфейсов: подсказок, сообщений об ошибках, онбординг-текстов.

В open source проектах документирование традиционно возлагается на самих разработчиков, что нередко приводит к её дефициту. Для стимулирования участия в документировании существуют специальные инициативы, например Hacktoberfest с отдельными метками для задач по документации.

Примечания

Термин «дока» не имеет закреплённого значения в формальных стандартах и используется преимущественно в устной и неформальной письменной речи инженерного сообщества.

Источники

  • IEEE Std 829-2008. Standard for Software and System Test Documentation
  • ГОСТ 34.602-89. Информационные технологии. Автоматизированные системы. Состав и порядок документации при создании автоматизированных систем
  • PEP 257 — Docstring Conventions (Python Software Foundation)
  • OpenAPI Specification 3.1.0
  • Гибсон Д., Свэнсон Дж. «Документирование программного обеспечения» (The Documentation of Software)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru