Обновить
18
0.1
Юрий Павлов@sparhawk

Ведущий разработчик Java

Отправить сообщение

Разработка MCP-сервера на примере CRUD операций

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

Model Context Protocol (MCP) — это единый стандарт разработки API для сервисов, с которыми могут взаимодействовать LLM.

В этой статье на простом примере разберем, как создать свой MCP-сервер и как использовать его в связке с LLM.

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля

Читать далее

Ад туториалов сменился адом вайб-кодинга

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

Когда в 2019 году я начинал размышлять о проблемах обучения кодингу, нашим врагом номер один был «ад туториалов». Признаки попадания в этот ад:

• Вы успешно завершили кучу туториалов, но не можете создать ничего своего.

• Вы тратили больше времени на просмотр видео о кодинге, чем на само программирование.

• У вас имелось знание о многих технологиях на уровне флеш-карточек, но их внутреннее устройство было вам совершенно непонятно.

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

Глубокий курс обучения. Основы CS нужно преподавать не только в традиционных учебных заведениях.

Практическое освоение всего. Необходимо писать код; не только в проектах, но и интерактивно, в процессе изучения каждой концепции.

Меньше видео, больше текста. Видео слишком легко потреблять бездумно.

Повторюсь, что в 2019 году ад туториалов был повсеместным. Многочасовые курсы на YouTube собирали миллионы просмотров. Однако сегодня те же самые каналы с трудом набирают по пятьдесят тысяч просмотров нового контента. Посмотрите на FreeCodeCamp, Traversy Media и Web Dev Simplified. Я не пытаюсь бросить тень на эти каналы, они помогли куче людей, но их показатели сейчас именно таковы.

Читать далее

Свой прокси DNS сервер для обхода санкций зарубежных сайтов(с использованием VPS)

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

Безусловно, тема обхода ограничений изнутри страны сейчас актуальна. Но что делать, если нужно открыть сайты, которые заблокировали пул IP-адресов из РФ? Например, было интересно создать аналог DNS‑сервера вроде comss, который открывает доступ к заблокированным AI, игровым серверам и тому подобному, с чем не смогут помочь обходы DPI (Возможно, эксперты напишут замечания в комментариях).

Один из возможных способов, который получилось реализовать у меня, представлен ниже.

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

Для примера можно вспомнить Twitch, который заблокировал доступ к просмотру стримов в качестве 1080p и 1440p для пользователей из РФ.

Идём на страницу справки по бета‑тестированию качества 2k на Twitch и смотрим регионы, в которых оно доступно.

Читать далее

Что нужно знать перед переходом на Akka toolkit для реализации Event Sourcing и CQRS

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

Здравствуйте, уважаемые читатели Хабра. Меня зовут Рустем и я главный разработчик в казахстанской ИТ-компании DAR. В этой статье я расскажу, что нужно знать перед тем, как переходить на шаблоны Event Sourcing и CQRS с помощью Akka toolkit.


Примерно с 2015 года мы начали проектировать свою экосистему. После анализа и опираясь на опыт работы со Scala и Akka, решили остановиться на Akka toolkit. У нас были и удачные реализации шаблонов Event Sourcing c CQRS и не очень. Накопилась экспертиза в этой области, которой я хочу поделиться с читателями. Мы рассмотрим, как Akka реализует эти паттерны, а также какие инструменты доступны и поговорим о подводных камнях Akka. Надеюсь, что после прочтения этой статьи, у вас будет больше понимания рисков перехода на Akka toolkit.

Читать дальше →

Ни одного лишнего блюра: хардкорная оптика IDE для тех, кто пишет код десятилетия подряд

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

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

Читать далее

Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…

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


Реактивное программирование в Java — полезный инструмент со множеством применений. Его суть в асинхронной обработке поступающих сообщений, и есть несколько вариантов реализации этого механизма.


