Обновить
52.71

Проектирование и рефакторинг *

Реорганизация кода

Сначала показывать
Порог рейтинга
Уровень сложности

А как насчёт дрейфа?

Время на прочтение4 мин
Охват и читатели4.3K

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

Читать далее

Новости

ИИ-агент сказал «сделано». Но сделал ли он на самом деле?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.6K

На прошлой неделе Хабр опубликовал материал о том, как компании платят до 300 000 рублей в месяц за «скрытый аутсорс» задач в ChatGPT. История получила резонанс — но обсуждение ушло не туда. Говорили о доверии, об этике, о трудовом договоре.

Никто не спросил о главном: а как вы вообще проверяете, что задача была выполнена — агентом или человеком? И была ли она выполнена вообще?

В открытом демо-пайплайне dcl-eval-pipeline-demo я показала, как аудировать поведение агентов на практике. Теперь разберём, почему это критично и как построить полноценный слой верификации — вплоть до готового инструмента, который можно скачать и запустить прямо сейчас.

Это не риторический вопрос. Это архитектурная дыра, которая сейчас присутствует практически в каждой агентной системе. Называется она fabricated execution — ситуация, когда агент возвращает результат, не выполнив задачи, или выполнив что-то принципиально другое, оформив под видом запрошенного.

Что такое DCL?

Skaro — AI-оркестратор полного цикла разработки

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели14K

Всем привет!

Некоторое время назад я опубликовал статью о своём опыте AI-кодинга и поделился рабочими практиками. В комментариях нашёл много полезного — в частности, упоминания методологии SDD.

Это натолкнуло меня на идею: собрать инструмент, который позволяет управлять и автоматизировать процесс разработки, основанной на спецификациях и контроле генерации кода. Я приступил к реализации — очень плотно и почти без сна за все эти дни o_O.

Основная идея проста: разработчик формирует спецификации, ИИ генерирует код. Принципы — не терять и не размывать контекст, контролировать структуру и качество кода.

Читать далее

Тест-кейсы из функциональных требований

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.9K

Пользовательское требование описывает, что нужно пользователю. Критерии приёмки — фиксируют, как это проверить. Но между «что нужно» и задачей в Jira — пропасть. Чтобы её закрыть, я пишу функциональные требования — с use case'ами, из которых тестировщик может собрать тест-кейсы, а разработчик — понять ожидаемое поведение системы.

Читать далее

Как ускорить тесты проекта в 6 раз: от 10 минут к 101 секунде

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.2K

Почти 800 тестов, 10 минут на прогон, каждый пуш — ожидание на CI. Знакомо? Рассказываю, как довёл время до 101 секунды: снижение таймаутов, параллелизм ScalaTest, shared Testcontainers и защита от регрессий. Scala, SBT, PostgreSQL, GraalVM — конкретные шаги и подводные камни.

Читать далее

Паттерны проектирования

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели13K

Маленькая шпаргалка для тех, кто хочет понять что это и как называется. Изначальная цель написания - предоставить заинтересованным лицам краткую справку и возможность более эффективно воспользоваться поисковыми системами. Здесь перечислены как классические паттерны и антипаттерны проектирования от банды четырёх (GoF), так и прочие общепринятые.

Читать далее

Когда 200+ бэкенд-разработчиков меняют 400 микросервисов: зачем нужно архитектурное ревью

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели11K

Что будет, если больше 200 бэкенд‑разработчиков запускают по 2–3 новых проекта в неделю в более чем 400 микросервисов, написанных на пяти разных языках — C++, Go, Python, Java и PHP? Ответ хорошо знаком любому, кто сталкивался с быстрорастущей распределённой системой: хаос появляется быстрее, чем успеваешь его отлавливать. И в какой‑то момент становится очевидно, что нужна надёжная точка контроля, чтобы поддерживать архитектуру в рабочем состоянии.

В Яндекс Еде этой точкой стало архитектурное ревью — процесс, который постепенно вырос из локальной инициативы в полноценный инструмент управления сложной системой. В этой статье я расскажу, как эволюционировало архревью, какие инсайты появились по пути и как этот процесс выглядит сегодня.

Читать далее

Чистая архитектура — красивая сказка для собеседований

Время на прочтение2 мин
Охват и читатели6.8K

