Сначала графдизайн создать, потом код написать



Книга Сначала графдизайн создать, потом код написать

Как-то в одной статье я обосновал свой выбор Emacs в качестве основного текстового редактора. И один из полученных комментариев сподвиг меня написать эту статью. Его автор говорил о том, что суть программирования не сводится только к тексту и синтаксису кода  —  оно должно быть концептуальным. А такие текстовые редакторы, как Emacs и Vim, тормозят развитие разработчиков в этом направлении. 


Мне еще предстоит изучить систему визуального программирования (Smalltalk), рекомендованную автором комментария. Но его точка зрения заставила поразмышлять на заданную тему. По правде говоря, я всегда интуитивно разбивал процесс разработки на 2 этапа.


  1. Разработка графического дизайна функциональности, подлежащей реализации, со всеми техническими деталями. 
  2. Написание кода функциональности в соответствии с представленным образом (графическим дизайном). 


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


Знакомство с pgf-umlsd


pgf-umlsd —  это пакет LaTeX для рисования UML-диаграмм последовательности.


Я обнаружил, что благодаря вышеупомянутому пакету LaTeX также прекрасно подходит для создания дизайна продукта и технического описания функциональности. Отсутствие опыта работы с LaTeX  —  не повод для беспокойства. Данное руководство восполнит этот пробел необходимыми базовыми знаниями и поможет создать вашу первую диаграмму последовательности с помощью pgf-umlsd.


Рассмотрим пример подобной диаграммы: 


Источник.

Как видим, диаграмма выглядит отлично, но при этом обладает вложенной и довольно сложной структурой. Однако, как только вы начнете проектировать реализацию функциональности на собственной диаграмме последовательности, она покажется вам самой понятной визуализацией, которую вы когда-либо создавали. 


Я не могу похвастаться глубокими знаниями о лучших практиках с диаграммами последовательности, но узнать о них можно из материалов Википедии и сопутствующих источников.


Диаграммы последовательности обычно применяются для особо точного наглядного представления задач между пользователями и сервером. Они также пригодны для разработки более высокоуровневых процессов и задач. 


Более того, LaTeX предлагает намного более быстрый способ создания диаграмм по сравнению с перемещением мышки и перетаскиванием компонентов. 


Применение пакета LaTeX


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


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


Во-вторых, считаю нужным объяснить ряд базовых понятий редактирования для тех, кто ранее не работал с LaTeX. Его можно рассматривать как своего рода язык разметки (хотя это и не он). Вы можете импортировать пакеты (по примеру pgf-umlsd, который мы приведем далее). Перед встраиваниями ставится обратная косая черта. 


Например, для добавления вертикального интервала в 200 пикселей выполняем \vspace{200px}. В число других важных понятий входят \begin и \end. Их можно рассматривать как начало элемента <div> в HTML с предопределенными классами. Так, создать маркированный список можно следующим образом: 


\begin{itemize}
\item first item
\item second item
\end{itemize}

Пакет pgf-umlsd в действии 


Сначала открываем редактор LaTeX, создаем новый документ и задействуем пакет pgf-umlsd, как показано ниже: 


\documentclass{article}
\usepackage{pgf-umlsd}
\usepackage{graphicx}
\usetikzlibrary{positioning,fit,calc}
\tikzset{block/.style={draw, thick, text width=3cm, minimum height=1.5cm, align=center},line/.style={-latex}}

\begin{document}
Hello World!
\end{document}

В результате в редакторе получаем документ Hello World!.


Рассмотрим принцип работы данного пакета, он довольно прост. 


  1. Начинаем диаграмму последовательности командой \begin{sequencediagram} и заканчиваем  —  \end{sequencediagram}.
  2. Добавляем новых агентов, присваивая каждому из них переменную и значение. Например, поток действий с server в качестве переменной и Server в качестве значения создается так:
    ewthread{server}{Server}
    . При желании можно использовать цвета:
    ewthread[red]{server}{Server}
    . Кроме того, доступна возможность создания экземпляра:
    ewinst{database}{Database}
  3. Начинаем вызовы между добавленными агентами. Основной синтаксис вызова следующий: 
    \begin{call}{client}{payload}{server}{response}\end{call}.

Напрямую вставьте данный пример в пустой редактор LaTeX и получите базовую диаграмму последовательности: 


\documentclass{article}

\title{ Test sequence diagram }
\date{June 9, 2022
\author{Your name}

\usepackage{pgf-umlsd}
\usepackage{graphicx}
\usetikzlibrary{positioning,fit,calc}
\tikzset{block/.style={draw, thick, text width=3cm, minimum height=1.5cm, align=center},line/.style={-latex}}

\begin{document}

\maketitle

\begin{sequencediagram}

ewthread[blue]{client}{User}

ewthread[red]{server}{Server1}

ewinst{database}{Database}
\begin{call}{client}{request}{server}{resource}
\begin{call}{server}{query}{database}{raw}
\end{call}
\end{call}
\end{sequencediagram}
\end{document}

Примеры более сложных диаграмм представлены по ссылке


Еще два аргумента в пользу данного подхода


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



479   0  

Comments

    Ничего не найдено.