KIT


Гео и язык канала: Россия, Русский
Категория: Технологии


IT Лидер. Трансформирую разработку от хаоса к гармонии.
По всем вопросам @AVKazakov

Связанные каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций




И немного постанализа к видео




У всех нормально отображается?




Репост из: Сергей Баранов: Technical Leadership, ИТ-стратегия, Архитектура, SDLC, AI…
Как только кто-то начинает читать вашу схему БД напрямую, ваша схема становится публичным API.




От стикеров к UI: генерация экранов на базе доменной модели и ИИ

Все привет!

В эпоху AI разработки Domain Driven Design приобретает очень весомое значение для разработки. Из философии построения сложных программных систем он становится великолепным инструментом для управления #AI4SDLC (Artificial Intelligence for Software Development Life Cycle).

В этом видео я хочу рассказать, как испльзование Domain Driven Design и Event Storming позволяет сгенерировать макеты интерфейсов уже на раннем этапе разработки. Все что вам нужно - доска event storming описание моделей, а остальное за вас сделает чат-бот или агент.


Почему DDD отлично подходит для агентской разработки

DDD - моделирование бизнес процессов. Мы создаем аналитическую модель, которая описывает простым текстом и языком схем необходимые нам бизнес процессы. Хорошая модель не противоречива и лаконична, а также не имеет двойного толкования. А это, как выяснилось, основная слабость AI разработки.

Если постановка задачи имеет противоречия и двойное толкование, то выполняющий ее агент будет галлюцинировать и додумывать за вас. А Domain Driven Design создан для того, чтобы исключить противоречия и двойные толкования.

#DDD #AI #AI4SDLC #SoftwareArchitecture #DDD4AI


Видео недоступно для предпросмотра
Смотреть в Telegram
Проба пера, нового формата. Если зашел, пиши в коменты. Если не зашло, тоже пиши!


С днём программиста всех!
Пусть вас не заменит AI.
А релизы будут без хотфиксов!


Чем заменить Cursor 2

Недавно Cursor закрыл доступ пользователям из России. Я уже искал заменители Cursor, вот тут. С того момента времени уже многое изменилось. Вот кратко, что изменилось с того момента:

Yandex SourceCraft Code Assistant


Языковые модели Яндекса значительно улучшились. Введена полноценная агентская разработка. Ассистент, по моим личным ощущениям, стал значительно шустрее и умнее. Яндекс ввел непонятные лимиты, теперь это не запросы и автодополнения, а какие-то «попугаи» — нейрокредиты. По ощущениям, значительно порезали лимиты и увеличили стоимость.

Kilocode и Cline

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

Тарифы плюс-минус одинаковые. Есть возможность настройки использования локальных моделей через OpenAI интерфейс. В Cline можно подключать даже к LM-Studio (Kilocode не проверял). Выбор между ними — это личные предпочтения разработчика.

Отдельно о Openrouter

Openrouter ввел ограничения для пользователей из России. Причем официального заявления не было. Сначала я начал получать непонятные ошибки при работе с моделями OpenRouter. А потом мне пришло письмо, что я больше не смогу пополнять счет, а текущий баланс могу потратить в течение определенного времени (кажется, месяц).


Opencode — то, чего мне не хватало в Cline и Kilocode


Для себя я открыл Opencode. Opencode — это AI-агент с открытым исходным кодом для разработки. Есть как консольный интерфейс, так и десктопная версия (десктопной версией не пользовался, ничего не могу сказать).

Что предлагает Opencode:
▸ Поддержка LSP — автоматически загружает нужные LSP для LLM.

▸ Запуск нескольких агентов параллельно.

▸ Есть множество расширений для интеграции с множеством IDE.

▸ Множество преднастроенных провайдеров для моделей.

▸ Можно настроить для использования локальных моделей.

▸ Opencode Zen — оптимизированные модели для кодинг агентов.

▸ Opencode Go — недорогие модели, но некоторые модели с большими лимитами будут обучаться на ваших запросах (если вам это не критично, то получаете очень огромные лимиты).

▸ Огромное комьюнити вокруг Opencode — это, наверное, самое большое преимущество, а соответственно, много полезных плагинов и готовых агентов.

Для себя, для личных пет-проектов я выбрал Opencode Go (кстати, вот рефералка, можно получить +5$ для использования Go). И локальные модели — для чувствительных данных.

#AI #development #AI4SDLC


Cursor в России все.
Начинает отменять подписки Российским пользователям.

Куда будете переезжать?

Яндекс не за долго до этого обрезал лимиты и поднял цены на свой Source Craft.


Всем привет!
В процессе подготовки следующей версии моего приложения - Гиря – Русский мах, ожидаемо для себя осознал и убедился в том, что в эпоху агентского программирования (или программирования с помощью агентов или AI программирования, я не совсем уверен какой термин будет правильный) моделирование бизнес процессов с помощью Domain Driven Design приобрело еще больший вес. А именно использование подходов DDD позволит генерировать чистый понятный код, который потом будет легче поддерживать и расширять.

