Документування мови програмування: Довідковий посібник


12

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

Під час написання довідкового посібника з мови програмування, який найкращий спосіб структурувати його для максимальної зручності використання для тих, хто не має мови?

Які ключові аспекти для кожного задокументованого ключового слова?

  • Синтаксис
  • Опис
  • Аргументи - за наявності
  • Повернені значення - якщо застосовується
  • Приклад використання?
  • Яких-небудь інших мені не вистачає?

Чи повинні такі документи (як стратегії блокування, деталі, пов'язані з роботою) також задокументовані в цьому посібнику чи це окремий документ?


Це для зовнішнього споживання. Ми вже маємо повний набір документів (див. Http://www.rocketsoftware.com/u2/resources/technical-resources ). Розробка того, що нам слід робити по-різному - я вже маю свої ідеї, але, як завжди, намагаюся не покладатися лише на свою думку.

Аудиторія: Технічні розробники, які використовують нашу базу даних та інструменти для створення програмного забезпечення у багатьох галузях.


Навіщо вам потрібно документувати мову? Це езотерична чи на замовлення мова? У нього вже немає документації? А якщо ні, то чому ви обрали її в першу чергу?
янніс

@YannisRizos - Я думаю, ви можете припустити, що це спеціальна мова сценаріїв / макросів, не те, що вони мають намір документувати C ++. Взагалі документи для такої мови є джерелом аналізатора - оскільки реалізатор мови часто є головним користувачем
Мартін Бекетт

2
@DanMcGrath Ну, так, знання аудиторії та рівень / обсяг існуючої документації впливатиме на те, як я напишу довідковий посібник. Чи буде це лише для внутрішнього використання?
Янніс

1
@Telastyn - Так, це публічно. У нас є набагато більше, ніж просто довідкові посібники, але саме це питання стосувалося
Dan McGrath

1
Погляньте на документи Луа, щоб отримати чудовий приклад добре написаного та зосередженого довідкового посібника. Представити мову - це робота окремої книги «Програмування в Луї». Розподіл відповідальності працює добре, принаймні для мене.
ямад

Відповіді:


16

Організуйте документацію відповідно до потреб цільової аудиторії.

У вашому випадку первинна аудиторія - це, мабуть, розробники програмного забезпечення. Розглянемо тут частини, які стосуються різних "під аудиторій" цього:

  1. Привіт Світ.
    Ті, хто бажає швидко отримати смак, просто створити та запустити зразок програми, щоб побачити, як це виглядає.
    Подумайте про аудиторію, як та, до якої звернулося MySQL "Правило 15 хвилин" :

    ... користувач зможе запустити MySQL і запустити його через 15 хвилин після закінчення завантаження.

  2. Основи.
    Для хлопців, які бажають швидко засвоїти речі, необхідні, щоб почати виробляти робоче програмне забезпечення.
  3. Розширені теми.
    Для розробників, які вже добре знайомі та практикують основи, зацікавлені знати, що є за її межами. Основні теми, які не були висвітлені в Основах .
  4. Посібник зі стилів / Рекомендовані практики.
    Суб’єктивні поради та рекомендації для тих, хто цікавиться способом, як ти рекомендуєш робити справи.
    Питання не вказує, чи може це мати значну аудиторію у вашій справі, тому можливим є врахування того, щоб включити його як частину / додаток до розширених тем або навіть повністю залишити його.
  5. Примхи.
    Неясні теми, поза мейнстрімом, які можуть зацікавити досить обмежену частину вашої аудиторії. Наприклад, якщо у вас є застаріла лінія, або такі речі, як оновлення / міграція / сумісність зі спадщиною - поставте її тут. Якщо в певній "екзотичній" середовищі є деякі побічні ефекти для деяких функцій, це стосується цієї частини.
Ваша вторинна аудиторія - це керівники посібника. Ці хлопці можуть змусити або зламати те, як все працює для вашої основної аудиторії, тому вам краще подбати про їхні потреби та проблеми.

Що робити, якщо щось у посібнику сумнівне / неоднозначне? Що робити, якщо виявиться, що ретельне пояснення конкретних понять зробить цей посібник занадто важким для читання? Що робити, якщо виявиться, що конкретна версія посібника має помилки?

Дві речі, які слід врахувати для обслуговуючого персоналу, це:

  1. Технічна / формальна специфікація.
    Щоразу, коли в посібнику є сумнівна / неоднозначна / важка для пояснення тема, читача можуть бути направлені до конкретного пункту в специфікації для чіткого і чіткого «офіційного» твердження з цього приводу. Точний і повний (і, швидше за все, нудний) опис синтаксису мови краще проходитиме туди.
    Першочергові міркування щодо специфікації є технічна точність та повнота, навіть якщо вони виходять за рахунок читабельності.
  2. Інтернет-добавка.
    Просто зарезервуйте якусь URL-адресу та покладіть її на початку кожного документа, який ви опублікуєте, щоб хлопці цікавились, що чорт, який вони щойно прочитали, змогли зайти туди (замість того, щоб домагатися технічного обслуговування керівників) та знайти помилку.

    Errata> Основи> Випуск 2.2> Друкарська помилка на сторінці 28, друге речення починається з удачі , замість цього читайте блокування .

Такі поняття, як стратегії блокування, деталі, що стосуються продуктивності, повинні бути включені (можливо частково) там, де, як ви очікуєте, потрібна цільовій аудиторії.

Наприклад, керівники технічного обслуговування, очевидно, зацікавлені в повному, точному описі одночасності та фіксації у формальній специфікації - розмістіть її там. Читачів фундаментальних чи додаткових тем може бути зацікавлений огляд / вступ / посібник, витягнутий із специфікації та з урахуванням їх потреб тощо.


Це може бути корисно організувати порівняльне вивчення довідкової документації, що надається для інших мов, як ваша. Мета цього дослідження - використання досвіду, набутого тими, хто робив це раніше, і навчитися уникати помилок, які вони допустили.

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


@DanMcGrath ще одна порада для процесу розробки документа: розглянути підхід push-track-backout-повторення . 1) підштовхуйте технічних авторів до більш жорсткого процесу 2) відстежуйте якість док-станції під час натискання 3) якщо знижується якість, резервне копіювання на "м'якший" процес 4) через деякий час - після звикання до поточного рівня - повторіть натиск на суворіший. І так далі, і так далі, поки ви не на 100%. :)
гнат

