[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