Именно та часть приложения, которую я тщательно моделировал, в том числе с использованием Event Storming, претерпевает минимальные изменения в процессе доработки. Да и расширение функций модели потребовало совсем мало времени и трудозатрат.


🎯 DDD — предсказуемость генерации

Моделирование при помощи DDD позволяет описать бизнес-процессы и бизнес-правила, по которым существует система. Это делает генерацию кода более предсказуемой. Агент получает на вход четкие границы и структуру, соответственно ему приходится меньше «додумывать» за человека. Это делает работу AI агента более точной (если, конечно, можно применять этот термин к генерации кода).


⚙️ Практика: State Driven Domain Model

Для доменной модели использовал подход State Driven Domain Model. Он очень хорошо подошел для реализации переходов между состояниями модели. Для постановки задачи я использовал часть диаграммы Event Storming с агрегатами, командами и событиями. Плюс для генерации я быстро набросал диаграмму, которая в общих чертах описывала связи между классами.

Это позволило сгенерировать неплохой код, который требовал лишь небольшой ручной доработки.
Небольшое отступление: В процессе эксплуатации и разработки нашел также и неприятный минус — если нужно добавить события, то столкнетесь с неразрешимыми противоречиями :(. Напишу об этом в следующих постах.


📈 Инвестиция в будущую поддержку

Я часто вижу и очень боюсь, что AI агенты сгенерируют «спагетти-код», который будет сложно поддерживать и расширять в процессе эксплуатации и развития проекта.

Но если фундаментом выступают практики из Domain Driven Design, то сгенерированный код становится лучше спроектированным изначально. Этот код в дальнейшем проще поддерживать, понимать и расширять.

Какую мысль хочу донести — использование DDD позволит писать код с помощью ИИ быстрее и качественнее.

#AI #DDD #kettlebells


Всем привет!

Технические новости проекта - "Русский мах"

Число пользователей выросло до 100 DAU. Число скачиваний > 1000.

Наконец-то вывел PWA приложение, но пока какой-то косяк с метриками. Стандартные метрики не работают, а прикрутить Яндекс Метрики, чтобы они работали как App метрика не удалось (пока).

Для реализации PWA купил доменное имя и хостинг VPS. Все закупил в timeweb, для экспериментов хватит.

Чтобы вывести PWA и Landing Page для приложения настроил Coolify. И это технология, которая значительно облегчает жизнь! Очень понравилось, берет на себя развертывание и выпуск сертификатов через Lets Encrypt, построен вокруг docker-compose, по факту вы получаете комнантый PaaS. Расскажу о нем в отдельном посте.

URLки:
Landing - https://russian-kettlebells.ru
PWA = https://app.russian-kettlebells.ru

Впереди монетизация приложения. Есть пара мыслей как немного отбить хостинг.

Интересно дальнейшая информация о проекте?

#kettlebells #android #russian_kettlebells


Прочитал замечательную книгу Ицхака Адизеса «Развитие лидеров». После ее прочтения захотелось пересмотреть и первую часть — «Идеальный руководитель».

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

Эта же книга («Развитие лидеров») очень запала мне в душу. По его классификации (PAEI) я больше всего — «p-Ei» (ну либо с маленькой очень «a»). И его описание людей с ярковыраженным E очень точно бьет в цель.

Точно могу сказать, что команды, где я работал вместе с ярко выраженным A, были более сбалансированы и мы чаще всего добивались хороших результатов. А вот проекты, где были только E и P, терпели крах. Но может это никак и не связано (:).

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

Знакомы с теорией Адизеса? Применяли ее? И кто вы по ее классификации?

#TeamLead #management


Видео недоступно для предпросмотра
Смотреть в Telegram
Немного креатива от нас с дочкой.
Дочка предложила сделать рекламу приложения. Идея и тексты - полностью ее, я немного подшлифовал видео. :)


Definition of Ready: как не брать в работу «сырые» задачи

Сколько раз мы брали задачу в работу, а в середине ее разработки выясняли, что некоторая часть требований не описана, а API, с которым будем интегрироваться в процессе, еще не готов?

В итоге половина запланированного времени уходит на уточнения, описания и переделку того, что уже сделали (привет, миграции Liquibase!).

В таких случаях стоит внедрить в процессы команды практику Definition if Ready (DoR). DoR — это парная практика к Definition of Done, которую мы разбирали чуть раньше.


📉 Почему «начнём разбираться в процессе» — это налог на команду


Множество людей (и я в их числе :) считают, что можно взять задачу в работу даже в условиях высокой неопределенности. На практике это приводит к тому, что команда платит «высокий налог» на неопределенность:

⏱️ Постоянные уточнения вместо разработки.
⏱️ Частое переключение фокуса между задачей и согласованием.
⏱️ Увеличение числа переделок.
⏱️ Блокеры, которые можно было бы снять заранее.

