Куди поставити кодову документацію?


13

Наразі я використовую дві системи для написання кодової документації (використовую C ++):

  • Документація про методи та членів класу додається поруч із кодом у форматі Doxygen. На сервері Doxygen запускається на джерелах, тому висновок можна побачити у веб-браузері
  • Сторінки огляду (що описують набір класів, структуру програми, приклад коду, ...) додаються у Wiki

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

Зараз мій колега пропонує поставити все в Doxygen, тому що ми можемо створити один великий довідковий файл із усім, що знаходиться в ньому (використовуючи HTML WorkShop Microsoft HTML або Qt Assistant). Мене хвилює те, що редагувати документацію в стилі Doxygen набагато складніше (порівняно з Wiki), особливо коли потрібно додати таблиці, зображення, ... (чи є інструмент "попереднього перегляду" для Doxygen, який не вимагає від вас створення код, перш ніж ви зможете побачити результат?)

Що використовують великі проекти з відкритим кодом (або із закритим кодом) для написання кодової документації? Чи вони також розділяють це між стилем Doxygen та Wiki? Або вони використовують іншу систему?

Який найбільш підходящий спосіб викрити документацію? Через веб-сервер / браузер або великий файл довідки (кілька 100 МБ)?

Який підхід ви використовуєте під час написання кодової документації?


Проекти з відкритим кодом Python, як правило, ставлять свою кодову документацію на readthedocs .
user16764

Відповіді:


9

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

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

Щодо інших проектів: я думаю, що такий інструмент, як doxygen, - це насамперед бібліотечна документація. Якщо ви не сторонній постачальник бібліотеки, і кожен, хто користується вашими бібліотеками, має повний доступ до вихідного коду, тоді необхідність у такому інструменті, як doxygen, сумнівна. Наприклад, у нашій команді у нас майже немає зовнішніх документів поза кодом, за винятком документів кінцевого користувача та документів наших моделей баз даних. Нашими основними інструментами для такого роду документації є docbook і fop , що дає нам задовольняючі результати.


4

Спершу скористайтеся документацією з коду. Додайте Wiki та інші методи, якщо це можливо

Я знаю, що це буде важко зберегти.

Практична відповідь:

На практиці перше, що роблять розробники, це перевірка коду.

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

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

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

І, найкраще, що я можу зробити, це додати кілька коментарів до коду.

Щасти


3

Деякі використовують інші системи - подивіться, наприклад, сфінкс Python , у них є система документообігу «все в одному», яка будує все (вона також працює для C / C ++)

Я завжди думаю, що документація є окремою від коду, доксиген - це чудово, але це для огляду API, а не для "документації". Для цього вікі чудово, але я вважаю за краще використовувати ASCIIDOC і зберігати результати цього в керуванні джерелами разом з кодом, головним чином тому, що я можу генерувати PDF-файли з нього для передачі іншим людям (наприклад, тестерам, клієнтам тощо)


Дякуємо, що згадали про ASCIIDOC. Поглянемо на це.
Патрік

2

Doxygen дозволяє створювати PDF, HTML, сторінки вікі, майже все, що ви можете придумати.

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


2

Оскільки версія 1.8.0 doxygen підтримує Markdown , який повинен зробити досвід написання статичних сторінок таким же зручним, як у системі Wiki.


1

Цільова аудиторія

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

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

Технічне обслуговування

Про те, де розмістити джерело цієї документації, буде залежати від вашої аудиторії та хто пише для вашої аудиторії.

  • Є лише будинок забудовників? Помістіть усе в коді. Це спонукає його до оновлення. Вам потрібно буде працювати над культурою, яка заохочує оновлення документації бути такою ж важливою, як і зміни коду.
  • Є будинок розробників та письменників документації? Розподіліть обов'язки. Використовуйте для розробників інструменти, орієнтовані на розробників, використовуйте інструменти для створення документації для розробників.

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

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

Інтегрування документації

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

Бізнес-аналітик цілком задоволений специфікаціями API, розробленими специфікаціями та сценаріями використання, які розміщуються в окремих документах або в окремих розділах веб-сайту.

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

Ваша справа

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

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

  • Інструменти джерельної документації (як doxygen) можуть створювати html, а вікі живе на веб-сервері. Це було б простою точкою інтеграції - просто обслуговувати вбудовану версію поряд із вікі та з'єднувати їх між собою.
  • Деякі продукти wiki дозволять вам запускати вікі безпосередньо з файлу, який ви можете зареєструвати в кодовій базі. Це дає простий інструмент wysiwyg, зберігаючи документацію в парі з кодом.
  • Також можуть бути розміщені інші формати, такі як pdf, але це зводиться до конкретних інструментів, які ви хочете використовувати. Можливо, має сенс скребти свою вікі у файли розмітки та подавати її через doxygen (або інші інструменти). Можливо, має сенс pdf-файл wiki та джерела окремо та використовувати інструмент злиття pdf.

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


0

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


0

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

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