Подтвердить что ты не робот

Graphviz для документации

Я заметил, что doxygen использует библиотеку graphviz для создания диаграмм. Вы когда-нибудь использовали graphviz для создания документации? Стоит ли изучать графику для целей документации вне сферы действия doxygen? Или мне лучше придерживаться стандартного пакета моделирования данных, такого как Visio?

Я понимаю его достоинства как графическую библиотеку, но для того, чтобы попытаться представить более сложный UML (или аналогичный), стоит ли его искать?

4b9b3361

Ответ 1

Graphviz - очень простой язык/формат для создания графиков. Если возможностей достаточно для вас, я бы порекомендовал (это так просто, что я бы оценил время, чтобы учиться не более 1 часа).

Ответ 2

Если вы просто говорите о создании диаграмм наследования/совместной работы, таких как Doxygen, стоит изучить IDE, которые сделают это для вас автоматически. Для обработки с нуля или ручной настройки я использую OmniGraffle (так как я нахожусь на Mac), который я очень рекомендую.

Однако GraphViz и DOT может быть очень удобен не только для документации, но и для отладки и понимания кода, особенно для структур данных. Обычно я не пишу DOT вручную, но автоматически созданный DOT может стоить минимальных усилий.

Одно из мест, которые я нашел, GraphViz чрезвычайно полезен для понимания и отладки алгоритмов дерева двоичного поиска. Я разрабатываю CHDataStructures.framework, среду с открытым исходным кодом Objective-C, которая включает в себя несколько разновидностей BST. Я применил два метода: -(NSString*)dotGraphString для родительского класса и -(NSString*)dotGraphStringForNode: для каждого дочернего класса. Примерно в 30-40 строк кода (большинство из них внизу CHAbstractBinarySearchTree.m) я добавил возможность итеративного прохождения двоичного дерева и создания его DOT-представления, включая информацию о балансировке, красящие или красные узлы и т.д.. (С небольшой осторожностью вы можете легко представлять нулевые узлы-дозор и отображать дерево в надлежащем порядке сортировки.)

В моем тестовом коде после каждой модификации дерева я вызвал - dotGraphString и сохранил результат в .dot файле, остановился там с точкой останова, а затем открыл этот файл с помощью GraphViz, который достаточно умен, чтобы повторно -принять график DOT при обновлении файла. Этот подход значительно облегчил понимание того, что происходило в дереве и пятнах ошибок при реализации данного алгоритма. Этот подход может быть легко адаптирован для различных типов структур данных и, как правило, намного быстрее и проще, чем создание пользовательского интерфейса только для визуализации структуры.

Ответ 3

Graphviz не даст вам графического интерфейса, такого как Visio. Тем не менее, он будет создавать хорошо выложенные графики. Я считаю это наиболее полезным, когда я автоматически генерирую графики через программу (как в случае с doxygen).

Ответ 4

Graphviz наиболее полезен для генерации графиков зависимостей (через точку) программным способом. Visitors использует его для визуализации посещений сайта; Hadoop/Cascading использует его для визуализации плана выполнения работ по сокращению карты.

Ответ 5

Я широко использую GraphViz для документации и часто рисую отношения или диаграммы архитектуры, используя GraphViz извне, а затем добавляю их на дополнительные страницы в моем коде Doxygen, используя @dot/@enddot. Я также недавно начал использовать @dotfile, который имеет двойное преимущество хранения больших точечных выражений из документов кода и позволяет мне продолжать просматривать их с помощью графического интерфейса GraphViz.

Другим большим преимуществом GraphViz является то, что простой текстовый формат очень хорошо работает с контролем версий. Вы можете видеть изменения в диаграммах в вашем git diff, что было бы невозможно в любом формате бинарной документации. Поскольку я использовал его более чем на протяжении многих лет, это становится для меня более важной особенностью.

Однако для UML я использую настоящий инструмент UML (Enterprise Architect), а не набивка в Visio.

Ответ 6

Да, Graphviz легко учится и прост в использовании из программ.

Также посмотрите yEd, что является хорошим инструментом для работы с графиками. В отличие от Visio, он будет загружать и сохранять различные форматы, которые легко редактировать вручную или программировать. Файл авто-макета тоже очень приятный.

Ответ 7

Я иногда использовал его для иллюстрации государственных машин. graphviz идеально подходит для этого.

Ответ 8

Мы используем graphviz для автоматического создания диаграмм объектов в качестве обратной связи нашего инструмента проверки UML. Мы очень довольны результатами, поскольку нам удается предоставить графический результат, не беспокоясь о макете.

Ответ 9

Я много раз пробовал с Graphviz, но нашел, что это довольно ограничивает.

То, что я нашел лучше всего для ручных текстовых диаграмм, Tikz Я использовал его для FSM

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

Ответ 10

Соглашаться с консенсусом здесь; Я получаю много пользы от Graphviz. Это действительно полезно для создания простых, а не простых диаграмм. Разработчики программного обеспечения склонны привлекать графики не только в исходном коде, но и в других местах.

Например, прямо сейчас в другом окне браузера, у меня есть стратегия разбиения на группы и объединения, проиллюстрированная с использованием диаграммы graphviz (отображается с помощью плагина слияния BTW).

Graphviz также подходит для UML. См. этот учебник; это хорошее введение в Graphviz.