[О блоге]
[наверх]
[пред]
[2022-08-10 14:50:22+03:00]
[ab77889e998c6859c6dc193301d20b87dd79174c]
Темы: [doc]
Документация рядом с кодом у Альфа-Банка
https://habr.com/ru/company/alfa/blog/680556/
http://www.stargrave.org/InfoRules.html
В ivi мы начали вести документацию, которая в том числе
шла наружу для сторонних разработчиков, в reStructured Text формате, ибо
всё же код на Python был изначально полностью. Каждое изменение API
попадало в отдельный файлик с изменениями в новой версии. Во время
релиза (вроде) запускался скрипт который этот файлик переименовывал в
чётко заданную версию. Во время ревью надо было проверять что все
изменения отражены в документации. И она отдельно собиралась Jenkins
задачей.
У меня было предложение использовать git-notes для хранения кусочков
текста которые должны пойти в changelog, но, действительно, это
требовало большой аккуратности и толком то ничего не упрощало, кроме
того факта, что в репозитории, во время разработки между релизами, не
правился один и тот же changelog файл.
В da160c3c7b3f5393aa37f2d042f9b281264273de писал про мой выбор форматов
документации. Сейчас я reST не использую совсем. Из личных проектов
только PyDERASN с ним остался. Для всего применяю Texinfo с Info и HTML
генерированием. С docstringer.pl скриптом (de290eaa23dc9d16296162f0ff52ed00f506e786):
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/docstringer.pl
я собираю документацию из файлов исходного кода. Безусловно только redo
используется, типа:
doc/docstringer.log.do:
redo-ifchange *.texi docstringer.pl ../src/*.h
sed -n 's/^@verbatiminclude \(.*.plantuml.txt\)$/\1/p' *.texi |
xargs redo-ifchange
mkdir -p build
./docstringer.pl -v ../src . build
doc/xxx.info.do:
redo-ifchange ../conf/cmd/makeinfo ../conf/version docstringer.log
read MAKEINFO < ../conf/cmd/makeinfo
read VERSION < ../conf/version
cp -f *.txt build/
cd build
MAKEINFO_OPTS="$MAKEINFO_OPTS --set-customization-variable SECTION_NAME_IN_TITLE=1"
[...]
$MAKEINFO -D "VERSION $VERSION" $MAKEINFO_OPTS -o ../$3 index.texi
doc/default.plantuml.txt.do:
src=${1%.txt}
redo-ifchange $src ../conf/cmd/plantuml
read PLANTUML < ../conf/cmd/plantuml
$PLANTUML -tutxt -pipe < $src
doc/xxx.html.do:
rm -rf $1
MAKEINFO_OPTS="$MAKEINFO_OPTS --html"
[...]
MAKEINFO_OPTS="$MAKEINFO_OPTS" . xxx.info.do
Почти везде применяется хотя бы для одной-двух диаграмм PlantUML
(https://plantuml.com/). Недавно смотрел на его документацию и поразился
обилием вещей который он может рисовать. Но я почти только для sequence
диаграмм его использую. Искал более легковесные (не Java) альтернативы,
но уже много лет держу Java только и только ради одной этой программы,
ибо хороша.
[оставить комментарий]