1
У мене є одна карикатура. Те, що ви описали, - це підручник або набір навчальних посібників. Навчальний посібник не є довідковим посібником. У навчальному посібнику описано, як працює мова, в той час як довідник каталогізує елементи мови. І підручник, і довідник є важливими, але вони доповнюють один одного.
Гілберт Ле Блан

Питання @GilbertLeBlanc стосувалося "довідкового посібника", яке я (і я думаю, що Вікіпедія ) вважаю досить широким, щоб висвітлити речі у своїй відповіді
gnat

5

Перше, що вам потрібно зробити - це оцінити аудиторію. Чи є ваші аудиторії хакерами ядра Linux або вони розробники апаратних засобів, які використовують програмні засоби для роботи, але самі не зацікавлені в програмному забезпеченні та не мають досвіду роботи з CS. Електротехніки, ймовірно, не будуть повністю зрозумілі в різниці між аргументами const і non-const, вказівниками на об'єкти проти посилань і т. Д. Якщо ваші примітиви перевантажили імена, то вам краще пояснити цю концепцію на відповідному рівні для вашої аудиторії, що може бути нічого, якщо вони програмісти на C ++.

Друге, що вам потрібно оцінити, - це деталізація примітивів мови. Чим дрібніша деталізація, тим більше вам потрібно буде наводити приклади використання поблизу специфікацій синтаксису кожного примітиву. Тобто, якщо у вас є примітив низького рівня, який створює деякий контекст, і вам потрібно оперувати ним трьома іншими примітивами низького рівня, перш ніж ви зможете зробити щось корисне, тоді вам краще мати повний приклад якоїсь корисної функції близько- у посібнику. Дивіться онлайн- документацію на Opensl для відмінного зустрічного прикладу майже непридатної документації.

Обов’язково додайте пояснення будь-яких побічних ефектів ваших функцій.

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

Традиційно письменники технологій розрізняють довідкові посібники та посібники користувача . Довідковий посібник зазвичай включає технічні характеристики синтаксису, зрозуміле визначення функцій або примітивів, обговорення готчі, продуктивності та побічних ефектів, а також короткий приклад використання. Посібник користувача включає більш розширені приклади використання та обговорення більш широких інженерних проблем. "Мова програмування" Кернігана та Річі - чудовий зустрічний приклад цієї конвенції, але такий підхід працює лише тоді, коли мова, яку ви документуєте, відносно проста.

Автор був менеджером відділу інжинірингових послуг Центру розвитку Ready Systems Inc з 1987 по 1991 рік, відповідальний за управління командою з п'яти розробників технологій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.