Да. Нелегко девелопить небольшой проект. Так и тянутся руки применять совершенно ненужные фичи чтобы поиграться с ними. Вот такова и история Graphviz в моей жизни. Так или иначе, о нем есть что рассказать.
Использовать Graphviz я решил по причине сильного нежелания генерить картинки диаграмм классов в какой-нить UML тулзе и потом вставлять эту картинку в вики проекта. Не хотелось при каждом изменении заново открывать диаграмму в тулзе, заново генерить картинку, заново ее вставлять в вики. Мне показалось, что данная последовательность действий - это, как говорят, overkill. Ведь я всего лишь хочу отобразить отношения между сущностями (оххохо). И для этого мне совершенно неважно как они будут расположены относительно друг друга. В случае с UML тулзой я решаю и эту ненужную задачу (конечно для красивых презентаций это задача нужна, но не в случае с вики). Примерно так же думали и разработчики Graphviz.
Для моей задачи я использовал не весь Graphviz, а только его подмодуль - dot.
Полезной оказалась статья http://www.ffnn.nl/pages/articles/media/uml-diagrams-using-graphviz-dot.php показывающая примеры использования DOT language для рисования диаграммы классов. В статье не показаны примеры различных типов стрелок (вы же помните эти глупые стрелки агрегации и композиции!), для этого юзаем параметр arrowhead.
Следует также помнить что для включения DOT маркапа в вики трака нужно поставить плагин, а в самой вики писать
{{{
#!graphviz
здесь ваш DOT-код
}}}
Вот как я стильно заюзал DOT для своей диаграмки
{{{
#!graphviz
digraph G {
node [
shape = "record"
]
Report->Message [arrowhead = diamond ]
FieldValue->Report [arrowhead = odiamond]
Field->ReportType [arrowhead = odiamond]
Field->FieldValue [arrowhead = diamond]
}
}}}
Использовать Graphviz я решил по причине сильного нежелания генерить картинки диаграмм классов в какой-нить UML тулзе и потом вставлять эту картинку в вики проекта. Не хотелось при каждом изменении заново открывать диаграмму в тулзе, заново генерить картинку, заново ее вставлять в вики. Мне показалось, что данная последовательность действий - это, как говорят, overkill. Ведь я всего лишь хочу отобразить отношения между сущностями (оххохо). И для этого мне совершенно неважно как они будут расположены относительно друг друга. В случае с UML тулзой я решаю и эту ненужную задачу (конечно для красивых презентаций это задача нужна, но не в случае с вики). Примерно так же думали и разработчики Graphviz.
Для моей задачи я использовал не весь Graphviz, а только его подмодуль - dot.
Полезной оказалась статья http://www.ffnn.nl/pages/articles/media/uml-diagrams-using-graphviz-dot.php показывающая примеры использования DOT language для рисования диаграммы классов. В статье не показаны примеры различных типов стрелок (вы же помните эти глупые стрелки агрегации и композиции!), для этого юзаем параметр arrowhead.
Следует также помнить что для включения DOT маркапа в вики трака нужно поставить плагин, а в самой вики писать
{{{
#!graphviz
здесь ваш DOT-код
}}}
Вот как я стильно заюзал DOT для своей диаграмки
{{{
#!graphviz
digraph G {
node [
shape = "record"
]
Report->Message [arrowhead = diamond ]
FieldValue->Report [arrowhead = odiamond]
Field->ReportType [arrowhead = odiamond]
Field->FieldValue [arrowhead = diamond]
}
}}}
Комментариев нет:
Отправить комментарий