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

Мы можем для каждой строки получить k -й элемент, поэтому мы можем выполнить отображение, например:

romMatrix :: [[a]] -> Int -> [a]
rowMatrix m k = map (!! k) m

Или для типа Matrix:

[111 ]

Итак, здесь мы создаем список элементов, каждый из которых является k -ым элементом соответствующего подсписка.

17
задан Marcin 19 November 2008 в 22:36
поделиться

9 ответов

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

21
ответ дан 30 November 2019 в 10:08
поделиться

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

10
ответ дан 30 November 2019 в 10:08
поделиться

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

6
ответ дан 30 November 2019 в 10:08
поделиться

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

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

Однако для UML я использую истинный инструмент UML ( Архитектор Предприятия ) вместо того, чтобы наполнить вокруг в Visio.

6
ответ дан 30 November 2019 в 10:08
поделиться

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

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

4
ответ дан 30 November 2019 в 10:08
поделиться

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

3
ответ дан 30 November 2019 в 10:08
поделиться

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

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

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

2
ответ дан 30 November 2019 в 10:08
поделиться

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

2
ответ дан 30 November 2019 в 10:08
поделиться

Если вы просто говорите о создании диаграмм наследования / сотрудничества, как это делает 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 при обновлении файла. Такой подход значительно упростил просмотр того, что происходит в дереве, и обнаружение ошибок в моей реализации данного алгоритма. Этот подход можно довольно легко адаптировать для различных типов структур данных, и, как правило, он намного быстрее и проще, чем создание пользовательского интерфейса только для визуализации структуры.

12
ответ дан 30 November 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: