<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@dddboy</title><author><name>@dddboy</name></author><id>https://teletype.in/atom/dddboy</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/dddboy?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@dddboy?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dddboy"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/dddboy?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-03T22:48:23.255Z</updated><entry><id>dddboy:FFzacQtWifV</id><link rel="alternate" type="text/html" href="https://teletype.in/@dddboy/FFzacQtWifV?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dddboy"></link><title>Эффективное погружение новичка в проект </title><published>2023-05-28T15:09:42.008Z</published><updated>2023-05-28T15:09:42.008Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/35/16/3516a17a-37a4-42f6-9644-aac0a3e779fe.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/0f/02/0f026df5-4f92-4ad4-861e-c32146f29805.png&quot;&gt;Когда вы решаете создать свой собственный продукт, вам понадобится ряд инструментов, которые помогут новичкам быстро погрузиться в идею вашего продукта и его техническую реализацию. Эти инструменты должны помочь новичкам понять:</summary><content type="html">
  &lt;p id=&quot;278J&quot;&gt;Когда вы решаете создать свой собственный продукт, вам понадобится ряд инструментов, которые помогут новичкам быстро погрузиться в идею вашего продукта и его техническую реализацию. Эти инструменты должны помочь новичкам понять:&lt;/p&gt;
  &lt;blockquote id=&quot;FEg5&quot;&gt;Как реализована архитектура вашего продукта?&lt;/blockquote&gt;
  &lt;blockquote id=&quot;6auL&quot;&gt;Как пользоваться UI-кой вашего продукта?&lt;/blockquote&gt;
  &lt;blockquote id=&quot;gjsB&quot;&gt;Какие бизнес-процессы реализуются в вашем продукте?&lt;/blockquote&gt;
  &lt;blockquote id=&quot;awIu&quot;&gt;Как запустить все компоненты продукта локально и начать с ним взаимодействовать через API?&lt;/blockquote&gt;
  &lt;blockquote id=&quot;lQAV&quot;&gt;Как бизнес-процессы используют архитектурные компоненты вашего продукта?&lt;/blockquote&gt;
  &lt;blockquote id=&quot;YPcY&quot;&gt;Как проверить, что новичок спустя определенное время работы понимает, как работает продукт?&lt;/blockquote&gt;
  &lt;blockquote id=&quot;X4rh&quot;&gt;Как через эту архитектуру протекают бизнес-процессы вашего продукта?&lt;/blockquote&gt;
  &lt;p id=&quot;E00V&quot;&gt;Вот несколько инструментов, которые могут вам помочь:&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;BMj5&quot;&gt;&lt;a href=&quot;http://icepanel.io/&quot; target=&quot;_blank&quot;&gt;Icepanel.io&lt;/a&gt; позволяет реализовать визуальное представление архитектуры вашего продукта по нотации C4. Все элементы, такие как внешние системы, сервер, фронтенд клиент, мобильное приложение и бизнес-процессы, в которых они задействованы, могут быть удобно и понятно отражены в виде схемы, где каждый элемент имеет функционал вложенности, то есть вы можете провалиться в него для получения более детализированного контекста.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;1JNg&quot;&gt;&lt;a href=&quot;http://proto.io/&quot; target=&quot;_blank&quot;&gt;Proto.io&lt;/a&gt; позволяет спроектировать ваш пользовательский интерфейс в понятной форме. Вы можете спроектировать мобильное приложение или сайт.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;jRis&quot;&gt;&lt;a href=&quot;https://stormbpmn.com/&quot; target=&quot;_blank&quot;&gt;Stormbpmn&lt;/a&gt; позволяет спроектировать BPMN-схемы ваших бизнес-процессов совместно с другими участниками команды.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;vsLc&quot;&gt;&lt;a href=&quot;https://readme.so/ru&quot; target=&quot;_blank&quot;&gt;Readme.so&lt;/a&gt; - это удобный readme editor. Он содержит большое количество текстовых заготовок, с помощью которых вы сможете быстро сформировать качественный readme-файл. В нем можно разместить руководство по локальному поднятию экосистемы ваших микросервисов, запуск локального окружения, настройку сертификатов и т.д.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Lk9X&quot;&gt;Для того чтобы представить новичку связь между архитектурными компонентами (определенными на C4 борде ) и bpmn схемами можно использовать knowlege based инструмент . &lt;/p&gt;
    &lt;p id=&quot;Vk2G&quot;&gt;В инструменте должен иметься механизм классификатора с помощью которого можно будет отметить связанные бизнес-процессы и компоненты.&lt;/p&gt;
    &lt;p id=&quot;UOjD&quot;&gt;Далее в поиске можно будет с помощью фильтров найти все необходимые ресурсы.Скрин представлен из интерфейса инстурмента управления знаниями teamly.&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;QLr0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0f/02/0f026df5-4f92-4ad4-861e-c32146f29805.png&quot; width=&quot;2594&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;taGs&quot;&gt;&lt;a href=&quot;https://teamly.ru/&quot; target=&quot;_blank&quot;&gt;teamly&lt;/a&gt; - российский аналог confluence. Инструмент изначально позиционируется как база знаний + тестирование сотрудников на предмет понимания продукта в разработке которого они принимают участие.Очень удобный интерфейс создания набора тестов для аттестации сотрудника .&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>dddboy:hot-swap-fix-legacy-without-restart</id><link rel="alternate" type="text/html" href="https://teletype.in/@dddboy/hot-swap-fix-legacy-without-restart?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dddboy"></link><title>Hot Swap- как менять source код в Inteleji IDE в debug session без перезапуска проекта</title><published>2022-11-08T23:44:58.426Z</published><updated>2022-11-10T15:15:44.245Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/5e/96/5e96bc66-4510-4e4c-8243-444519e396b7.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/9d/53/9d534423-02e9-4f11-862c-265b2de44a12.png&quot;&gt;Когда  мы разрабатываем код древнего монолита и дебажим его локально в формате задеплоеного war на локальный tomcat через inteleji idea - каждое изменение кода требует перезапуска приложения для применения изменений.</summary><content type="html">
  &lt;p id=&quot;IZjW&quot;&gt;Когда  мы разрабатываем код древнего монолита и дебажим его локально в формате задеплоеного war на локальный tomcat через inteleji idea - каждое изменение кода требует перезапуска приложения для применения изменений.&lt;/p&gt;
  &lt;p id=&quot;VVZw&quot;&gt;На одном из проектов я столкнулся с тем что локальный стартап приложения занимает 6 минут.Все дальнейшие эксперименты и попытки проходили на подыпытном вида - jdk1.8.0_181 and gradle multi module project build and deployed as single war on Tomcat 8.5.68.&lt;/p&gt;
  &lt;p id=&quot;I40Y&quot;&gt;Spring на проекте есть но не spring boot -следовательно spring boot dev tools отпадает.&lt;/p&gt;
  &lt;h2 id=&quot;BHW5&quot;&gt;Шаг 1 - пытаемся в Hot Swap в Inteleji Idea Ultimate 2022 &lt;/h2&gt;
  &lt;p id=&quot;9lse&quot;&gt;Первым шагом было знакомство с встроенными иснтрументами IDE для того чтобы попытаться в динамике поменять java class source code state in jvm -  такая процедура определяется термином Hot Swap .&lt;/p&gt;
  &lt;p id=&quot;Gdal&quot;&gt;Ветераны индустрии помнят такой иструмент как Jrebel - но нас сейчас он не интересует так как Jrebel на момент сентября 2022 года не работает в России.&lt;/p&gt;
  &lt;p id=&quot;V4E7&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;gSNc&quot;&gt;Inteleji предоставляет такую возможность  : &lt;a href=&quot;https://www.jetbrains.com/help/idea/altering-the-program-s-execution-flow.html#reload_classes&quot; target=&quot;_blank&quot;&gt;https://www.jetbrains.com/help/idea/altering-the-program-s-execution-flow.html#reload_classes&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1PzA&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;iSq8&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9d/53/9d534423-02e9-4f11-862c-265b2de44a12.png&quot; width=&quot;1582&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Pl6T&quot;&gt;Но работает это судя по всему только в hello world приложениях не зависящих от таких фреймворков как spring и  hibernate.При моей попытке через Inteleji Hot-Swap-нуть код класса аннотированного @Service в монолите на базе java 8 я словил такой exception &lt;/p&gt;
  &lt;figure id=&quot;QSYF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1c/29/1c293bcd-cbdb-47d9-82c8-e3eb01b5f4c1.png&quot; width=&quot;585&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lW0S&quot;&gt;Отгуглить как решать такой кейс базовыми инструментами Inteleji Ultimate  я не смог.&lt;/p&gt;
  &lt;h2 id=&quot;XBJh&quot;&gt;Шаг 2 - DCEVM &lt;/h2&gt;
  &lt;p id=&quot;UEGZ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;bMds&quot;&gt;Hot Swap в  Inteleji существует с некоторыми ограничениями &lt;/p&gt;
  &lt;p id=&quot;62316081&quot;&gt;Due to VM design, HotSwap has the following limitations:&lt;/p&gt;
  &lt;ul id=&quot;7e3990ed&quot;&gt;
    &lt;li id=&quot;c9de90d&quot;&gt;it is only available if a method body is modified. Changing signatures is not supported.&lt;/li&gt;
    &lt;li id=&quot;5b972019&quot;&gt;adding and removing class members is not supported&lt;/li&gt;
    &lt;li id=&quot;4d935bcc&quot;&gt;if the modified method is already in the call stack, the changes will take effect only after the program exits the modified method. Until that moment, the method body remains unchanged, and the frame is marked as obsolete.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;b91f7cac&quot;&gt;If you want to remove the limitations imposed by the standard VM, you can use the Dynamic Code Evolution VM with unlimited support for reloading classes at runtime.&lt;/p&gt;
  &lt;p id=&quot;LjpU&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;XgDF&quot;&gt;Ну DCEVM так DCEVM подумал я и пошел искать.&lt;/p&gt;
  &lt;p id=&quot;uuf9&quot;&gt;Есть 2 варианта настройки :&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Iue4&quot;&gt;1  вариант - наиболее понятный &lt;a href=&quot;https://ssledz.github.io/blog/2016/05/16/hot-swap-in-java-with-dcevm-and-hotswapagent-a-jrebel-free-alternative/&quot; target=&quot;_blank&quot;&gt;https://ssledz.github.io/blog/2016/05/16/hot-swap-in-java-with-dcevm-and-hotswapagent-a-jrebel-free-alternative/&lt;/a&gt; - у меня не сработал - пробовал с liberica jdk и oracle jdk 8 - летели ошибки HOT Swap в IDE&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;1Zpe&quot;&gt;2 вариант - официальный гайд - &lt;a href=&quot;http://hotswapagent.org/&quot; target=&quot;_blank&quot;&gt;http://hotswapagent.org/&lt;/a&gt; - пробовал только для  java 8 с установкой всех инструментов из гайда + oracle jdk 181 - тоже не сработало - летели ошибки HOT Swap в IDE   :&lt;/p&gt;
  &lt;blockquote id=&quot;Tc9f&quot;&gt;hotswap-agent-1.4.2-SNAPSHOT &lt;/blockquote&gt;
  &lt;blockquote id=&quot;zOdM&quot;&gt;DCEVM-8u181-installer-build2&lt;/blockquote&gt;
  &lt;hr /&gt;
  &lt;figure id=&quot;LLrF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/42/7d/427d0bce-1323-4967-9d2a-1431cfe5ed4d.png&quot; width=&quot;900&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;MnAQ&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;qvx8&quot;&gt;Шаг 3 Single Hot Swap inteleji plugin &lt;/h2&gt;
  &lt;p id=&quot;BHcX&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;bQlL&quot;&gt;Потратив день на безрезультатные эксперименты  в рамках предыдущих 2 шагов и заведя тикет &lt;a href=&quot;https://github.com/HotswapProjects/HotswapAgent/issues/446&quot; target=&quot;_blank&quot;&gt;https://github.com/HotswapProjects/HotswapAgent/issues/446&lt;/a&gt; &lt;/p&gt;
  &lt;p id=&quot;ndfP&quot;&gt;Случайно был найден плагин :&lt;/p&gt;
  &lt;p id=&quot;382V&quot;&gt;&lt;a href=&quot;https://plugins.jetbrains.com/plugin/14832-single-hotswap&quot; target=&quot;_blank&quot;&gt;https://plugins.jetbrains.com/plugin/14832-single-hotswap&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;J1Qu&quot;&gt;Он как раз и дал эффективный результат без всяких настроек JVM с помощью флажков указанных в run/debug configuraton IDE  для tomcat,возни с hotswap agent ,и DCEVM инсталятором .&lt;/p&gt;
  &lt;p id=&quot;WXkb&quot;&gt;Я просто поставил плагин и Hot Swap заработал для -  liberica jdk 1.8 and gradle multi module project build and deployed as single war on Tomcat 8.5.68 .&lt;/p&gt;
  &lt;p id=&quot;U1zB&quot;&gt;После подключения в ide появляется такой значок :&lt;/p&gt;
  &lt;figure id=&quot;kHeN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d4/7b/d47bb137-de8b-443e-a702-913076c05b49.png&quot; width=&quot;479&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;0aVG&quot;&gt;Для Hot Swap IDE у меня стояла такая настройка :&lt;/p&gt;
  &lt;figure id=&quot;yqg3&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/29/0b29555a-421c-438e-855d-b4eb23c3da34.png&quot; width=&quot;1208&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ziiW&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;lWWB&quot;&gt;В итоге запустив debug сессию в IDE - я смог коментить код/менять код в inteleji ide code space и hot swap-ить его на ходу без перезапуска проекта =)&lt;/h3&gt;
  &lt;p id=&quot;EH7N&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;naBS&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;wdag&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3a/16/3a16f5f2-9e4a-4122-b1be-cfeb88242d98.png&quot; width=&quot;337&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>dddboy:redocly-part1</id><link rel="alternate" type="text/html" href="https://teletype.in/@dddboy/redocly-part1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dddboy"></link><title>Как автоматически распилить монолитный open api файл на 21 000 строк в читаемый вид ?</title><published>2022-07-05T19:21:28.758Z</published><updated>2022-07-05T20:20:53.418Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f3/31/f33194ee-21be-4977-b560-7d9a6821cf6b.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/02/d8/02d86266-5983-4707-8b2c-8a60f460f9ee.png&quot;&gt;Есть такая штука - fist api driven подход .</summary><content type="html">
  &lt;p id=&quot;Ww4O&quot;&gt;Есть такая штука - fist api driven подход .&lt;/p&gt;
  &lt;p id=&quot;1d91&quot;&gt;Это когда вы сначала пишете yml файлик или yml файлики с указанием  вашего rest api  ( урлы эндпоинтов, структура респонса,структура реквеста, коды ошибок и тд).&lt;/p&gt;
  &lt;p id=&quot;Yvhr&quot;&gt;А потом либо используете в confluence как read-only спеку или генерите код эндпоинтов при копиляции проекта.&lt;/p&gt;
  &lt;blockquote id=&quot;w2kK&quot;&gt;Выглядит это примерно так :&lt;/blockquote&gt;
  &lt;figure id=&quot;PEfg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/02/d8/02d86266-5983-4707-8b2c-8a60f460f9ee.png&quot; width=&quot;3584&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PplH&quot;&gt;Когда размер конфигурационного файла достигает 21 000 строк - внесение изменений в него начинает быть мучительным.&lt;/p&gt;
  &lt;p id=&quot;m8ma&quot;&gt;Перебить руками это в ликвибейзоподобный вид можно - но долго и сложно.&lt;/p&gt;
  &lt;p id=&quot;b3fD&quot;&gt;В итоге к нам на помощь приходит супер тул - &lt;a href=&quot;https://redocly.com/docs/cli/commands/split/#split&quot; target=&quot;_blank&quot;&gt;https://redocly.com/&lt;/a&gt; .&lt;/p&gt;
  &lt;figure id=&quot;kBG2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4c/61/4c61e1c7-ba99-4003-bebf-1a5e10b42de9.png&quot; width=&quot;2590&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Zf6Z&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;mX8k&quot;&gt;Итак погнали разбираться - сначала поставим его на свою тачку.&lt;/p&gt;
  &lt;p id=&quot;MWuX&quot;&gt;Я ставил его на мак следующей командой :&lt;/p&gt;
  &lt;p id=&quot;QN6Q&quot;&gt;npm i -g @redocly/cli@latest&lt;/p&gt;
  &lt;p id=&quot;48R4&quot;&gt;Дальше чтобы показать как разбивать - сплитить файл - на мастер с чайлд файлами я использую велком теплейт отсюда &lt;a href=&quot;https://editor.swagger.io/&quot; target=&quot;_blank&quot;&gt;https://editor.swagger.io/&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;BqQp&quot;&gt;Но с единственным НО - этот тул работает только со спекой в формате open api 3.0.0 .&lt;/p&gt;
  &lt;p id=&quot;dy4P&quot;&gt;С swager 2.0.0 к сожалению не пашет - поэтому предварительно надо сконвертить его к формату openapi 3.0.0 если у вас был в формате свагера . Это спокойно делается в онлайн редакторе &lt;a href=&quot;https://editor.swagger.io/&quot; target=&quot;_blank&quot;&gt;https://editor.swagger.io/&lt;/a&gt; &lt;/p&gt;
  &lt;p id=&quot;HaEz&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;AuaI&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;yA7q&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1c/16/1c162a70-9012-4d9d-8af8-5fe398e187aa.png&quot; width=&quot;1832&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PEbR&quot;&gt;Итак после того как мы сконвертили - идем в интеледжи и создаем пустой демо проект.&lt;/p&gt;
  &lt;p id=&quot;1c7l&quot;&gt;Вставляем туда наш файлик с open api 3.0.0 контентом. &lt;/p&gt;
  &lt;figure id=&quot;ofi0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cc/98/cc98a5ba-e58a-4cfe-ae12-1e6f8f1bf844.png&quot; width=&quot;2690&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LWwH&quot;&gt;699 строк и это только то что поместилось в экран.&lt;/p&gt;
  &lt;p id=&quot;2rBN&quot;&gt;Итак начинаем распил . Сначала заходим в консоль в пакет где находится openapi.yml.&lt;/p&gt;
  &lt;p id=&quot;LaX0&quot;&gt;И вводим команду &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;UP5N&quot;&gt; redocly split openapi.yml --outDir=openapi_decomposed&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;8Fgq&quot;&gt;Дока команды : &lt;a href=&quot;https://redocly.com/docs/cli/commands/split/#split&quot; target=&quot;_blank&quot;&gt;https://redocly.com/docs/cli/commands/split/#split&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;gTKm&quot;&gt;Давайте ее разберем :&lt;/p&gt;
  &lt;blockquote id=&quot;Ts5f&quot;&gt;redocly split - разбить файл на структуру&lt;/blockquote&gt;
  &lt;blockquote id=&quot;1UKG&quot;&gt;openapi.yml - путь до файла который разбить&lt;/blockquote&gt;
  &lt;blockquote id=&quot;DE97&quot;&gt;--outDir=openapi_decomposed  - директория куда будет положена структура с мастер файлом и чайлд файлами&lt;/blockquote&gt;
  &lt;figure id=&quot;hnIg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/76/cf/76cfb0cc-43cf-48bf-98aa-85b200170e87.png&quot; width=&quot;1626&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Uw2o&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b7/2c/b72c724c-d81e-4ae1-90f7-d79537da07fe.png&quot; width=&quot;926&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;o5KT&quot;&gt;В папке schemas - лежат файлы каждый из которых представляет структуру одного из реквестов или респонсов .&lt;/p&gt;
  &lt;figure id=&quot;KZXC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0c/c4/0cc45594-3967-4963-b951-0c6563e555cb.png&quot; width=&quot;1528&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;f11k&quot;&gt;В папке paths - лежат конкретные файлы описывающие начинку каждого уникального урла .На один файл может приходится несколько методов - GET,PUT,POST - которые прикреплены именно у этому уникальному урлу.  &lt;/p&gt;
  &lt;figure id=&quot;yvLx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2b/ce/2bcef96e-8f61-472c-b42a-3721a5f5c7e6.png&quot; width=&quot;2130&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;aYXa&quot;&gt;Ну и наконец мастер файл с ссылками на чайлдов. И явными урлами эндпоинтов.&lt;/p&gt;
  &lt;figure id=&quot;t5RT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2c/97/2c972b0e-81db-41fd-809a-0c0deaa6ccfd.png&quot; width=&quot;2360&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UY6h&quot;&gt;Красное подчеркивание из за того, что тул при генерации в случае с урлами содержащими path variable  криво определяет filename  .&lt;/p&gt;
  &lt;p id=&quot;qLp8&quot;&gt;Но это легко лечится через refactor rename прямо в этой строчке.&lt;/p&gt;
  &lt;figure id=&quot;nCf7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/73/b8/73b89772-90a8-49f9-b433-4e1be9dded0a.png&quot; width=&quot;2400&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;0phJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bb/ee/bbeebfa8-d881-416a-8e24-c6301e5d4cd3.png&quot; width=&quot;812&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hOkg&quot;&gt;Итог : мы повысили читабельность наших конфиг файлов. &lt;/p&gt;
  &lt;p id=&quot;6w1I&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;HLtr&quot;&gt;Код из статьи : &lt;a href=&quot;https://github.com/redkatok/redocly_demo&quot; target=&quot;_blank&quot;&gt;https://github.com/redkatok/redocly_demo&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;0ijx&quot;&gt;P.S. Также этот тул может собирать несколько файлов open api в один. Советую почитать доку этого инструмента.&lt;/p&gt;

</content></entry></feed>