Представление кода в печатном виде (Что обычно требуется?)

Обсуждение журнала LinuxFormat
(форум переехал, здесь только архив)
Аватара пользователя
Evgueni
Сообщения: 599
ОС: Ubuntu ☹

Представление кода в печатном виде

Сообщение Evgueni »

Сейчас обдумываю что следует включить в серию статей по LaTeX. Предварительно решил, что одна из статей будет посвящена оформлению кода. Хотелось бы понять что для представления кода нужно.

Мне лично достаточно просто напечатать код с минимальными "украшательствами", как то подпись, выделение ключевых слов, автоматическая нумерация строк.

Надо ли описывать как рисовать блок схемы программ? Или это излишне? Если надо, то на сколько подробно это описывать? Я как-то не сталкивался с такой необходимостью.

Ну и вообще что для написания технической документации вообще нужно?

С уважением Евгений
Спасибо сказали:
Аватара пользователя
sarutobi
Сообщения: 676
Статус: Добрость и скромнота
ОС: Debian 5, FreeBSD 6.2/8.0

Re: Представление кода в печатном виде

Сообщение sarutobi »

А что Вы понимаете под технической документацией?
Обычно исходный код в ней является лишь малой частью, весь его показывать смысла не имеет.
Имеет смысл показать основные диаграммы в виде UML представлений, краткое описание модулей и функциональных элементов, кросс-линки на зависящие/зависимые элементы (диаграмма наследования для ООП). Руководство пользователя, программиста, ман - все это тоже части ТД. Не знаю всех возможностей TeX/LaTeX, поэтому не могу сказать что три последних элемента тоже требуется описать :)
Вообще есть проект Doxygen который облегчает написание ТД. Он умеет генерить документацию в LaTeX (и еще десяток других форматов) из определенным образом оформленного исходного кода.
Все написанное ИМХО.
Fire and water, earth and sky - mistery surrounds us, legends never die!
Спасибо сказали:
Аватара пользователя
Evgueni
Сообщения: 599
ОС: Ubuntu ☹

Re: Представление кода в печатном виде

Сообщение Evgueni »

sarutobi писал(а):
05.11.2006 13:52
А что Вы понимаете под технической документацией?
А что Вам надо под этим словом понимать? :)

sarutobi писал(а):
05.11.2006 13:52
Обычно исходный код в ней является лишь малой частью, весь его показывать смысла не имеет.
Естественно, весь код какой-то конкретной программы смысла, наверное, показывать не имеет, но, например, примеры использования, алгоритмы и тому подобное, вполне осмысленный текст.

С другой стороны тот же Кнут проповедовал Literate Programming - там как раз именно код и печатается. У Кнута даже книга была выпущена, которая состояла целиком из распечатки - TeX the Program называлась - до сих пор продаётся.

sarutobi писал(а):
05.11.2006 13:52
Имеет смысл показать основные диаграммы в виде UML представлений, краткое описание модулей и функциональных элементов, кросс-линки на зависящие/зависимые элементы (диаграмма наследования для ООП).
Ну это руками вряд-ли есть смысл набирать. Это должно автоматически генериться. IMHO для пользователя это не самая удобная документация - но в любом случае гляну.

sarutobi писал(а):
05.11.2006 13:52
Руководство пользователя, программиста, ман - все это тоже части ТД. Не знаю всех возможностей TeX/LaTeX, поэтому не могу сказать что три последних элемента тоже требуется описать :)
Понятно. Подумаю над этим тоже.

sarutobi писал(а):
05.11.2006 13:52
Вообще есть проект Doxygen который облегчает написание ТД. Он умеет генерить документацию в LaTeX (и еще десяток других форматов) из определенным образом оформленного исходного кода.
Нуууу подобных конверторов довольно много, но IMHO, для написания книг они не годятся. Уж лучше сразу какое-нибудь Literate Programming :)
Спасибо сказали:
Egan
Сообщения: 247

Re: Представление кода в печатном виде

Сообщение Egan »

Чем больше будет написано, тем лучше, для всего найдётся свой читатель.
Спасибо сказали:
Аватара пользователя
ArtSh
Сообщения: 433
ОС: Gentoo

Re: Представление кода в печатном виде

Сообщение ArtSh »

Для оформления кода вобще, очень желательно выделение конструкций языка программирования, кроме того отдельное выделение того что было введено опльзователем и что вывела программа. Часто бывает необходимо вставить скриншот, или рисунок поясняющий работу. Если это GUI то необходимо выделять и другие действия пользователя (например открыть пункт меню, нажать сочетание клавиш, сделать мышью какое-либо движение и т.д.)
Поставь букву "Ё" на место еЁ!
Спасибо сказали:
Аватара пользователя
Evgueni
Сообщения: 599
ОС: Ubuntu ☹

Re: Представление кода в печатном виде

Сообщение Evgueni »

ArtSh писал(а):
05.11.2006 20:54
Для оформления кода вобще, очень желательно выделение конструкций языка программирования, кроме того отдельное выделение того что было введено опльзователем и что вывела программа. Часто бывает необходимо вставить скриншот, или рисунок поясняющий работу. Если это GUI то необходимо выделять и другие действия пользователя (например открыть пункт меню, нажать сочетание клавиш, сделать мышью какое-либо движение и т.д.)
Это-то понятно. Первым занимается пакет listings - много языков и диалектов поддерживает, а со скриншортами работать надо так же, как и с другими картинками, правда необходимо учитывать что это растр. Создание самих картинок, естественно, выносится за рамки процесса вёрстки.
Спасибо сказали:
vorchun
Сообщения: 73
ОС: Linux (сейчас Mandriva)

Re: Представление кода в печатном виде

Сообщение vorchun »

