[docs] Re: Literate programming for Makefiles
Vitaly Ostanin
vyt на vzljot.ru
Вт Ноя 4 16:36:26 MSK 2003
On Tue, 4 Nov 2003 15:59:55 +0300
"Oleg A. Paraschenko" <olpa на xmlhack.ru> wrote:
> Привет!
>
> Идея, конечно, во всём этом есть, но я бы посоветовал
> отказаться от "описательного программирования" для Makefiles.
>
> --
>
> При разработке ПО, кроме основного процесса, есть
> поддерживающие процессы (разработка ПО vs использование CVS,
> написание документации vs использование CMS для неё и т.д.).
> Я обычно стараюсь придерживаться следующего подхода. Основная
> ветка должна быть вылизана, всё, что мешает -- должно быть
> уничтожено, кривости -- переделаны. Но любые попытки доводить
> до блеска поддерживающие процессы должны пресекаться.
> Работает -- и ладно. Такая своеобразная "бритва Оккама" для
> проектов.
До блеска ещё далеко, и он не самоцель. Цель litprog -
поддерживаемость кода и док в актуальном состоянии. Это важно для
любых процессов, в том числе и вспомогательных.
> В данном случае, основной процесс -- это написание
> документации. Написание make-файлов -- поддерживающий процесс
> и должен быть сведён к минимуму. Описательное
> программирование (ОП) будет поддерживающим процессом
> поддерживающего процесса. А учитывая, что ОП тоже надо
> довести до логического завершения, то намечается
> поддерживающий процесс поддерживающего процесса
> поддерживающего процесса. Это не дело.
ОП уже работает и серьёзно меняться не будет. Да, неплохо бы
доку по litprog, но её не будет - достаточно статей Уолша (и
Кнута, кстати) на эту тему и простых примеров разметки.
Я специально не выкладывал litprog в cvs до получения готовых
результатов.
Я понял аргумент про рекурсивный идеализм, но это не тот случай
:)
> --
>
> Какая документация нужна на make? Думаю, примерно такая:
>
> * для технического писателя (того, кто будет всё это
> использовать);* для разработчика make-файлов, высокоуровневая
> -- понять, что к чему;* для разработчика make-файлов,
> низкоуровневая -- детали.
>
> Вытаскивание Makefile, хотя бы и с комментариями, не является
> ни одним из этих типов.
Не понял.
> --
>
> Предположим, что некто хочет добавить что-то в Makefile, но не
> хочет разбираться в сущностях (literate programming). Сможет ли
> он сделать это? Может быть и да, но я бы забил.
Сможет, добавив это что-то в Makefile и прислав в рассылку
уведомление об этом. Если два тега нашего litprog - <alt:doc/> и
<alt:code/> - требуют осознания ;), я добавлю описание в
Makefile.litprog самостоятельно.
Кстати, подразумевается, что автор Makefile для DocBook имеет
представление о DocBook хотя бы в пределах <para/>.
> --
>
> А как настроить подстветку синтаксиса в моём любимом vim?
Научить :) Я ничего не знаю про vim - в emacs я переключаю режимы
редактирования - makefile-mode/nxml-mode.
Кстати, прототипы я делал так: писал Makefile, отлаживал, и
переносил в Makefile.litprog с описанием.
> --
>
> Тем не менее, идея правильная. Более того, у меня есть
> комментарии, которые я бы не прочь вставить как в сам
> make-файл, так и в документацию. Но, может быть, проще? В стиле
> javadoc?
Есть разные подходы в litprog (насколько я неправильно понял :)):
1.
Прямое использование источника litprog в качестве кода (javadoc).
2.
Прямое использование источника litprog в качестве док (DocBook
TDG).
3.
Предварительная обработка источника litprog и для кода, и для док
(то, что сейчас в ветке "make2" cvs docs).
Есть ещё вариант прямого использования litprog сразу и для док, и
для кода, но он годится только для XML-языков, из которых пока
есть только XSLT. И этот вариант не позволяет варьировать видом
документации, например, вставлять код в виде листингов.
Так вот, javadoc (TeX, LaTeX, html и т.п.) в качестве исходного
формата для разметки документации я обсуждать не буду.
А вот 1. был бы удобен, но не представляю его на практике.
> ...
> # non-doc comment
> ## <para>... comment for docs ...</para>
А как отсюда выдирать теги?
PS Прошу остальных участников docs@ тоже высказываться. Мы с
Олегом уже и лично общались :)
<skipped/>
--
Regards, Vyt
mailto: vyt на vzljot.ru
JID: vyt на vzljot.ru
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : /pipermail/docs/attachments/20031104/453b0aed/attachment.bin
Подробная информация о списке рассылки docs