В процессе поиска работы я изучил множество вакансий, и в подавляющем большинстве среди обязательных требований значились знание паттернов проектирования, принципов SOLID и прочих «столпов» правильной архитектуры.

На собеседованиях меня нередко просили не просто рассказать о SOLID, а буквально расшифровать каждую букву и объяснить её смысл.

Всё это формирует у кандидата вполне логичное ожидание: раз требования такие высокие, значит и кодовая база у работодателя должна быть аккуратной, продуманной и соответствующей этим принципам. Однако в реальности это часто оказывается иллюзией.

Читать далее

Часть 3: Архитектура нейросети для распознавания голосовых команд

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели5.7K

def get_features_all(y, sr):
"""
Получаем различные параметры аудио которые в сумме дадут уникальный набор признаков
"""
# Частота цветности
chst = librosa.feature.chroma_stft(y=y, sr=sr)
# Среднеквадратичные колебания (энергия сигнала)
rmse = librosa.feature.rms(y=y)
# Пересечения нуля (частота смены знака сигнала)
zcr = librosa.feature.zero_crossing_rate(y)
# Центр масс звука (спектральный центр)
spe_c = librosa.feature.spectral_centroid(y=y, sr=sr)
# Ширина полосы частот
spe_b = librosa.feature.spectral_bandwidth(y=y, sr=sr)
# Спектральный спад частоты
rol = librosa.feature.spectral_rolloff(y=y, sr=sr)
# Значимые для обработки частоты (MFCC)
mfcc = librosa.feature.mfcc(y=y, sr=SR, n_mfcc=50,
n_mels=50, hop_length=1024)
return chst, rmse, zcr, spe_c, spe_b, rol, mfcc

Читать далее

Если вы умеете делать хороший code review, вы умеете работать с AI-агентами

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели13K

AI‑инструменты часто делают одно и то же: они выбирают слишком тяжёлое решение там, где достаточно простого. Ценность человека — в инженерном суждении: распознать плохую архитектуру, остановить усложнение, выбрать более простой путь, держать систему в здравом состоянии.

Читать далее

Разработка архитектуры приложения с использованием слоёв, подслоёв и архитектурных блоков

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.3K

В статье «Пример описания многослойной архитектуры, основанной на использовании наборов подслоёв и иерархии моделей данных» рассмотрен подход к построению многослойной архитектуры приложения с использованием трёх слоёв и девяти подслоёв.

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

Анализируя типовой функционал приложения можно выделить 9 основных архитектурных блоков.

Читать далее

Код стал шумом, а джуны — обузой: как ИИ перестраивает ИТ-индустрию и где теперь точка сборки

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.8K

Мы привыкли думать, что главным узким местом ИТ-разработки является capacity — количество рук, способных перевести бизнес-требования в рабочий код. Долгие годы индустрия строила "фабрики фич" и масштабировала пирамиду разработчиков. Но генеративный ИИ сломал эту физику.

Сегодня производство артефакта (кода, лендинга, дизайна) стремится к нулю по стоимости. Кодинг перестает быть рычагом конкуренции: он коммодитизируется и больше не ограничивает ни рынок, ни организацию. Объем кода и скорость коммитов превращаются в шум — они больше не коррелируют с ценностью продукта.

Если код стал дешевым, куда сместился дефицит? И почему ИИ, способный написать любую систему, никогда не станет в ней полноценным CEO?

Возьмёт ли ИИ на себя роль принимающего ре

От микроменеджмента до автопилота: 4 стадии рефакторинга AI-кода на примере десктопного приложения

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели14K

Реддит и Хабр забиты историями о том, как кто-то «написал приложение за вечер с помощью ChatGPT, вообще не зная программирования». Маркетологи называют это вайбкодингом — ты просто описываешь свои намерения, а ИИ выдает готовый продукт.

Я проверил, и вот мой спойлер: на масштабе чуть большем, чем программа на 500 строк, это не работает.

Август 2025 года. Мне понадобилась утилита со сложной логикой: конвертер выгрузок Telegram (JSON) в чистый текст для LLM. Проект десктопный, с GUI, графиками и парсингом. Вместо того чтобы писать код руками, я провел эксперимент: стать техлидом для связки актуальных на тот момент моделей (Claude 4.0 + Gemini 2.5 + Cursor).

Я заранее дал им архитектуру. Они собрали первый MVP. А затем, чтобы этот «MVP» (нет) не сложился как карточный домик через неделю, мне пришлось четырежды инициировать глобальный рефакторинг, потратить 40 часов на борьбу с галлюцинациями вокруг Matplotlib и разгребать цикличные зависимости.

Эта статья — рефлексия и разбор полётов. Это история о том, почему в 2026 году главный навык инженера — это умение видеть деревья за лесом и вовремя сказать ИИ: «Нет, твоя архитектура никуда не годится, всё переделываем».

Читать далее

Ближайшие события

Инженерия данных: паттерны проектирования

Время на прочтение5 мин
Охват и читатели9.5K

Приветствуем вас, Хабр.

В течение минувшего года мы серьёзно прорабатывали тему инженерии данных (Data Engineering), поскольку остались очень довольны читательским интересом к вышедшей у нас книге «Основы инженерии данных: как создавать надёжные системы обработки данных» Джо Риса и Мэтта Хоусли (оригинал — издательство "O'Reilly"). В январе вышла её допечатка.

Кроме того, у нас уже переведена и ушла в редактуру более продвинутая книга, также от O'Reilly, написал которую Бартош Конечны (Bartosz Konieczny); она называется «Data Engineering Design Patterns: Recipes for Solving the Most Common Data Engineering Problems».

Читать далее

KMP, XCode и 5% мазохистов: как мы писали AI-агентов на 4 платформы

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели11K

Все говорят, что AI заменит разработчиков. Я решил зайти с другой стороны — написать AI-агента, который заменит пользователей. Альфа версию для macOS уже зарелизил.

Послдение полгода работали с коллегой над двумя приложениями, одно десктопное (по ссылке выше), другое на 4 платформы — android, ios, web, backend. Много чего повидали, хочу поделиться опытом.

Дисклеймер. Статья содержит последствия массового использования expect/actual, сцены жестокого обращения с XCode и эпизоды длительного ожидания нотаризации на релизных сборках под OSX. Не рекомендуется лицам, планирующим запуск KMP-проекта на несколько платформ без предварительной консультации с психотерапевтом.

Читать далее

Как я перестал «вайбкодить» с LLM и собрал процесс разработки, который не разваливает проект

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели43K

Я использую LLM в повседневной разработке уже больше года и довольно быстро упёрся в типовую проблему: модель генерирует “красивый код”, но по мере роста проекта появляется дублирование, разъезжается стиль, растёт число заглушек и отладка становится дорогой. В статье покажу процесс, который мне помог: как разделять контекст по чатам, какие артефакты требовать на каждом шаге и какими чек-листами я проверяю результат.

Читать далее

Пользовательское требование — точка входа в документацию

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5K

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

Читать далее

Как построить карту вызовов REST-API из JSON с помощью PlantUML: автоматизация архитектурных зависимостей

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.2K

Проблема: никто не знает, кто кого вызывает

В 2012 году биржевой брокер Knight Capital потерял $460 миллионов за 45 минут.
Причина — активация устаревшего модуля, который начал массово размещать ордера.
Отчёт SEC указал на ключевую ошибку:

Читать далее

Как не отвлекаясь делать свою задачу Мой личный опыт

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели7.2K

Привет всем! И Это я мне 16 лет создал свой продукт FocusMind, который не отвлекаясь делал целый месяц сам. Это секрет успеха в создание моего проекта!

Успех — это достижение поставленных целей, получение желаемого результата, признание обществом или ощущение личного счастья и самореализации.

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

Совет от меня. Это личный опыт!...

Стать лучше чем вчера

ADR, архитектурные тесты и кейсы из прода: ресурсы, которые реально меняют код

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.2K

У меня была привычка. Вижу классную статью про архитектуру —-сохраняю. Репозиторий с примерами DDD - в закладки. Видео про CQRS - в плейлист «Посмотреть потом».

Вы знаете, чем кончаются плейлисты «Посмотреть потом».

В какой-то момент закладок стало 300+. Половина ссылок битые, треть дублируют друг друга, остальное - статьи, которые казались гениальными в два часа ночи. Я сел и вычистил всё до 106 ресурсов. Собрал их в awesome-list на GitHub.

Но статья не про список. Статья про три вещи, которые я для себя открыл в процессе и которые почему-то мало обсуждают.

Читать далее
1
23 ...