Spring event bus. Гарантия выполнения метода после коммита транзакции.

Сегодня коротко поговорим про Spring Event Bus и разберем одну задачку. Недавно столкнулся с ситуацией - есть некий общий функционал, который вызывается из совершенно разных роутов. Сами роуты обернуты в транзакцию.

Этичный вайбкодинг: Как создавать AI-решения ответственно

Вайбкодинг (vibe coding) — это подход, при котором разработчик не пишет код построчно, а задаёт ИИ направление и общие параметры задачи на естественном языке, а модель генерирует решение . Это творческий, быстрый и демократичный способ создания ПО, где программист становится «дирижёром» .

ChatGPT, Claude и Gemini в 2026 году: сравнение ИИ-помощников для разработчиков

В этой статье вы узнаете, чем ChatGPT, Claude и Gemini принципиально отличаются друг от друга при работе с кодом. Мы разберём сильные и слабые стороны каждой модели и сравним их по ключевым техническим параметрам. И что самое важное - вы получите не готовый ответ на вопрос «какой инструмент лучше», а понимание того, в каких сценариях разработки уместнее использовать ту или иную модель.

Java и деньги

Главная проблема работа с деньгами в программировании заключается в том, что привычные нам десятичные дроби компьютер хранит в двоичной системе. Из-за этого 0.1 + 0.2 в double превращается в 0.30000000000000004.

Gstack: Как Гэрри Тан превращает вайб-кодинг в рабочий процесс

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

Промпт-инжиниринг для дизайна и кода: Как разговаривать с AI, чтобы он делал работу, а не мусор

Вы когда-нибудь просили нейросеть нарисовать «современный интерфейс для интернет-магазина» и получали нечто, напоминающее сайт 2010 года с кислотными цветами и непонятными кнопками? Или просили сгенерировать компонент на React, а AI выдавал код, который невозможно поддерживать, полный устаревших практик и багов? Это не «глупая нейросеть».

Циклическое кодирование времени для прикладных задач

Сегодня мы поговорим о простом, но действенном математическом способе преобразования данных о времени из линейного промежутка в окружность, имитирующую циферблат часов. Необходимость таких трансформаций появляется в тех случаях, когда алгоритму машинного обучения или разрабатываемому нами сервису важно понимать, что время в сутках идет по кругу и что разница в отметках (например, времени входа) 23:59 и 00:01 незначительная.

Git: как перенести проект на новый сервер без старой истории

При смене хостинга, передаче проекта заказчику или выходе в open source часто возникает необходимость перенести код в новый репозиторий. В этой статье мы рассмотрим, как сделать это чисто: обнулить историю коммитов и перенести на новый сервер только актуальное состояние проекта. Мы не будем использовать сторонние утилиты или сложные скрипты - задача элегантно решается стандартными средствами Git.

Strapi в эпоху AI-coding: почему dev-first CMS выигрывает

Традиционный CMS умирает медленно, но неотвратимо. WordPress вместе со своей монолитной архитектурой, которая одновременно хранит контент, рендерит HTML и управляет темами, становится всё менее привлекательным выбором для команд, которые думают о scale и гетерогенных клиентах — web, mobile, IoT, голосовые интерфейсы. Headless CMS решает эту проблему разрывом слоёв: бэкенд управляет контентом и отдаёт его через API, а фронтенд полностью свободен в выборе стека.

Именованное деструктурирование в Kotlin

Доброго дня! Сегодня поговорим об одной из экспериментальных фич Kotlin, а именно о деструктурировании. Проблема Деструктурирование в Kotlin - удобная вещь. Всё работает через сгенерированные методы componentN(), и синтаксис получается приятным: data class User(val name: String, val age: Int) val user = User("Max", 23) val (name, age) = user println("$name is $age years old") Но за этим удобством скрывается ловушка.

Микроанимация в интерфейсах: Как сделать цифровой продукт живым, понятным и комфортным

