<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/dragfaq/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя dragfaq]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sat, 02 May 2026 18:48:20 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Монорепозитории NX и Lerna, или Туда и обратно]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/520186/</guid>
      <link>https://habr.com/ru/articles/520186/?utm_campaign=520186&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/362/318/9ff/3623189fffd067bb2c0725c0fefdeec3.png" /><p>Как все знают, <a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BD%D0%BE%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9" rel="noopener noreferrer nofollow">монорепозиторий</a> - это несколько частей проекта (приложения, сервисы, библиотеки и т.д.), которые хранятся в одном репозитории. Плохо это или хорошо - не тема данной публикации. Но все же упомяну некоторые причины по которым я решил их использовать.</p><p>В скриптах <strong>деплоймента</strong> (или в моем случае еще и в настройках GitLab репозитория), нужно сформировать токены/ключи доступов к докер реджистри, кубернетесу, разным кластерам и т.д. И если у вас пару сервисов, то это не проблема, но если сервисов 15-20, то это весьма болезненный процесс. Особенно, когда настройки кластера меняются и нужно эти изменения вносить во все репозитории.</p><p>В определенных случаях среди нескольких сервисов, можно выделить <strong>общий код</strong>, который можно переиспользовать (описание интерфейсов, утилиты и т.д.) и особенно важно на самом старте проекта, когда эти общие куски кода только формируются не тратить время на коммиты в отдельные репозитории, если нужно всего лишь добавить поле в общий интерфейс.</p><p>После того как мы перешли на монорепозиторий появилось еще несколько преимуществ, без которых, в принципе, тоже можно жить, но все равно это был приятный бонус.</p><p>И вот мы решили использовать монорепозиторий, но с чего начать и как все организовать?</p><p></p> <a href="https://habr.com/ru/articles/520186/?utm_campaign=520186&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Поехали!</a>]]></description>
      
      <pubDate>Mon, 05 Oct 2020 11:50:16 GMT</pubDate>
      <dc:creator><![CDATA[DragFAQ]]></dc:creator>
      <category><![CDATA[Git]]></category><category><![CDATA[Системы управления версиями]]></category><category><![CDATA[DevOps]]></category><category><![CDATA[Микросервисы]]></category><category><![CDATA[Nx]]></category>
      <category><![CDATA[gi]]></category><category><![CDATA[gitlab]]></category><category><![CDATA[gitlab-ci]]></category><category><![CDATA[lerna]]></category><category><![CDATA[nx]]></category><category><![CDATA[microservices]]></category><category><![CDATA[monorepo]]></category><category><![CDATA[монорепозитории]]></category><category><![CDATA[docker]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Самодокументируемый REST сервер (Node.JS, TypeScript, Koa, Joi, Swagger)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/449906/</guid>
      <link>https://habr.com/ru/articles/449906/?utm_campaign=449906&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<div style="text-align:center;"><img src="https://habrastorage.org/webt/tg/hh/en/tghhend0r6amxsxj0mhnr9uy3l4.jpeg"></div><br>
Про преимущества и недостатки REST написано уже довольно много статей (и еще больше в комментариях к ним) ). И если уж так вышло, что вам предстоит разработать сервис, в котором должна быть применена именно эта архитектура, то вы обязательно столкнетесь с ее документированием. Ведь, создавая каждый метод, мы конечно же понимаем, что другие программисты будут к этим методам обращаться. Поэтому документация должна быть исчерпывающей, а главное — актуальной.<br>
<br>
Добро пожаловать под кат, где я опишу, как мы решали эту задачу в нашей команде.<br> <a href="https://habr.com/ru/articles/449906/?utm_campaign=449906&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Thu, 02 May 2019 10:21:49 GMT</pubDate>
      <dc:creator><![CDATA[DragFAQ]]></dc:creator>
      <category><![CDATA[Проектирование API]]></category><category><![CDATA[Node.JS]]></category><category><![CDATA[Open source]]></category><category><![CDATA[TypeScript]]></category>
      <category><![CDATA[node.js]]></category><category><![CDATA[typescript]]></category><category><![CDATA[rest]]></category><category><![CDATA[joi]]></category><category><![CDATA[swagger]]></category><category><![CDATA[koa]]></category><category><![CDATA[openapi]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Автоматизация workflow небольшой команды разработки (Часть 2)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/270321/</guid>
      <link>https://habr.com/ru/articles/270321/?utm_campaign=270321&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="http://habrahabr.ru/post/270299/">В предыдущей публикации</a> я описывал список продуктов и их настройки, которые необходимы для работы нашей организации.<br/>
<br/>
В этой статье я постараюсь описать, как мы это всё используем в ежедневной работе всего коллектива разработки.<br/>
<br/>
На протяжении 4-х лет у нас выработался следующий формат команды разработки:<br/>
<ul>
<li>1 Project Manager, он же Product Manager, он же Delivery Manager.</li>
<li>4-5 программистов</li>
<li>1 Team lead</li>
<li>3-4 QA</li>
<li>1 Аналитик</li>
<li>1 Техпис (иногда он же и аналитик в одном лице).</li>
</ul><br/>
В итоге команда размером около 10-11 человек. Таких команд (ячеек) у нас несколько.<br/>
<br/>
Работа в основном в стиле стартапа, когда нет конкретной и подробной постановки. Очень часто эксперименты вроде “а давайте попробуем так, посмотрим что получится” или “вы классно все сделали, но теперь надо все совсем по-другому”.<br/>
За эти годы концепцию нашей работы можно описать одной фразой — это “стремительная смена концепции”.<br/>
Понятное дело, что применить в таких условиях различные методологии никак не удавалось.<br/>
<br/>
Начинал в этой системе я как программист, потом Team lead, ну а теперь PM (DM). Т.е. руковожу, полностью участвую в проектировании и иногда даже пописываю. Во времена моего программирования у меня был замечательный ПМ (выходец из тестировщиков), которая поддерживала все мои идеи по автоматизации workflow. Даже более того, концептуально этот процесс придуман ей, а я уже смог его технически реализовать и в некоторых местах усовершенствовать.<br/>
 <a href="https://habr.com/ru/articles/270321/?utm_campaign=270321&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 06 Nov 2015 12:30:16 GMT</pubDate>
      <dc:creator><![CDATA[DragFAQ]]></dc:creator>
      <category><![CDATA[Веб-разработка]]></category><category><![CDATA[Системы управления версиями]]></category>
      <category><![CDATA[atlassian]]></category><category><![CDATA[jira]]></category><category><![CDATA[crowd]]></category><category><![CDATA[confluence]]></category><category><![CDATA[bitbucket]]></category><category><![CDATA[fisheye]]></category><category><![CDATA[jenkins]]></category><category><![CDATA[stash]]></category><category><![CDATA[workflow]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Автоматизация workflow небольшой команды разработки (Часть 1)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/270299/</guid>
      <link>https://habr.com/ru/articles/270299/?utm_campaign=270299&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Практически во всех местах моей работы программистом для разработки использовали всего два продукта: багтрекинг и систему контроля версий. Чаще всего это были Atlassian Jira и SVN. В принципе, наличие этих двух систем здорово упорядочивает общение всех участников процесса разработки и положительно влияет на качество работы отдела и продукта.<br/>
<br/>
Года 4 назад я морально, а затем и фактически дорос до уровня тимлида. Взгляды стали шире и выше текущих процессов. В голову стали приходить разные мысли о мотивации, оптимизации, автоматизации и прочих -циях. В этой статье я хотел бы поделиться опытом из разряда технических компетенций тимлида: как автоматизировать ежедневные процессы (например, автоматическая сборка продукта, выкладывание, документирование, управление правами т.д. и т.п.).<br/>
<br/>
После третьей страницы текста моей статьи, я решил разделить ее на 2 блока:<br/>
<ul>
<li>Настройка ПО, сопровождающего процесс разработки.</li>
<li><a href="http://habrahabr.ru/post/270321/">Описание Workflow</a>.</li>
</ul><br/>
<br/>
<h2>Итак. Настройка ПО, сопровождающего процесс разработки</h2><br/>
<img src="https://habrastorage.org/files/e86/a2c/629/e86a2c6291be41119012942c1188aec2.png"/><br/>
 <a href="https://habr.com/ru/articles/270299/?utm_campaign=270299&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 06 Nov 2015 10:01:42 GMT</pubDate>
      <dc:creator><![CDATA[DragFAQ]]></dc:creator>
      <category><![CDATA[IT-инфраструктура]]></category><category><![CDATA[Системное администрирование]]></category>
      <category><![CDATA[atlassian]]></category><category><![CDATA[jira]]></category><category><![CDATA[crowd]]></category><category><![CDATA[confluence]]></category><category><![CDATA[bitbucket]]></category><category><![CDATA[fisheye]]></category><category><![CDATA[jenkins]]></category><category><![CDATA[stash]]></category><category><![CDATA[workflow]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