И Java в целом, и Spring Framework в частности подразумевают несколько аспектов реактивного программирования. Это касается Spring WebFlux в качестве замены Spring MVC. Также можно использовать Project Reactor в Java непосредственно, без Spring Framework. Однако Spring предоставляет средства декларативного определения функции Spring Cloud Function и средства интеграции приложений с использованием внешних очередей в рамках проекта Spring Cloud Stream. В комплексе эти средства позволяют широко использовать реактивное программирование, упрощая создание, размещение, масштабирование и обслуживание приложений.


Помимо создания новых приложений, Spring Cloud Function/Stream позволяют модифицировать и существующие приложения, облегчая жизнь разработчикам в реализации горизонально масштабируемых сервисов.


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

Читать дальше →

Spring Modulith: достигли ли мы зрелости модульности

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

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

Однако минусы микросервисов настолько огромны, что это все равно, что отрубить себе правую руку, чтобы научиться писать левой; есть более управляемые (и менее болезненные!) способы достижения того же результата.

Даже с тех пор, как началось повальное увлечение микросервисами, возобладали некоторые более хладнокровные. В частности, Оливер Дротбом, разработчик среды Spring, долгое время был сторонником альтернативы moduliths. Идея состоит в том, чтобы сохранить монолит, но спроектировать его вокруг модулей.

Многие выбирают микросервисы, потому что приложение, над которым они работают, напоминает блюдо со спагетти. Если бы их приложение было лучше спроектировано, притяжение микросервисов не было бы таким сильным.

Читать далее

Spring Modulith: проверяем границы модулей в монолите и события домена

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

Привет, Хабр!

Еще в C++20 появилась явная поддержка модулей в языке. Интересно, но в Java тоже давно искали похожее решение для упорядочивания больших монолитных проектов. Spring предлагает свой ответ – проект Spring Modulith, цель которого дать разработчику инструмент для построения модульного монолита. Он не делает всю работу, но помогает структурировать код по модулям, проверять архитектурные правила и организовывать взаимодействие между этими модулями.

Читать далее

Java Digest #28

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

Всем привет! 👋👋👋👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

Соскучились по AoT-компиляции? Даже если нет, упоминаний о ней не избежать. Java 25, Spring 7, Spring Boot 4, Gradle 9.0.0, Intellij IDEA 2025.2, Amplicode 2025.2, что-то релизнулось, что-то только собирается, но обо всем уже нашли статьи и собрали для вас. 

А теперь к громким новостям. Нидерландские ученые убили SQL — именно так мог бы звучать заголовок к научной статье о том, как 2,5 млн строк кода на PL/SQL переводили на Java с помощью LLM.

Читать далее

Java Digest #23

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

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин, Константин и Роман. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске будет много релизов, один из них — новый майлстоун Spring 7.0.0, а еще — новые версии Quarkus и Kora. Снова узнаем, как сделать Spring быстрее, вспомним старые хорошие доклады в новом формате и посмотрим на фичи Java 24 на примере крестиков-ноликов.

Читать далее

Состояние Spring в 2024 году

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

Команда Spring АйО перевела важнейший документ для Spring-разработчиков!

В начале июня компания VMWare, владеющая Spring, опубликовала результаты исследования, в котором приняло учатие более 1,500 разработчиков по всему миру. Отчёт получился действительно интересным и всеобъемлющим. Были рассмотрены как базовые темы, такие как выбор архитектурных подходов и типов API, так и продвинутые, такие как компиляция в Native Image и использование Spring вместе с Kubernetes.

Читать далее

Spring-потрошитель: жизненный цикл Spring Framework

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

Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.

Но насколько хорошо вы знакомы с жизненным циклом фреймворка? Наверняка вы сталкивались с проблемами поднятия контекста и освобождением ресурсов при его остановке, когда проект разрастается. Сегодня я попытаюсь наглядно показать вам это.

Читать далее

Что нового в JUnit 6: ключевые изменения и улучшения

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

