🎬 Как ИИ ускоряет разработку и где ломаются архитектуры
Мы провели открытый вебинар, где разобрали реальные боли проектирования автономных систем. Ольга Лукьянова на практическом кейсе показала, как использовать ИИ-ассистентов для реальных задач. Вы просили запись встречи — она уже в открытом доступе!
Что внутри:
— Как с помощью ИИ быстрее разбираться в незнакомом коде и готовить пулл-реквесты;
— Критерии выбора между одним агентом и мультиагентной системой;
— Разбор популярных архитектурных ошибок и ограничений современных ИИ;
— Практические рекомендации по проектированию и внедрению облачных агентов.
👉 Посмотреть полную запись можно тут:
● VK
● YouTube
🚀 Хотите пойти дальше открытого вебинара? Если вы готовы перейти от простых промптов к проектированию надежных, отказоустойчивых ИИ-систем, которые не сливают бюджет компании на API, приходите на курс AgentOps. Поток уже стартовал, но двери еще приоткрыты!
👉 Успеть на курс AgentOps
Мы провели открытый вебинар, где разобрали реальные боли проектирования автономных систем. Ольга Лукьянова на практическом кейсе показала, как использовать ИИ-ассистентов для реальных задач. Вы просили запись встречи — она уже в открытом доступе!
Что внутри:
— Как с помощью ИИ быстрее разбираться в незнакомом коде и готовить пулл-реквесты;
— Критерии выбора между одним агентом и мультиагентной системой;
— Разбор популярных архитектурных ошибок и ограничений современных ИИ;
— Практические рекомендации по проектированию и внедрению облачных агентов.
👉 Посмотреть полную запись можно тут:
● VK
● YouTube
🚀 Хотите пойти дальше открытого вебинара? Если вы готовы перейти от простых промптов к проектированию надежных, отказоустойчивых ИИ-систем, которые не сливают бюджет компании на API, приходите на курс AgentOps. Поток уже стартовал, но двери еще приоткрыты!
👉 Успеть на курс AgentOps
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Напишите метод для production-кода 👇
📦 Задание
Реализуйте метод, который строит индекс «email → пользователь»:
public Map<String, User> indexByEmail(List<User> users) {
// Ваша реализация
}📋 Требования
— На вход может прийти null или пустой список → вернуть пустую Map.
— В списке встречаются пользователи с одинаковым email → при дубле оставить последнего (и обоснуйте политику).
— email может быть null → такие записи пропускать.
— Порядок итерации сохранять.
Ставьте → 🔥, если нравится формат. Если нет → 🤔
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤1👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14💯5👍3🔥1
🔥 Хот-тейк на вечер
Твой Service-слой — это карго-культ, а «доменная модель» — мешок сеттеров- Контроллер → Сервис → Репозиторий, @Entity с голыми полями, вся логика в *ServiceImpl. Знакомо? Поздравляю: ты пишешь процедурный код и уже лет 15 называешь это ООП.
Мартин Фаулер записал anemic domain model в антипаттерны ещё в 2003-м. Поведение должно жить внутри сущности (Rich Model), а не в стопке сервисов, которые дёргают её сеттеры снаружи.
Но стоит затащить бизнес-логику в JPA-сущность и ты женишь домен на Hibernate, ловишь LazyInitializationException где не ждал и молишься на detached-состояния.
Так за кем правда?
Анемичная модель = здоровый прагматизм и чистое разделение слоёв. Или мы просто разучились в ООП и прикрываемся «так исторически сложилось».
Пишите, за кого топите 👇
🐸 Библиотека джависта
#DevLife
Твой Service-слой — это карго-культ, а «доменная модель» — мешок сеттеров- Контроллер → Сервис → Репозиторий, @Entity с голыми полями, вся логика в *ServiceImpl. Знакомо? Поздравляю: ты пишешь процедурный код и уже лет 15 называешь это ООП.
Мартин Фаулер записал anemic domain model в антипаттерны ещё в 2003-м. Поведение должно жить внутри сущности (Rich Model), а не в стопке сервисов, которые дёргают её сеттеры снаружи.
Но стоит затащить бизнес-логику в JPA-сущность и ты женишь домен на Hibernate, ловишь LazyInitializationException где не ждал и молишься на detached-состояния.
Так за кем правда?
Анемичная модель = здоровый прагматизм и чистое разделение слоёв. Или мы просто разучились в ООП и прикрываемся «так исторически сложилось».
Пишите, за кого топите 👇
#DevLife
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👏1😁1
🔧 Магия kubectl
Под рестартится каждые 5 минут, а kubectl logs показывает только текущий инстанс? Добавьте --previous, и вы увидите логи предыдущего упавшего контейнера — именно там обычно лежит причина крэша.
🔹 Зачем это нужно
— При CrashLoopBackOff текущий контейнер пустой, он только стартовал и ещё ничего не записал.
— Логи предыдущего контейнера хранятся до следующего рестарта, окно для отладки есть.
— Без этого флага вы буквально смотрите не туда.
🔹 Как использовать
— Логи предыдущего контейнера:
— Конкретный контейнер в мультиконтейнерном поде:
— Последние 50 строк:
— Следить за логами в реальном времени:
— Логи всех подов деплоймента сразу:
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise
Под рестартится каждые 5 минут, а kubectl logs показывает только текущий инстанс? Добавьте --previous, и вы увидите логи предыдущего упавшего контейнера — именно там обычно лежит причина крэша.
🔹 Зачем это нужно
— При CrashLoopBackOff текущий контейнер пустой, он только стартовал и ещё ничего не записал.
— Логи предыдущего контейнера хранятся до следующего рестарта, окно для отладки есть.
— Без этого флага вы буквально смотрите не туда.
🔹 Как использовать
— Логи предыдущего контейнера:
kubectl logs pod-name --previous— Конкретный контейнер в мультиконтейнерном поде:
kubectl logs pod-name -c sidecar --previous— Последние 50 строк:
kubectl logs pod-name --previous --tail=50— Следить за логами в реальном времени:
kubectl logs -f pod-name— Логи всех подов деплоймента сразу:
kubectl logs deploy/my-app --all-containers══════ Навигация ══════
Вакансии • Задачи • Собесы
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
🔥 Открытое занятие по AgentOps — курс стартовал!
Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое может прийти каждый. Оцените пользу нашего подхода на ретрансляции урока в VK!
👨💻 Спикер: Андрей Носов
Тема: Архитектура управления: state machine для AI-агентов
Будем разбираться, как использовать State machine в качестве главного оружия против стохастики (непредсказуемости) LLM.
Что в программе:
● State machine: инварианты и терминальные состояния;
● Паттерны маршрутизации: Supervisor, ReAct, Plan-and-Solve;
● Детекция циклов и настройка аварийных выходов;
● Абстракция от модели: как сделать каркас, который переживет смену LLM/провайдера;
● Адаптация графов под ограничения локальных моделей;
● Версионирование графов и миграции стейта.
Результат занятия: Вы поймете, как спроектировать надежный каркас агента с жестким контролем исполнения и переходов.
👉 Подписывайтесь на нашу группу ВКонтакте, чтобы не пропустить старт трансляции!
Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое может прийти каждый. Оцените пользу нашего подхода на ретрансляции урока в VK!
👨💻 Спикер: Андрей Носов
Тема: Архитектура управления: state machine для AI-агентов
Будем разбираться, как использовать State machine в качестве главного оружия против стохастики (непредсказуемости) LLM.
Что в программе:
● State machine: инварианты и терминальные состояния;
● Паттерны маршрутизации: Supervisor, ReAct, Plan-and-Solve;
● Детекция циклов и настройка аварийных выходов;
● Абстракция от модели: как сделать каркас, который переживет смену LLM/провайдера;
● Адаптация графов под ограничения локальных моделей;
● Версионирование графов и миграции стейта.
Результат занятия: Вы поймете, как спроектировать надежный каркас агента с жестким контролем исполнения и переходов.
👉 Подписывайтесь на нашу группу ВКонтакте, чтобы не пропустить старт трансляции!
1👍1
Распределяет клиентские запросы между серверами, выбирая их по алгоритму, чтобы равномерно распределять нагрузку, избегать перегрузок и обеспечивать стабильную работу системы.
Он получает запрос, перенаправляет его на сервер, принимает ответ и отправляет его обратно клиенту.
Это увеличивает пропускную способность, снижает задержки и оптимизирует использование ресурсов.
Работают как посредники между клиентами и серверами, обрабатывая запросы и передавая данные, скрывая серверы и повышая их безопасность.
Они обеспечивают контроль за сетевым трафиком, снижая риски атак и угроз.
Дополнительно, они могут кэшировать контент для уменьшения нагрузки на сервер, сжимать данные для ускорения передачи и управлять SSL/TLS-шифрованием, разгружая веб-серверы.
Работают как единая точка входа для всех API-запросов, направляя их к нужным микросервисам и собирая результаты.
Они упрощают взаимодействие клиентов с разными сервисами, добавляют защиту, применяют правила, переводят между веб-протоколами и агрегируют данные.
Идеально подходят для работы с микросервисной архитектурой.
══════ Навигация ══════
Вакансии • Задачи • Собесы
#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥3👏1
🔐 Spring Security: хватит бояться, пора настраивать
Все мы рано или поздно упираемся в Spring Security и обычно это выглядит как «добавил стартер, всё сломалось, ничего не понятно».
В новой статье на Хабре практика с самого нуля:
▪️ поднимаем проект на Spring Boot + PostgreSQL в Docker Compose
▪️ смотрим, что Security делает «из коробки»: дефолтный логин, редиректы, сгенерированный пароль
▪️ пишем свою сущность User с ролями и разбираем каждый метод UserDetails. Зачем нужны isAccountNonLocked, isEnabled и прочие «непонятные» методы
▪️ реализуем UserDetailsService — ту самую точку входа, без которой фреймворк вообще не знает о ваших пользователях
Уровень — простой, время — ~9 минут. Идеально, если только начинаете разбираться в безопасности Spring-приложений или хотите наконец понять, что происходит под капотом.
🔗 Подробнее
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise
Все мы рано или поздно упираемся в Spring Security и обычно это выглядит как «добавил стартер, всё сломалось, ничего не понятно».
В новой статье на Хабре практика с самого нуля:
▪️ поднимаем проект на Spring Boot + PostgreSQL в Docker Compose
▪️ смотрим, что Security делает «из коробки»: дефолтный логин, редиректы, сгенерированный пароль
▪️ пишем свою сущность User с ролями и разбираем каждый метод UserDetails. Зачем нужны isAccountNonLocked, isEnabled и прочие «непонятные» методы
▪️ реализуем UserDetailsService — ту самую точку входа, без которой фреймворк вообще не знает о ваших пользователях
Уровень — простой, время — ~9 минут. Идеально, если только начинаете разбираться в безопасности Spring-приложений или хотите наконец понять, что происходит под капотом.
══════ Навигация ══════
Вакансии • Задачи • Собесы
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥3❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20❤🔥1😢1💯1
Middle Backend Developer (Kotlin/Java) — удалёнка — ДжазТим
Middle Java Software Engineer — офис (Алматы) — Kaspi kz
Senior Java разработчик — удалёнка/гибрид/офис (Москва) —Азиатско-Тихоокеанский банк
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1👏1
Forwarded from Библиотека задач по Java | тесты, код, задания
Антипаттерн использования Optional:
Anonymous Quiz
13%
Возвращать Optional из метода, который может не дать результат
60%
Использовать как тип поля сущности и параметр метода
6%
Применять map/flatMap для трансформации
11%
Использовать orElseGet для ленивого дефолта
10%
Посмотреть ответ
👍5🔥1👏1
Метод бросил исключение, ты ждёшь rollback, а в БД лежат наполовину применённые изменения. Скорее всего, исключение было checked:
@Transactional
public void process() throws BusinessException {
repo.save(a);
if (bad) throw new BusinessException("..."); // checked
repo.save(b);
}
По умолчанию Spring откатывает транзакцию только на RuntimeException и Error. На любом checked-исключении (наследники Exception, кроме RuntimeException) транзакция коммитится. Это не баг, а наследие декларативных транзакций из EJB.
Два пути:
// 1) явно расширить условие отката
@Transactional(rollbackFor = Exception.class)
// 2) или сделать доменные исключения unchecked
public class BusinessException extends RuntimeException { ... }
Проверь свои сервисные методы, которые бросают checked-исключения внутри @Transactional — там часто прячется молчаливый частичный коммит.
══════ Навигация ══════
Вакансии • Задачи • Собесы
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏1
🔥 ИИ-выходные: Собери своего AI-агента за 2 дня
Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков.
Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами.
🛠️ Как всё пройдет:
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!)
Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде.
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места ограничены!
👉 Изучить программу и занять место
Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков.
Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами.
🛠️ Как всё пройдет:
День 1 (Суббота): разбираем анатомию агента, подключаем инструменты (shell, GitHub, Postgres) и дебажим трейсы.
День 2 (Воскресенье): собираем собственного агента под вашу задачу, настраиваем Eval + Guardrails (чтобы бот не галлюцинировал) и проводим демо.
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!)
Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде.
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места ограничены!
👉 Изучить программу и занять место
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16👍4💯3🌚2
🤨 Как заставить AI-агента не ломать архитектуру, а нормально писать код?
Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD).
Вот как этот подход меняет работу агента на практике:
🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти.
🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией.
🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ.
Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы — оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂
Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD).
Вот как этот подход меняет работу агента на практике:
🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти.
🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией.
🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ.
Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы — оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂
Media is too big
VIEW IN TELEGRAM
🔥 Не называйте любого продвинутого чат-бота «ИИ-агентом»!
Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях.
Что внутри видео:
- Почему ассистент и агент принципиально разные сущности;
- Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему;
- Как понимать архитектуру глубже, чтобы проектировать сильные решения.
Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска.
🔗 Забрать бесплатный демо-урок
Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях.
Что внутри видео:
- Почему ассистент и агент принципиально разные сущности;
- Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему;
- Как понимать архитектуру глубже, чтобы проектировать сильные решения.
Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска.
🔗 Забрать бесплатный демо-урок
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Нагрузка выросла, latency пополз вверх, потом OutOfMemoryError 👇
📦 Задание — code review
Сервис обрабатывает входящие события асинхронно.
@Configuration
public class ExecutorConfig {
@Bean
public ExecutorService eventExecutor() {
return Executors.newFixedThreadPool(10);
}
}
@Service
@RequiredArgsConstructor
public class EventService {
private final ExecutorService eventExecutor;
public void handle(Event event) {
eventExecutor.submit(() -> process(event));
}
}
▪️ Объясни
— Какая очередь стоит за Executors.newFixedThreadPool и почему она опасна под нагрузкой.
— Почему задачи бесконтрольно «копятся» и система падает в OutOfMemoryError, а не начинает отбрасывать нагрузку.
— Как собрать ThreadPoolExecutor руками: ограниченная очередь, RejectedExecutionHandler, backpressure. Чем плох и newCachedThreadPool в этом сценарии.
Ставьте → 🔥, если нравится формат. Если нет → 🌚
#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤1👍1👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19💯3👍1
🐳 Магия Docker CLI
Собрали образ и он весит 2 ГБ, а вы не понимаете, откуда столько? docker history покажет размер каждого слоя — сразу видно, какая инструкция в Dockerfile раздула образ.
🔹 Зачем это нужно
— Каждая инструкция в Dockerfile создаёт слой, и docker history показывает размер каждого.
— Сразу видно, если COPY затянул 800 МБ зависимостей.
— Помогает оптимизировать порядок слоёв для лучшего кэширования.
🔹 Как использовать
— Посмотреть слои:
— Без обрезки команд:
— Только размеры в human-readable:
— Сравнить два образа: запустите history для обоих и сравните слои.
💡 Если видите большой слой от COPY . . — значит, в контекст сборки попали модули, .git или логи. Проверьте dockerignore, это обычно экономит сотни мегабайт.
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise
Собрали образ и он весит 2 ГБ, а вы не понимаете, откуда столько? docker history покажет размер каждого слоя — сразу видно, какая инструкция в Dockerfile раздула образ.
🔹 Зачем это нужно
— Каждая инструкция в Dockerfile создаёт слой, и docker history показывает размер каждого.
— Сразу видно, если COPY затянул 800 МБ зависимостей.
— Помогает оптимизировать порядок слоёв для лучшего кэширования.
🔹 Как использовать
— Посмотреть слои:
docker history my-image— Без обрезки команд:
docker history --no-trunc my-image— Только размеры в human-readable:
docker history --format "{{.Size}}\t{{.CreatedBy}}" my-image— Сравнить два образа: запустите history для обоих и сравните слои.
══════ Навигация ══════
Вакансии • Задачи • Собесы
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👏2
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»!
Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.
Старт уже завтра!
Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!
Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой.
🔗 Пройти демо-урок и занять место на курсе
Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.
Старт уже завтра!
Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!
Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой.
🔗 Пройти демо-урок и занять место на курсе
❤1👍1
List без @OrderColumn в Hibernate — это bag, неупорядоченное мультимножество. Попытка вытащить две bag-коллекции одним JOIN FETCH роняет приложение ещё на старте:
org.hibernate.loader.MultipleBagFetchException:
cannot simultaneously fetch multiple bags
В интернете 280+ апвоутов у ответа «замени List на Set». Исключение он действительно убирает, но лечит симптом, а не причину.
Суть проблемы в том, что JOIN FETCH двух коллекций порождает декартово произведение строк (N×M). С Set Hibernate просто дедуплицирует это в памяти → SQL-результат всё равно раздут, и на больших коллекциях это деградация, а не решение.
Правильно — грузить максимум одну коллекцию за запрос. Persistence Context гарантирует, что в рамках сессии сущность загружается в единственном экземпляре, поэтому две коллекции можно безопасно дотянуть двумя отдельными запросами / @EntityGraph, или через @BatchSize / subselect-fetch.
Бонус про bag: при изменении bag-коллекции (особенно с join-таблицей без собственного PK) Hibernate нередко делает DELETE всех строк коллекции и INSERT заново вместо точечного INSERT. Ещё один аргумент не использовать bag для изменяемых связей.
══════ Навигация ══════
Вакансии • Задачи • Собесы
#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🤔5👍3🔥1