Рубрика «java» - 2

Обычная история: пишешь плагин для своего Paper-сервера, он обрастает фичами, и в какой-то момент понимаешь, что половина логики нужна ещё и на Velocity-прокси. Приветствие игроков, общий конфиг, пара команд. И ты садишься писать всё второй раз, только под другое API. Через полгода чинишь один и тот же баг в двух местах и думаешь: а можно было не разводить две кодовые базы?

Можно. Подход называется multiloader: общая логика живёт в одном модуле, а под каждую платформу лежит тонкий адаптер. Разберём, как это устроено внутри, чем такой проект питается в 2026 году и на каких граблях я станцевал, пока собирал рабочий шаблон.

Читать полностью »

В японских боевых искусствах путь мастера описывают тремя иероглифами — 守破離 (Сю-Ха-Ри): сначала следуй форме, затем меняй её, а после перестань от неё зависеть. Нельзя ломать то, что ещё не успел освоить.

守 (Сю) — это про то, как, сохранив себя, достичь своей лучшей версии. При чём здесь RAG? Да при том, что, прежде чем рваться к агентным RAG и GraphRAG, надо разобраться с базой — довести до ума уже имеющиеся формы, чтобы получить качественную систему.

Поэтому эта статья — про «Сю» продвинутого RAG: как фундаментально поднять качество, не перепрыгивая ступени «навороченности» с неоправданным риском.

Читать полностью »

Как мы приручали SpeedyBot, потеряли к нему доступ и вернули контроль без отвёртки

В начале это выглядело как обычный интеграционный проект. У нас был большой четырёхколёсный робот‑доставщик SpeedyBot стоимостью как новый автомобиль. Главной задачей было отвязать его от китайского облака: оставить штатные навигацию и железо, но перенести управление, данные и операторский интерфейс в нашу Fleet‑систему. А затем научить робота самостоятельно ездить между точками в реальном парке и возвращаться на зарядку.

Читать полностью »

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

А теперь смотрим на 2026 год. Индустрия побежала писать AI-агентов и гейтвеи — и пишет их на Go или Rust. Нейронки генерируют код на Go лучше, чем почти на любом другом языке, потому что Go читается. Можно сказать, что язык оказался настолько тупым, чтобы снять пороги входа для LLM. И это, возможно, оказалось самой дальновидной ставкой в истории языков программирования.

Читать полностью »

Данная статья служит двум целям, быстро освежить знания по ООП и SOLID, а также полезно и весело по‑проектировать роботов с элементами игры средствами языка Java. Итак, Объектно‑Ориентированное Программирование (ООП).

Рассмотрим сначала основные четыре аспекта ООП:

  1. Абстракция

  2. Наследование

  3. Инкапсуляция

  4. Полиморфизм

Итак начнем проектировать наших роботов с учетом ООП.

Читать полностью »

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

Читать полностью »

Недавно я разбирал истории CVE, связанные с завершением поддержки Tomcat 8.5, и решил посмотреть на Spring Boot 3.5. Я задался тем же вопросом применительно к Spring Boot: что происходит с уровнем защищённости приложения, когда используемая версия достигает End Of Life (EOL)?

Слепая зона CVE

Обычно жизненный цикл уязвимости представляют так:

  1. Исследователь обнаруживает проблему.

  2. О проблеме сообщают разработчикам проекта.

  3. Уязвимости присваивают идентификатор CVE и оценку критичности.

  4. Разработчики выпускают исправление.

  5. Читать полностью »

Когда мы начинали строить продукт для распознавания и обработки первичных бухгалтерских документов — OCR, классификация, LLM‑извлечение полей, проверка человеком — казалось, что рынок оркестраторов уже всё решил: есть n8n для визуальных workflow, есть LangGraph для агентных пайплайнов, есть Temporal для durable‑исполнения. Мы попробовали примерить каждый — и в итоге написали свой: AgentsGraph, встраиваемую Java‑библиотеку декларативной оркестрации агентов. Ниже — почему.

Требование № 1: enterprise в private cloud, без внешних сервисов

Читать полностью »

Дисклеймер

Эта статья описывает архитектуру построения приложений на Java с помощью фреймворка Spring. Если вы используете другие языки программирования или фреймворки, возможно, вы также сможете найти соответствующие инструменты, подходящие именно вам.

Введение

Читать полностью »

Всем привет, меня зовут Михаил, я работаю Senior Java разработчиком в ОТП Банке.

Смотря на всю ситуацию на рынке, я подумал: хм, вот джуны притворяются мидлами и сеньорами и ходят по собесам. А что, если все будет наоборот?

Учитывая, что ситуация на рынке для джунов совсем плачевная, я решил провести эксперимент. 30 дней. Только я, фейковое резюме джуна, новый Telegram-аккаунт - и все!

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js