Представьте, что вы нажимаете на кнопку в приложении, и... ничего не происходит. Тишина. Кнопка даже не меняет цвет. Возникло ли ощущение, что вы сделали что-то не так? Или что приложение «зависло»? А теперь вспомните, как приятно, когда кнопка слегка «вдавливается» под пальцем, когда переключатель плавно скользит из положения «выкл» в «вкл», когда сердечко лайка пульсирует после нажатия.

Gitlab CI: запуск пайплайна при обновлении upstream-репозитория

Сегодня в этой небольшой заметке мы покажем пример файла .gitlab-ci.yml, который описывает пайплайн, осуществляющий какие-либо действия с нашим репозиторием в момент, когда в другом проекте выходит новая версия.

Эволюция инженера: как перейти в AI Engineering, не бросая всё, что вы умеете

В данной статье вы познакомитесь с основами AI Engineering и узнаете, с чего начать переход в эту область, если у вас уже есть опыт в классической разработке. Разберём базовые концепции — токены, эмбеддинги, температуру — и покажем, как они соотносятся с привычными инженерными понятиями. На простых примерах рассмотрим типизацию вывода языковых моделей, принципы работы агентов, паттерн RAG и основы управления состоянием. Главная идея: накопленные знания в области бэкенда, проектирования систем и паттернов проектирования не теряют своей ценности — они становятся фундаментом для работы с AI-инструментами. Статья не претендует на исчерпывающее руководство, но даёт отправную точку для тех, кто хочет сделать первые шаги в AI Engineering, опираясь на то, что уже умеет.

UX-тексты для новичков: Как писать интерфейсы, которые говорят на языке пользователя

Представьте: вы открываете приложение, чтобы удалить давно надоевшую подписку. Вы находите нужную кнопку... а на ней написано: «Деактивировать рекуррентный платёжный мандат». Что вы сделаете? Скорее всего, закроете приложение и подумаете: «Я слишком стар для этого».

Неоднозначные отношения Kotlin с Hibernate

Kotlin позиционируется как язык, который призван сделать жизнь Java разработчика счастливее. Код становится лаконичнее, Null-safety спасает от NPE, а стандартная библиотека - удовольствие. Но когда мы подключаем к этому котлу JPA-провайдер (например Hibernate), начинаются интересные сюрпризы.

Немного о porcelain и plumbing командах, а также о типах объектов в git

В данной статье рассмотрим специфику использования porcelain и plumbing команд в git, обратим внимание на их достоинства и недостатки, разберемся в типах объектов git и отметим несколько полезных малоизвестных команд

Astro.js: современный фреймворк для контент-ориентированных сайтов

Astro — это фреймворк для сайтов и веб-приложений, который по умолчанию рендерит большую часть страницы в статический HTML на сервере, а JavaScript подключает только там, где он действительно нужен. Такой подход называется islands architecture: основная часть страницы остается «легкой», а интерактивность добавляется небольшими изолированными фрагментами.

Введение в архитектуру ПО. Часть 1: Истинная ценность структуры и цена спешки

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

Анатомия письма: почему email-дизайн — это машина времени в 1999 год

Вы когда-нибудь пробовали применить display: flex или grid в коде письма? Если да, то вы знаете чувство глубокого разочарования, когда Gmail, Outlook или Yahoo решают, что ваш современный красивый макет должен выглядеть как стена текста, набранная на печатной машинке.
RSS (Opens New Window)(Opens New Window)
thumbnail Maxim Kalabukhov
Posts: 7
Date: 8/7/26
thumbnail Никита Рогаленко
Posts: 27
Date: 8/4/26
thumbnail Romo Fedoroff
Posts: 58
Date: 8/1/26
thumbnail Vadim Mikhu
Posts: 7
Date: 7/9/26
thumbnail Andrei Maksimov
Posts: 20
Date: 3/30/26
thumbnail Polina Napolskaya
Posts: 4
Date: 3/4/26
thumbnail Александра Пирс
Posts: 31
Date: 10/7/25
thumbnail Dmitry Afanasiev
Posts: 64
Date: 8/7/25
thumbnail Тимофей Перцев
Posts: 37
Date: 7/29/25
thumbnail Arseny Antonovich Konovalov
Posts: 1
Date: 6/25/25
thumbnail Daria Zuban
Posts: 12
Date: 3/7/25
thumbnail Marina Pashnina
Posts: 35
Date: 3/3/25
thumbnail Алексей Егошин
Posts: 17
Date: 1/13/25
thumbnail Дмитрий Сазонов
Posts: 61
Date: 12/6/24
thumbnail Nikolay Emchenko
Posts: 19
Date: 11/27/24
thumbnail Jonathan F. Keker
Posts: 6
Date: 11/7/24
thumbnail Andrey Karabanov
Posts: 2
Date: 10/31/24
thumbnail Evgenij Tsopa
Posts: 52
Date: 10/2/24
thumbnail Dmitry Sheshukov
Posts: 17
Date: 9/26/24
thumbnail Sviatoslav Osipov
Posts: 4
Date: 8/4/24
thumbnail Danil Khanalainen
Posts: 3
Date: 5/8/24
thumbnail Alexey Weiss
Posts: 17
Date: 5/7/24
thumbnail Денис Серянкин
Posts: 2
Date: 12/18/23
thumbnail Anna Ershova
Posts: 2
Date: 10/30/23
thumbnail Erik Karapetyan
Posts: 12
Date: 9/9/23
thumbnail Pavel Danilov
Posts: 12
Date: 9/9/23
thumbnail Maxim Zhukov
Posts: 152
Date: 6/20/23
thumbnail Vladislav Sivirin
Posts: 1
Date: 5/22/23
thumbnail Vadim Kholoshnia
Posts: 1
Date: 4/17/23
thumbnail И Горь
Posts: 27
Date: 2/20/23
thumbnail Dmitry Komarov
Posts: 2
Date: 6/2/22
thumbnail Semyon Gruzdev
Posts: 1
Date: 11/17/21
thumbnail Victor Scherbakov
Posts: 3
Date: 9/3/21
thumbnail Ivan Kayukov
Posts: 10
Date: 8/17/21
thumbnail Alexander Zhermal
Posts: 8
Date: 4/16/21
thumbnail Alexander Yarkeev
Posts: 42
Date: 12/23/20
thumbnail Alexey Pismak
Posts: 2
Date: 12/9/20
thumbnail Александр Исаев
Posts: 5
Date: 9/15/20
thumbnail Александр Пашнин
Posts: 25
Date: 9/10/20
thumbnail Danil Sinitskiy
Posts: 3
Date: 9/2/20
thumbnail Valeriy Urrievich Kireev
Posts: 26
Date: 1/15/20
thumbnail Vladimir Nikolaev
Posts: 14
Date: 12/30/19
thumbnail Ivan Uskov
Posts: 23
Date: 12/16/19
thumbnail Андрей Дьяков
Posts: 25
Date: 6/27/19
thumbnail Sergey Zhmylove
Posts: 45
Date: 3/14/18
thumbnail Lev Koznov
Posts: 18
Date: 7/14/17
thumbnail DEADBEEF
Posts: 1
Date: 1/16/17
thumbnail Никита Патрахин
Posts: 2
Date: 8/15/16
thumbnail Vladimir Berlev
Posts: 3
Date: 11/26/15
thumbnail Sergey Klyaus
Posts: 58
Date: 6/21/15
thumbnail Pakhom Golynga
Posts: 20
Date: 3/3/14
thumbnail Vladislav Sovinskiy
Posts: 11
Date: 1/10/14
thumbnail Konstantin Borzov
Posts: 7
Date: 6/20/13
thumbnail Anthony Dmitriev
Posts: 4
Date: 2/19/13
thumbnail Nicolay Smirnov
Posts: 6
Date: 5/2/12
thumbnail Alexander Deiter
Posts: 16
Date: 9/8/11
thumbnail Serge Klimenkov
Posts: 8
Date: 7/26/11
thumbnail Roman Ambrosenko
Posts: 3
Date: 1/18/11
thumbnail Sergey Shilin
Posts: 9
Date: 11/5/10
thumbnail Ruslan F. Isbarov
Posts: 1
Date: 3/31/10