Спустя восемь лет после JUnit 5 выходит новая версия популярного фреймворка. JUnit 6 — это не просто обновление, а переход к современной экосистеме Java и Kotlin. В новом переводе от команды Spring АйО узнаем, что новая версия требует Java 17+, унифицирует версии компонентов, удаляет deprecated API и внедряет поддержку JSpecify для строгого null-safety.

Читать далее

Много спрашиваю и откладываю встречи на последний момент: мой опыт прохождения собеседований

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

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

Привет! Меня зовут Ярослав, я бэкенд-разработчик в компании «Синимекс» и ревьюер на курсе «Java-разработчик» в Яндекс Практикуме. Я расскажу, как проходил первые собеседования и что помогло мне получить офферы после двух интервью из трёх.

Читать далее

Использование Redis в инфраструктурных микросервисах

Время на прочтение7 мин
Охват и читатели20K
В 2019 году я писал о том, как создать хранилище событий, основанное на Redis. Я рассказывал о том, что потоки Redis хорошо подходят для организации хранения событий, так как они позволяют хранить события с использованием иммутабельного механизма, напоминающего журнал транзакций, поддерживающего только присоединение новых данных к уже имеющимся, но не изменение существующих данных. Теперь же, используя обновлённое приложение OrderShop, речь о котором шла в вышеупомянутом материале, я хочу продемонстрировать пример использования Redis для организации работы очереди событий, продолжая рассказывать о возможностях применения Redis Enterprise, выходящих за пределы кеширования.


Читать дальше →

Что значит «хороший вкус» в разработке ПО?

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

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

Читать далее

Транзакционная работа с топиками: архитектура и сравнение решений в Apache Kafka и YDB Topics

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

Привет, Хабр! Меня зовут Алексей Николаевский, и мы с командой делаем СУБД Яндекса. С 2013 года в Яндексе использовали Kafka для потоковой передачи данных. Но Kafka со временем перестала справляться с растущими объёмами, и в 2017 году мы перешли на своё решение.

Брокер сообщений YDB Topics во многом вдохновлялся Kafka: в нём также есть топики, партиции и аналогичные способы работы с данными. Но есть и существенные отличия, о которых в конце прошлого года я рассказал на московской конференции HighLoad. Под катом — адаптированная для Хабра статья по мотивам этого доклада: про архитектуру транзакций в обеих системах и интересные для разработчиков детали и нюансы, которые мы обсуждали на конференции.

Читать далее

Apache Pulsar как основа для системы очередей

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

Меня зовут Агалецкий Павел, я старший инженер в команде Архитектуры. Эта статья про новую для нас в Авито технологию — Apache Pulsar и построение системы очередей, Queues as a Service, на её основе.

Читать далее

Как я обнаружил в ноутбуке Dell Inspiron баг ACPI, одолевавший меня восемь лет

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

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

В течение восьми лет такой была реальность моего взаимодействия с Dell Inspiron 5567. Этот необъяснимый баг возникал в каждой установленной ОС. В статье я расскажу историю о том, как погрузился в исходный код прошивки и обнаружил единственную команду-виновницу.

Читать далее

Почему асинхронный Python не такой популярный?

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

Недавно на Youtube появилась документалка о Python. Примерно в середине ленты есть драматический эпизод о том, как переход от Python 2 к 3 разделил сообщество (спойлер: в конечном итоге этого не случилось).

Первые версии Python 3 (3.0-3.4) в основном делали упор на стабильность и упрощение перехода пользователей с версии 2.7. В 2015 была выпущена версия 3.5 с новой фичей: ключевыми словами async и await для выполнения корутин.

Миновало десять лет и девять релизов, через считанные недели выпустят финальную версию Python 3.14.

Пока все отвлеклись на фичи разноцветного REPL в 3.14, в release notes появились серьёзные заявления, связанные с конкурентностью и параллелизмом.

Читать далее

Информация

В рейтинге
4 306-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность