![](/upload/iblock/856/Alyakskin.jpg)
Иван Алякскин
Документация в картинках
06.12.2016 2799
Другие статьи автора
Возможные способы реализации мобильных приложений
Джентльменский набор мобильного проекта
Исключаем фактор «так исторически сложилось» на Android/Mobile-проекте
Android Security
Android Legacy
Задорный ReactNative вносит летние краски в “кровавый enterprise”
Архитектура, рефакторинг, или Что действительно важно
Чек-лист для Knowledge Transfer
Dynamic Systems Development Method (DSDM)
Последние статьи в блоге
Скидка 50% на обучение!
PostgreSQL — один за всех? Как работать с нетипичными данными в реляционной системе
Миграция с Oracle на PostgreSQL: подводные камни и инструменты для перехода
Архитектор ПО: новый взгляд на обучение
Новый релиз сертификации для системных аналитиков
Эффективное взаимодействие с Apache Kafka: выбор метода и особенности
PL/SQL и PL/pgSQL: сходства, различия и особенности перехода с первого на второй
Что читать и смотреть начинающему Java-разработчику
Летняя распродажа курсов! Учитесь со скидкой 50%!
Популярные курсы по направлению Java
Я ленивый разработчик.
Я не люблю тратить время на длительную отладку.
Я не люблю выдумывать какие-то интеграционные хаки. Мне очень лень делать временные решения, ведь потом все-равно придется переделывать.
Я не люблю тратить время на то, чтобы объяснять разработчикам разных платформ архитектуру одной и той же бизнес-компоненты.
Я визуал, но я плохо рисую.
Мне больше нравится поглощать информацию с иллюстрациями, а не состоящую только из строгой выжимки текста. Мне не очень хорошо удается рисовать от руки, а ставить какие-либо сложные инструменты мне... лень.
Я ретроград и зануда.
Мне нравятся старые и проверенные временем инструменты. Я очень люблю точность и однозначность, потому что разбираться в неопределенности мне лень. А еще я очень люблю, когда изменения в документации можно достаточно просто отследить.
Таким образом, в производственном процессе под воздействием моих выше описанных особенностей я пришел к выводу, что лучше всего составлять документацию и распространять ее между разработчиками, проектными/продуктовыми управляющими и отделом качества в виде графических ресурсов.
Спасение.
Блуждая по интернету, в поисках решения моей проблемы мне на помощь пришел graphviz и dot.
С помощью языка dot можно с легкостью описывать диаграммы и схемы, которые будут отражать архитектуру одинаковых компонент для web, iOs и Android; и рендерить во все что угодно: png/svg/jpeg.
Для dot существует огромное количество плагинов: под IDE, веб-сервисы вроде Confluence – это значит, что визуализацию документа можно получать не только из комманд лайна, но и внутри нормальных приложений.
А еще dot очень хорошо подходит для описания конечных автоматов => снятия вопроса неопределенности и необходимости додумывать.
Ну и конечно же, так как dot – это язык – фиксация изменения в текстовом файле, содержащем описание компоненты с помощью любой системы версионного контроля будет реализовано автоматически.
То что можно делать делать с dot и graphviz – смотрите ниже.
![](http://www.luxoft-training.ru/upload/medialibrary/e0e/Alyakskin_06_12_2016.jpg)
А вот текстовое представление:
|
Данный подход мне очень часто помогал как в разработке, так и в вопросах проведения презентаций. С использованием данного инструмента мне удавалось достаточно быстро и просто представить диаграмму/блок-схему и также быстро внести изменения. Язык dot достаточно простой, его очень просто освоить.
Больше всего мне нравится то, что можно сконцентрироваться в первую очередь на содержании, а не на представлении – все графические элементы будут отрисованы и организованы автоматически – не будет необходимости в перераспределении блоков при внесении правок.
P.S.: я слукавил, я не люблю делать временные решения потому, что нет ничего более постоянного, чем временное. Надеюсь, что данный инструмент и подход поможет вам сэкономить время.
Расскажи друзьям:
Как не пропустить самое интересное?
Подписывайтесь на наш ежемесячный дайджест!