TGViewer
Channel Public Channel
codemonsters.log

codemonsters.log

@codemonsterslogs

| Просто рассказываю про
| Научно обоснованный подход
| Рациональной и качественной разработки софта
@maxology
Subscribers
580
Photos
188
Videos
20
Links
110

Showing posts older than #302 · Back to latest

Older Posts 11 shown
Post #301 465
🙏Собрал развернутое саммари сессии митапа

🔌 pinout: спроектировали валидатор OpenAPI-контрактов и попутно прокачали свои скиллы разработки

На этой сессии проектировали инструмент, который на pre-merge стадии в CI проверяет, что потребитель REST-сервиса совместим с
прод-контрактом поставщика — сравнением их OpenAPI-спек. Без генерации клиентских либ, без подъёма заглушек: чистая функция
«спека vs спека».

🔗 Экосистема:
https://github.com/codemonstersteam/pinout
🔗 Сам валидатор:
https://github.com/codemonstersteam/pinout-openapi
Что зацепило больше всего

📐 Системные use case по Коберну.
Оказалось, что fully-dressed use case (акторы, предусловия, основной сценарий, extensions =
режимы отказа, гарантии/exit) — это не «бумажка для галочки», а рабочая спецификация. Структура use case изоморфна Gherkin: Main
Success → happy-тест, каждый Extension → один сценарий отказа. Формула сошлась сама собой: N сценариев = 1 + число extensions.

🗺 C4 как уровни дизайна. Разложили проект по уровням C4 на Mermaid (рендерится прямо в GitHub):
• C1 (контекст экосистемы) — в концепт-репо
• C2 + C3 (контейнер + дерево модулей) — в компоненте
• C4 = тот самый системный use case «как работает программа»

📄 Живой пример:
https://github.com/codemonstersteam/pinout-openapi/blob/main/docs/design/contract-validate/c4.md

Главный инсайт — это всё прошивается в систему

Получилась сквозная трассировка:
use case (Cockburn)
→ вертикальный слайс
→ компонентный тест
→ узлы графа контрактов.

1 слайс = 1 внешний вход = 1 use case.

Ничего не выдумывается из кода — каждый компонентный тест выводится из соответствующего extension use case, с двусторонней сверкой (нет extension без теста и нет теста без extension).

Как мы доработали скиллы разработки

По следам сессии внесли правки прямо в процедуры скиллов (не в «когда-нибудь потом»):

✅ documentation — обязательные C4-диаграммы по уровням, системный use case как C4-уровень, таблица сбоев в README, gate:
документация только по скиллу (никакой свободной прозы мимо процедур)

✅ program-design — C4 по уровням, модель ошибок (коды → exit, «деградация видна, не маскируется под успех»), трассировка
UC→слайс→тест, conformance-gate (STOP перед хендоффом)

✅ component-tests — режимы отказа берутся из extensions use case

✅ роль plan-reviewer — асимметричная проверка соответствия дизайна скиллу

Плюс зашили несколько жёстких правил в скилл проектирования:
• Один внешний вход = один Request. Все параметры (включая флаги CLI) собираются в единый Request; флаг — это поле Request, а не
отдельный аргумент или «прокинутый сбоку» io.Writer. Внешний ввод парсится только в адаптере.

• Развилки по флагам — это юниты, а не компонентные тесты. Выбор «куда писать» (--out) и «в каком формате» (--format)
оформляется чистой функцией (resolveDestination, renderReport) и покрывается юнит-тестами. В компонентные сценарии идёт только
режим отказа записи — иначе матрица stdout/файл × json/md раздувает число сценариев.

• Запрет «тестового» второго метода I/O (WriteTo(io.Writer) рядом с боевым Write) — решение выносится в логику, лишний шов не
заводится.

Вывод сессии: use case по Коберну + C4 + вертикальные слайсы — это один связный конвейер, а не три отдельные практики. Когда они
сшиты, дизайн перестаёт расходиться с тестами и кодом by design.

#codemonstersvlog #разработка #архитектура #C4 #UseCase #OpenAPI
GitHub GitHub - codemonstersteam/pinout: Ecosystem of tools for validating contracts between services based on their OpenAPI/AsyncAPI… Ecosystem of tools for validating contracts between services based on their OpenAPI/AsyncAPI specifications. Umbrella project for pinout-asyncapi, pinout-openapi, pinout-netlist. - codemonstersteam...
  • 🔥 4
  • ❤ 1
  • 👍 1
  • 👏 1
Post #294 584
🛠 На митапе:
— Спроектировали pinout-openapi (C4: С1 в pinout, C2-C3 — в openapi).

— Обновили README.
— Гульнара помогла с Use Case'ами (Cockburn), документация стала чётче.

⚠️ Выявили риски со сборкой OpenApi и $ref — вынесли в таблицу. Решили не усложнять, сначала проверим в деле.


📌 План: допрограммируем по дизайну, на след. митапе (вторник) протестируем на проекте.

Получилось достойно. Давно собирался затащить c4.

Скиллы доработаны 🧸


👋 Что ещё улучшить? Пишите в комментариях.
  • ❤‍🔥 6
  • 👍 2
  • 🔥 2
Post #293 397
codemonsters.log 🚀 ЗАВТРА В 18:30 — ПРЯМОЙ ЭФИР / ВСТРЕЧА Друзья, напоминаю: завтра встречаемся в обычное время. Ссылку на подключение дам отдельным постом ровно в 18:30 — не потеряйтесь! 🔧 Чем займёмся: · Продолжим пилить инструменты Pinout — погружаемся глубже. Спроектируем…
Погнали https://telemost.yandex.ru/j/8669013602

🔧 Чем займёмся:

· Продолжим пилить инструменты Pinout — погружаемся глубже.

Спроектируем тулзу pinout-openapi и обсудим концепт.

Посмотрим как харнес поможет спроектировать то, что нужно.

· Живое общение: отвечу на ваши вопросы, обсудим идеи.
telemost.yandex.ru Звонок в Яндекс Телемосте По ссылке вы сможете подключиться к звонку
Post #292 362
🔥 Пора снимать видосы!

Смешные но по делу.

Я уже подготовил дерзкий SDLC без вот этого вот консервативного финтеха ;)

Врываемся в дерзкое тестирование в нашем диком мире:
— Тесты до нагрузки (чтобы не было мучительно больно);
– нагрузку разберем позже;
— Карго-культ и те самые "усложнялки", которые инженеры подкидывают нам как сюрприз.

Мне нужен тулинг, который наконец поставит разработку платформы на поток. 🚀
Его и пилим ;)

чтобы взлететь, нужно сначала пусковую отстроить.

Поэтому стартуем с базы инженерного мастерства и ковыряем CI/CD до самых косточек.

А потом в реальном времени спроектируем сложную систему и разработаем севместно с машиной. Все расскажу и покажу.

Готовьте гиты, будет жарко!
Без лишних съездов с трассы, только прямая дорога в пром ;))). 🛠️
Highway to prod ;)

#codemonstersvlog
  • 🔥 7
  • 👍 2
  • ❤ 1
Post #291 364
🚀 ЗАВТРА В 18:30 — ПРЯМОЙ ЭФИР / ВСТРЕЧА

Друзья, напоминаю: завтра встречаемся в обычное время.
Ссылку на подключение дам отдельным постом ровно в 18:30 — не потеряйтесь!

🔧 Чем займёмся:

· Продолжим пилить инструменты Pinout — погружаемся глубже.

Спроектируем тулзу pinout-openapi и обсудим концепт.

Посмотрим как харнес поможет спроектировать то, что нужно.

· Живое общение: отвечу на ваши вопросы, обсудим идеи.

📌 Что было на прошлой встрече:
Мы доработали план разработки в нескольких репах, обсудили идею и подготовили постановку, которую скормили машине;)

---

✅ Кто будет — ставьте 🔥 реакцию чтобы я знал, сколько пуншей готовить ))
До связи! 💻
  • 🔥 6
  • 👍 2
Post #287 497
codemonsters.log 📡 pinout — дневник сессии На митапе обсудили концепцию pinout — экосистемы, которая проверяет совместимость сервисов по их спекам (OpenAPI/AsyncAPI) прямо в CI, без генерации клиентских библиотек. Источник истины — спека в Git. Написали промпт-постановку…
мне очень понравился формат
это то, чего я хочу от таких встреч.

Назову это шоу-опен сорс(show open source)
встречи на которых будем в реалтайме обсуждать идеи
проектировать и реализовывать все те инструменты, которые пригодятся как база для разработки платформы агентами с непрерывной поставкой, тестирование и наблюдением

#codemonstersvlog
  • 👍 4
Post #285 475
📡 pinout — дневник сессии

На митапе обсудили концепцию pinout — экосистемы, которая проверяет совместимость сервисов по их спекам (OpenAPI/AsyncAPI) прямо
в CI, без генерации клиентских библиотек. Источник истины — спека в Git. Написали промпт-постановку (intent), провалидировали
план — и пошли работать с ИИ-агентом.

Что сделали за сессию 👇

🧩 Доработали концепт и обоснование
Сформулировали несущий инвариант: сервис конформен своей спеке (доказано его компонентными тестами) ⇒ совместимость спек =
реальная совместимость, а не намерений. Разобрали, почему спека-в-Git выигрывает у генерации либ, и где границы подхода.

🔀 Закрыли развилку дизайна pinout-openapi (синхронные контракты)
- заглушки и сценарии компонентных тестов потребителя выводятся из master-спеки поставщика;
- MVP инструмента = чистая функция «спека потребителя vs master-спека поставщика», симметрично async;
- генерация сценариев от спеки поставщика — доработка скилла component-tests в service-template.

🗺️ Спроектировали по скиллам (vertical slice, ROP, бизнес-логика ≠ I/O): пакет проектирования, компонентные тесты (Gherkin),
канон общего формата отчёта валидаторов. Завели бэклог экосистемы (эпики E0–E4) и план интеграции с координатором графа
pinout-netlist.

📦 Репозитории:
- Концепт → github.com/codemonstersteam/pinout
- AsyncAPI-валидатор → github.com/codemonstersteam/pinout-asyncapi
- OpenAPI-валидатор (новый) → github.com/codemonstersteam/pinout-openapi
- Netlist-координатор (новый) → github.com/codemonstersteam/pinout-netlist
- Методология/скиллы → github.com/ubik-life/service-template

🛠️ Подход к разработке — TDD маленькими инкрементами с ИИ: проектируешь модули, фиксируешь контракты, выдаёшь чёткие задачи.

➡️ На следующем митапе продолжим проектирование инструмента pinout-openapi по бэклогу.

🗓️ Вторник 23 июня, 18:30.
Ссылку на встречу пришлю за 30 мин до встречи

backlog распределенной системы храним в мета-репозитории системы

#codemonsterslog
  • 🔥 4
Post #284 348
codemonsters.log Всем привет! В среду 17.06 в 18:30 — митап. Заходите переждать жару в позитивной компании. Ссылка на видеовстречу: https://telemost.yandex.ru/j/1435644748 Формат свободный: общаемся, задаёте вопросы. Я параллельно буду со скиллами разрабатывать тулзу,…
Встречаемся и общаемся в 18:30
Post #283 504
Вчера тепло встретились с выпускниками и кураторами бэкенд-академии.

Сначала пообщались с ребятами по видео, потом посидели в баре и погуляли.
Было тепло и весело.

Что порадовало: ребята не боялись задавать прямые вопросы — о карьере, скиллах, про стандартизацию работы и мотивацию.

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

#codemonsterslog
  • ❤ 10
  • 👍 4
  • 🔥 3
Post #282 446
codemonsters.log Ставь лайк, и я организую митап, где все подробно расскажу и покажу. Инженер, глянь подход из статьи: https://codemonsters.team/blog/2026/05/02/rational-design-skills/ Там вообще много толковых, научно обоснованных статей про модульность, корректность…
Всем привет!

В среду 17.06 в 18:30 — митап. Заходите переждать жару в позитивной компании.

Ссылка на видеовстречу: https://telemost.yandex.ru/j/1435644748

Формат свободный: общаемся, задаёте вопросы.

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


Расскажу подробнее, как можно улучшать документацию своих продуктов и применять эти скиллы для:
* проектирования сервисов,
* реализации сервиса по бэклогу,
* (и с чего всё это вообще начинается)


Пришло время пообщаться в неформальной обстановке
обсудить кто где что применяет и как


#codemonstersvlog
telemost.yandex.ru Звонок в Яндекс Телемосте По ссылке вы сможете подключиться к звонку
  • 👍 4
  • ❤ 2
Post #279 469
Готовлю дом для синтетического помощника.

Купил две видюхи — RTX 3090 Ti, чтоб помощник не тормозил.

Заказал Dark Hero, чтобы раскрыть потенциал карт в режиме dual x8.
Спрашиваю у кремниевого советника перед покупкой для am4: "Норм?"
А он мне:
"ASUS ROG Crosshair VIII Dark Hero — легендарная плата, абсолютный эталон для твоей задачи. Её слоты PCIe 4.0 x16 работают в режиме x16 или dual x8. Два быстрых слота — без потери производительности."

Короче, электромать одобрила мать.

Теперь жду, когда соберу эту машину и услышу ее дыхание.

#codemonstersvlog
  • 👍 5
  • 🔥 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →