ИТ блог, про Управление разработкой, Управление командой, Управление проектом, Управление продуктом, Саморазвитие, Архитектура - все это ежедновно на канале.
Молодые и опытные TeamLead’ы и руководители тимлидов найдут на канале много полезного.
ИТ блог, про Управление разработкой, Управление командой, Управление проектом, Управление продуктом, Саморазвитие, Архитектура - все это ежедновно на канале.
Молодые и опытные TeamLead’ы и руководители тимлидов найдут на канале много полезного.
🏗️ Domain-Driven Design (DDD): проектирование от предметной области
DDD — подход Эрика Эванса (2003), в котором первичным источником проектных решений выступает не технология, а предметная область: бизнес, ради автоматизации которого существует система. Главный принцип: код должен говорить на языке домена. Если эксперт называет процедуру «приостановкой обслуживания», в коде должен быть метод suspendService, а не updateStatus(flag=3).
Подход делится на два уровня. Стратегическое проектирование отвечает на вопрос, из каких частей состоит система: единый язык, ограниченные контексты, карта контекстов, поддомены. Тактическое — как моделировать внутри одного контекста: сущности, объекты-значения, агрегаты, репозитории, доменные события. Распространённая ошибка — начинать с тактики без стратегической работы: тактика без стратегии почти бесполезна, а стратегия без тактики уже приносит значительную часть пользы.
Деление поддоменов на core / supporting / generic работает как инвестиционная карта проекта: в ядро — лучшие разработчики и глубокое моделирование, поддерживающие домены — достаточное качество, стандартные для отрасли вещи (аутентификация, email, биллинг) — покупаются готовыми.
💡 DDD окупается при трёх условиях одновременно: сложный домен с правилами и инвариантами, долгоживущая система и постоянный доступ к экспертам. Не выполнено хотя бы одно — выгоднее более лёгкий подход: для CRUD и короткоживущих MVP тактический DDD становится структурой без содержания.
🔗 https://agaltsovav.ru/docs/architecture/ddd/
«Agaltsov Anton | TeamLead-блог» - канал из категории «Блоги», подключенный к сервису кросспостинга MaxGate. Публикации канала синхронизируются между Telegram и мессенджером MAX, а на этой странице собраны ссылки на обе версии канала.
Сейчас у канала 1 006 подписчиков суммарно в Telegram и MAX. За последние 18 дней в истории MaxGate учтено 36 публикаций, поэтому перед подпиской можно оценить не только размер аудитории, но и регулярность обновлений.
Чтобы подписаться, используйте кнопки «Открыть в MAX» и «Открыть в Telegram» в верхней части страницы. У отдельных постов ссылка может быть доступна в обоих мессенджерах или только в одном из них, если MaxGate получил такой URL из истории обработки.
02.0805.0808.0811.0814.0817.0819.08
Число постов
3
2
0
13.0814.0815.0816.0817.0818.0819.08
🤖 AI-Driven Development: код пишет AI, человек отвечает за спецификации
AIDD — методология разработки, в которой основную ответственность за генерацию кода, тестов и документации несёт AI-модель. Человек смещается на уровень выше: пишет спецификации, принимает архитектурные решения и валидирует результат. AI при этом — не надстройка над привычным процессом, а самостоятельный производитель кода.
Отправная точка — разведение трёх режимов работы с AI. AIAD (AI-Assisted): за код отвечает человек, AI лишь помогает подсказками. AIDD (AI-Driven): код генерирует AI, а человек организует контекст и проверяет вывод. Vibe Coding: код создаётся «на вайбе», без спецификаций и тестов — именно этот режим порождает проблемы, которые AIDD призвана решить.
Ключевой принцип: вокруг AI выстраивается та же инженерная дисциплина, что и вокруг любого другого источника кода — спецификации, тесты, ревью, контроль версий и фиксация архитектурных решений.
⚠️ Цена вопроса высока: без дисциплины GitClear фиксирует восьмикратный рост дублирования кода, а DORA — плюс 9% дефектов. AIDD ускоряет разработку и повышает качество, только если команда готова нести накладные расходы на методологию.
🔗 https://agaltsovav.ru/docs/ai/aidd/
📦 Lean Canvas и Business Model Canvas: бизнес-модель на одном листе
Канва — одностраничный шаблон из пронумерованных блоков, в которых команда фиксирует ключевые предположения о продукте: кого обслуживаем, какую проблему решаем, какую ценность предлагаем, через какие каналы доходим до клиента и как зарабатываем. Принцип «одна страница — одна модель» заставляет отсекать второстепенное: если модель не помещается на лист, она либо не продумана, либо слишком сложна для первой проверки.
У инструмента два происхождения. Business Model Canvas Остервальдера описывает модель девятью блоками и адресован зрелым компаниям. Lean Canvas Эша Морийи — адаптация для стартапов: блоки про инфраструктуру (партнёры, ресурсы) заменены блоками про риск (проблема, решение, метрики, несправедливое преимущество).
💡 Ценность канвы не в том, что она «правильная», а в том, что она делает предположения видимыми и проверяемыми. Это черновик стратегии, а не сама стратегия: красиво записанная гипотеза остаётся гипотезой до проверки через Discovery.
Главный риск — выбор канвы не по стадии: Lean Canvas теряет партнёрства и ресурсы зрелого бизнеса, а BMC маскирует главные риски раннего стартапа за инфраструктурными блоками.
🔗 https://agaltsovav.ru/docs/product-managment/lean-canvas/
🤖 Параметры LLM: temperature, top_p и seed меняют ответ сильнее, чем кажется
LLM вероятностны по своей природе: на каждом шаге генерации модель строит распределение вероятностей по всему словарю и выбирает из него следующий токен. Параметры инференса — temperature, top_k, top_p, штрафы за повторения, seed — управляют именно этим выбором, не меняя саму модель.
Одна и та же модель с разными параметрами ведёт себя как разные системы: temperature = 0 даёт жёсткий детерминизм для извлечения фактов, JSON и бенчмарков, значения выше 1 — разнообразие ценой связности и роста галлюцинаций. Фраза «используем модель X» без указания параметров ничего не говорит о качестве ответов.
💡 top_p (nucleus sampling) адаптивнее top_k: круг кандидатов сужается, когда модель уверена, и расширяется, когда вероятность размазана. Практическая связка — temperature + top_p, без выкручивания всех ручек одновременно.
seed не гарантирует воспроизводимость между бэкендами и версиями модели: различаются реализации сэмплинга, численные типы и batching на GPU. Для строгого детерминизма фиксируют и seed, и temperature = 0 — и всё равно проверяют на целевом окружении.
Здоровый подход — минимализм и измеримость: менять как можно меньше параметров, обосновывать каждое изменение метрикой и фиксировать значения в конфигурации как часть контракта между моделью и продуктом.
🔗 https://agaltsovav.ru/docs/ai/llm-parameters/