В результате значительная часть времени работы команды уходит на выяснение требований и постоянные переделки.

Definition of Ready — это способ уменьшить этот налог.


🔄 DoR: что должно быть у задачи, прежде чем отдать ее в разработку

Definition of Ready — это четкий набор критериев, согласованный в команде, которым должна соответствовать задача, прежде чем ее возьмут в разработку.

DoR отвечает на вопрос: «Готовы ли мы начать работу над задачей прямо сейчас, не отвлекаясь на бесконечные уточнения?» Это фильтр на входе, который защищает команду от сырых и непроработанных задач.

Как и Definition of Done, DoR не должен содержать чек-лист из 50 пунктов. Это несколько, обычно 5–7 критериев, которые защищают от ключевых рисков. Вот некоторые универсальные критерии:

✅ Четкое описание — задача описана понятно, есть цель (в том числе и бизнес-цель), контекст и ожидаемый результат.

✅ Есть критерии приемки — четкие, проверяемые условия, по которым понятно, что задача сделана.

✅ Дизайн/макеты/API спецификация готовы — все, что нужно, доступно и согласовано.

✅ Технические зависимости закрыты: контракты API со смежными командами согласованы, доступы получены, архитектурное решение (если задача крупная) утверждено.

✅ Задача декомпозирована — размер задачи позволяет закрыть ее в рамках одной итерации.

Если хотя бы один из критериев DoR не выполнен, задача не готова к передаче в разработку. Она готова к обсуждению, спецификации и проектированию, но не к разработке.


📝 Важное уточнение: DoR — это ответственность команды, не только бизнеса

Частая ошибка — относиться к DoR как к требованию к бизнесу. Это не передача задачи от бизнеса в разработку.

Это командная работа — подготовить задачу так, чтобы она удовлетворяла критериям DoR. Требуется, чтобы бизнес описал потребность, архитекторы приняли решения о том, какие системы менять, а команда разработки заполнила детали реализации.


🛡 Как сказать «нет» задаче на планировании без конфликта

Здесь можно воспользоваться рекомендациями из поста про то, [как выдержать давление при оценках]. DoR — это легальный способ перевести эмоциональный разговор в процессный:

🔄 Смена фрейма — задача важная, но сейчас не закрыты все DoR-критерии, давайте вернем ее в бэклог и доработаем, чтобы защитить качество и сроки разработки.

🗣 «Да, и…» — да, мы готовы взять задачу в разработку, но для этого нам нужны макеты до среды. Если дизайн будет готов, то задача пойдет в работу на следующей неделе.

🎯 Вопрос-возврат — нам важнее закрыть бэклог на спринт или взять в работу задачу, которую реально доведем до продакшена?


💡 Вместо вывода


Definition of Ready — это не бюрократия, не способ загрузить бизнес бумажной и формальной работой. Это инвестиция в предсказуемость.

Команда, которая использует DoR:

✅ Меньше простаивает в ожидании ответов;
✅ Реже переделывает уже написанное;
✅ Точнее попадает в оценки;
✅ Сохраняет фокус и мотивацию
.
Начните с малого: выберите 3–4 самых критичных пункта DoR и попробуйте применять их.

#DoR #agile #scrum #processes #management #TeamLead #team


Всем привет!

Подготавливая следующую версию «Гиря – Русский мах», пришел в восторг от того, что изначально использование подходов из DDD для моделирования моей доменной области дало хорошее преимущество при использовании агентов для программирования.

Именно та часть приложения, которую я тщательно моделировал, в том числе с использованием Event Storming, претерпевает минимальные изменения. Да и расширение функций модели потребовало совсем мало времени и трудозатрат.

Для доменной модели использовал подход State Driven Domain Model. Очень хорошо подошел данный подход для реализации переходов между состояниями. Но нашел также и неприятный минус — если нужно добавить события, то столкнетесь с неразрешимыми противоречиями :(. Чуть позже напишу об этом.

Какую мысль хочу донести - использование DDD позволит писать код с помощью ИИ быстрее и качественнее.

#AI #DDD #kettlebells


Как поживает приложение:

- За полтора месяца - почти 600 установок и около 62000 просмотров страницы.
- Активных пользователей в день - около 50 человек
- Из них до конца тренировки доходит около 10!

Никакого продвижения нигде не использовал. Только органический трафик. Сам RuStore отлично продвигает новые приложения. Для сравнения в Google Play на той же дистанции показал мое приложение(не это, совсем другое) всего около 5 раз :)

Есть планы на расширение функционала!


Всем привет!

Куда я пропал?

Был в отпуске, да и на рабочем проекте сейчас самый завал, поэтому писать посты не хватает времени!

Хочу немного поэкпериментировать с форматом постов.
Будут как короткие посты, так и длинные.
Возможно, попробую формат видео - коротких и не очень.

Если вам зайдет какой-то из форматов ставьте 🔥 или пишите в комментарии.

Как у вас проходит лето?

Показано 20 последних публикаций.