Пытаюсь сформулировать, что требовалось мне (при описании программ для "продвинутых" пользователей):
  • Диаграммы переходов между режимами работы программы.
  • Отдельные стили для а) элементов управления программой (каманды меню, экранные кнопки, клавиши клавиатуры), б) пользовательского ввода и в) вывода программы.
  • Псевдоязык для описания алгоритма работы программы (похоже на блок-схему алгоритма, но почти в "чисто текстовом" виде).
Учитывая мою специфику работы, больше мне ничего не требовалось, но, скорее всего, это именно моя специфика работы.
Спасибо сказали:
Аватара пользователя
Evgueni
Сообщения: 599
ОС: Ubuntu ☹

Re: Представление кода в печатном виде

Сообщение Evgueni »

vorchun писал(а):
07.11.2006 13:09
Диаграммы переходов между режимами работы программы.
Где-нибудь можно посмотреть на пример? Если я правильно понял, то такая возможность есть.

vorchun писал(а):
07.11.2006 13:09
Отдельные стили для а) элементов управления программой (каманды меню, экранные кнопки, клавиши клавиатуры), б) пользовательского ввода и в) вывода программы.
Названия клавиш типа Enter в рамке существуют. Вывод программы можно оформить как окружение verbatim (текст без форматирования). А как оформить команды меню и экранные кнопки? Там же необходимо, чтобы эти элементы совпадали с программой.

vorchun писал(а):
07.11.2006 13:09
Псевдоязык для описания алгоритма работы программы (похоже на блок-схему алгоритма, но почти в "чисто текстовом" виде).
Таких пакетов я обнаружил свыше десятка :) - собственно говоря, TeX создавался автором для описания алгоритмов в книги Искусство программирования, так что с наличием решений проблем нет. Есть проблема какое решение выбрать :)

С уважением Евгений
Спасибо сказали:
Аватара пользователя
Георгий
Сообщения: 512
ОС: W7, Debian,ubuntu 9.10,UNR

Re: Представление кода в печатном виде

Сообщение Георгий »

Не забудьте указать как транслировать исходники в dvi-файлы. А то я прочитал кучу документации,а этого не увидел. Пришлось спрашивать.Объяснили.
Спасибо сказали:
Аватара пользователя
Evgueni
Сообщения: 599
ОС: Ubuntu ☹

Re: Представление кода в печатном виде

Сообщение Evgueni »

Георгий писал(а):
07.11.2006 22:03
Не забудьте указать как транслировать исходники в dvi-файлы. А то я прочитал кучу документации,а этого не увидел. Пришлось спрашивать.Объяснили.
? В смысле? Исходники latex или имеются в виду исходники программ? Почему в именно в dvi?
Спасибо сказали:
vorchun
Сообщения: 73
ОС: Linux (сейчас Mandriva)

Re: Представление кода в печатном виде

Сообщение vorchun »

Evgueni писал(а):
07.11.2006 14:24
vorchun писал(а):
07.11.2006 13:09

Диаграммы переходов между режимами работы программы.
Где-нибудь можно посмотреть на пример? Если я правильно понял, то такая возможность есть.


С использованием внешних пакетов, да, возможность есть. По сути сильно походит на блок-схему алгоритма.

Evgueni писал(а):
07.11.2006 14:24
vorchun писал(а):
07.11.2006 13:09

Отдельные стили для а) элементов управления программой (каманды меню, экранные кнопки, клавиши клавиатуры), б) пользовательского ввода и в) вывода программы.

Названия клавиш типа Enter в рамке существуют. Вывод программы можно оформить как окружение verbatim (текст без форматирования). А как оформить команды меню и экранные кнопки? Там же необходимо, чтобы эти элементы совпадали с программой.


Не обязательно. Например, я делал примерно так:

Код: Выделить всё

% Элементы ЭКГ должны набираться наклонным  шрифтом
\newcommand{\ECG}[1]{\textsl{#1}}

Ну и дальше понятно как. Имя команды пусть не смущает, так было удобнее.

Evgueni писал(а):
07.11.2006 14:24
vorchun писал(а):
07.11.2006 13:09

Псевдоязык для описания алгоритма работы программы (похоже на блок-схему алгоритма, но почти в "чисто текстовом" виде).
Таких пакетов я обнаружил свыше десятка :) - собственно говоря, TeX создавался автором для описания алгоритмов в книги Искусство программирования, так что с наличием решений проблем нет. Есть проблема какое решение выбрать :)


Это точно!
Спасибо сказали:
Аватара пользователя
Георгий
Сообщения: 512
ОС: W7, Debian,ubuntu 9.10,UNR

Re: Представление кода в печатном виде

Сообщение Георгий »

Evgueni писал(а):
08.11.2006 08:53
? В смысле? Исходники latex или имеются в виду исходники программ? Почему в именно в dvi?

Ну я сделал документ для TeX. Потом делаю latex document.tex и получаю файл пригодный для просмотра. Просто DVI это все,что я знаю из форматов.
Спасибо сказали:
Аватара пользователя
Evgueni
Сообщения: 599
ОС: Ubuntu ☹

Re: Представление кода в печатном виде

Сообщение Evgueni »

Георгий писал(а):
08.11.2006 14:48
Evgueni писал(а):
08.11.2006 08:53

? В смысле? Исходники latex или имеются в виду исходники программ? Почему в именно в dvi?

Ну я сделал документ для TeX. Потом делаю latex document.tex и получаю файл пригодный для просмотра. Просто DVI это все,что я знаю из форматов.
Ааа, ну это описано в первой части, которая была в сентябрьском номере. Просто обычно на выходе используют PostScript или pdf, да и сам tex-файл можно в текстовом редакторе посмотреть ;)
Спасибо сказали: