Чашечка Java
8.57K subscribers
3.88K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
🔍 QCon London 2025: Главные итоги первого дня

Первый день QCon London 2025 порадовал обсуждениями о продуктивности разработчиков, платформенной экосистеме и локальных приложениях. Главный доклад о данных из космоса представил д-р Кеннет Харрис, разбирая работу инфракрасного излучения в телескопе Джеймса Уэбба.

Подробности: https://www.infoq.com/news/2025/04/day-one-qcon-london-2025/

#en

@a_cup_of_java | Другие наши каналы
GRASP: почему настоящая архитектура начинается не с SOLID

Хочу начать с личной предыстории.
Давным-давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.

Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.

Безусловно, это всё важные и фундаментальные вещи.

Но однажды на горизонте появилось DDD — предметно-ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.

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

Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает?

Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты-значения, спецификации, фабрики и т.д. — но не учит проектировать саму предметную область.

Складывалось ощущение, что мы это уже откуда-то должны были знать.
А откуда — остаётся загадкой.


Читать: https://habr.com/ru/articles/900140/?utm_campaign=900140

@a_cup_of_java | Другие наши каналы
❤‍🔥3🔥1
Разработка навыка Яндекс Алисы для удалённого управления компьютером

В этой статье будет показано, как разработать навык для Яндекс Алисы, позволяющий удалённо управлять компьютером. Для реализации мы будем использовать языки Kotlin и Java.

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


Читать: https://habr.com/ru/articles/900450/?utm_campaign=900450

@a_cup_of_java | Другие наши каналы
👍2👎1
Тест: Какой язык программирования тебе подходит

Пройди наш квиз и проверь, какой язык программирования тебе подходит больше всего. Проверь свои текущие знания и выбирай новое направление!

Читать: «Тест: Какой язык программирования тебе подходит»

@a_cup_of_java | Другие наши каналы
🔍 Новинки Java: важнейшие обновления на апрель 2025

Обзор свежих релизов: WildFly 36, который поддерживает MicroProfile 7.0, Spring AI 1.0 с модульной архитектурой, и бета Open Liberty. Также новости Jakarta EE с подготовкой к выпуску новой платформы. Узнайте больше об изменениях и нововведениях в мире Java!

Подробности: https://www.infoq.com/news/2025/04/java-news-roundup-apr07-2025/

#en

@a_cup_of_java | Другие наши каналы
Тестируем JEP 491 вместе с Деном Вегой

Один из девелопер адвокатов Spring Framework, Ден Вега, на днях написал пост в одну запрещенную соцсеть, в котором изучал работу JEP 491 - Synchronize Virtual Threads without Pinning. Внезапно, эффект от JEP обнаружен не был, и автор предложил выяснить почему.

Эксперт сообщества Spring АйО, Александр Шустанов, не остался в стороне и выяснил где тут зарыта собака.


Читать: https://habr.com/ru/companies/spring_aio/articles/900930/?utm_campaign=900930

@a_cup_of_java | Другие наши каналы
Как должен выглядеть правильный Docker Image для Spring Boot приложения?

Когда мы упаковываем Spring Boot-приложение в Docker-образ, важно не только обеспечить его запуск. Нам нужен такой образ, который поможет понять причины проблем: падений, тормозов и других сбоев.

В новой статье от эксперта сообщества Spring АйО, Александра Шустанова, выясним, какие нештатные ситуации могут возникнуть, какие инструменты пригодятся для диагностики и как собрать образ, в котором всё это учтено.


Читать: https://habr.com/ru/companies/spring_aio/articles/901302/?utm_campaign=901302

@a_cup_of_java | Другие наши каналы
👍2
@teqfw/di: Coding JavaScript like a Java boss

Эта статья для тех, кто, как и я, хочет программировать на JavaScript в Java-стиле. Для тех, кто находит вдохновение в балансе между строгой архитектурной дисциплиной Java и творческой свободой JavaScript. Ранее я уже публиковал "философию" своей платформы TeqFW, а также инструкции для LLM (раз, два) по оформлению es-модулей в приложениях, написанных в стиле TeqFW. На этот раз я делюсь инструкцией для LLM по использованию внедрения зависимостей в таких приложениях.

Для тех, кто не совсем понимает, что значит "программировать на JavaScript в Java-стиле", приведу рабочий пример — это Node.js-утилита @flancer64/smtp-logger. Она сохраняет в базу данных все email'ы, которые Postfix отправляет наружу. Мне как раз понадобился такой функционал — и я реализовал его в стиле TeqFW: с явным управлением зависимостями и строгой модульной структурой.

Под катом - пример JS-кода в Java-стиле.


Читать: https://habr.com/ru/articles/901678/?utm_campaign=901678

@a_cup_of_java | Другие наши каналы
Как написать приложение на JavaFX: гид для начинающих

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


Читать: https://habr.com/ru/companies/skillfactory/articles/901850/?utm_campaign=901850

@a_cup_of_java | Другие наши каналы
Pro-code, Low-code, и роль Camunda

Pro-code — наше сердце и душа, но люди и процессы бывают разными. Наши необязательные low-code-функции расширяют спектр применений, не мешая разработчикам.

Разработчики часто спрашивают меня о стратегии развития продуктов Camunda. Особенно во время запуска Camunda 8 они выражали обеспокоенность тем, что мы якобы «забыли свои корни» или «отказались от удобства для разработчиков» — именно те качества, за которые нас любят. Появилось мнение, что мы «прыгнули в поезд low-code», потому что у нас теперь есть финансирование и мы хотим «гнаться за большими деньгами». Как разработчик в душе, я могу вас уверить — это совсем не так. Позвольте объяснить нашу стратегию в этом посте.

TL;DR: Мы остаёмся на 100% дружелюбными к разработчикам, и pro-code — это наше всё (можно сказать, наш хлеб с маслом). Но люди, создающие процессные решения, бывают разными — как и сами процессы, которые нужно автоматизировать. Для некоторых сценариев low-code действительно имеет смысл, и здорово, что мы можем их поддерживать. Но low-code-функции в Camunda являются необязательными и никак не мешают pro-code-разработке.


Читать: https://habr.com/ru/articles/902036/?utm_campaign=902036

@a_cup_of_java | Другие наши каналы
От идеи к успеху: как создать популярное мобильное приложение

Кирилл Васильев, руководитель кластера кросс-функциональных команд в RuStore, рассказывает, как создать популярное приложение.

Читать: «От идеи к успеху: как создать популярное мобильное приложение»

@a_cup_of_java | Другие наши каналы
JDBC: Как Java научилась дружить с Базами Данных

Представьте, что вы — гид в огромном городе под названием «Базы Данных». Ваша задача — помочь Java-приложениям найти нужную информацию, обновить данные или создать новые таблицы. Но как «разговаривать» с разными СУБД, если у каждой свой язык? Здесь на помощь приходит JDBC — универсальный переводчик, который знает все диалекты.


Читать: https://habr.com/ru/companies/otus/articles/902240/?utm_campaign=902240

@a_cup_of_java | Другие наши каналы
Обновления OpenJDK: новые функции и изменения

В OpenJDK произошло множество изменений: восемь новых JEP достигли статуса кандидатов, в том числе функции для упрощения начального обучения Java и оптимизации многопоточности. Также представлена временная рамка для релиза JDK 25, который запланирован на сентябрь 2025 года.

Подробности: https://www.infoq.com/news/2025/04/jdk-news-roundup-apr14-2025/

#en

@a_cup_of_java | Другие наши каналы
Cтатья про собеседования в Яшу (Yandex Weekend Offer)

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

Коротко о себе: 41 год, senior software developer, стаж > 20 лет. Однако, как я понял, эти собесы все равно для всех одинаковые, так чтоб все написанное актуально и для молодежи.

Итак, угораздило меня согласиться на т. н. «Weekend Offer на позицию разработчика на Kotlin». Вообще‑то мне больше нравится Scala, и опыта по ней гораздо больше, но рекрутерша была сильно настойчива, и я решил обновить экспиренс, а возможно, и прибавку в деньгах. И вот что было дальше.


Читать: https://habr.com/ru/articles/902854/?utm_campaign=902854

@a_cup_of_java | Другие наши каналы
32🔥1🆒1
Как подготовиться и пройти System Design Interview

System Design Interview — пожалуй, один из самых «бесформенных» этапов технического собеседования. Здесь важно не найти единственно верное решение, а продемонстрировать системное мышление, умение работать с абстракциями, логически выстраивать архитектуру и аргументированно делать выбор технологий.

Александр Кучук, эксперт сообщества Spring АйО, подготовил авторскую статью, в которой шагом показывает, как структурировать интервью, какие вопросы задавать, как рассуждать и что оценит интервьюер.

Кстати, Александр ведет репозиторий с заметками: https://github.com/qcha/JBook


Читать: https://habr.com/ru/companies/spring_aio/articles/903542/?utm_campaign=903542

@a_cup_of_java | Другие наши каналы
1👍1👎1🔥1
📰 Новая Java-платформа для оркестрации систем

LittleHorse — это платформа с открытым исходным кодом, созданная для упрощения оркестрации распределенных систем. Она помогает управлять состоянием и координацией микросервисов, внешних API и человеческими задачами. Разработчики могут создавать программы на Java, Go, Python и других языках, не прибегая к специализированным DSL.

Подробности: https://www.infoq.com/news/2025/04/littlehorse/

#en

@a_cup_of_java | Другие наши каналы
OpenIDE: первая российская среда разработки с поддержкой Java 24

Наконец-то состоялся официальный релиз OpenIDE – независимой российской среды разработки, которую совместно создают «Группа Астра», Axiom JDK и Haulmont.

Проект стартовал как open source-инициатива в конце прошлого года и всего за полгода прошёл путь от идеи до стабильной версии. В числе ключевых фич — поддержка Java 24 уже "из коробки", собственный маркетплейс плагинов и "многоязычность".

В статье — ключевые достижения, проблемы, а также планы по развитию OpenIDE и её экосистемы.


Читать: https://habr.com/ru/companies/spring_aio/articles/903856/?utm_campaign=903856

@a_cup_of_java | Другие наши каналы
👍4🙈3🤣1
Обходим подводные камни работы с UDA в коде на Lua для ScyllaDB: дружим Java-драйвер и пустые значения

Привет, Хабр! Мое имя Александр Коваль, я разработчик IoT-сервисов в МТС Web Services. Сейчас ScyllaDB поддерживает ограниченное количество функций, в том числе агрегационных. В стандартном наборе: min, max, count, avg. Но ее функциональность расширяется двумя типами пользовательских функций: скалярными (scalar functions) и агрегационными (aggregate functions). Первые работают со значениями одной строки, а вторые — нескольких. Реализовать такие функции можно на Lua или Rust.

В процессе работы с агрегационными функциями можно столкнуться с тем, что ScyllaDB и Java-драйвер по-разному обрабатывают пустые значения. В этом посте я расскажу, как это можно решить относительно просто и без сложных дополнительных телодвижений. Для примера возьму код на Lua и покажу, как он реализуется в виде функции ScyllaDB.

Дисклеймер: этот материал написан на основе личного опыта — все решения получены методом проб и ошибок. Конструктивные предложения и советы по их улучшению приветствуется. Код с примерами и ссылки на ресурсы можно найти у меня в репозитории GitHub.


Читать: https://habr.com/ru/companies/ru_mts/articles/902544/?utm_campaign=902544

@a_cup_of_java | Другие наши каналы
Spring Boot: создайте свой собственный CLI с помощью Spring Shell

Команда Spring АйО перевела статью о создании собственного интерфейса командной строки  в Spring Boot приложении. Статья выполнена в форме туториала и приводит все необходимые разработчику простые шаги для первоначального освоения Spring Shell.


Читать: https://habr.com/ru/companies/spring_aio/articles/903864/?utm_campaign=903864

@a_cup_of_java | Другие наши каналы
День 2 на QCon London 2025: ИИ и будущее технологий

На QCon London 2025 обсудили будущее ИИ и цифровых помощников. Ключевые темы: как дизайн влияет на успех продуктов и основа безопасности ИИ-ассистентов. Отмечена высокая эффективность WebAssembly в сравнение с традиционными подходами.

Подробности: https://www.infoq.com/news/2025/04/day-two-qcon-london-2025/

#en

@a_cup_of_java | Другие наши каналы
Forwarded from Типичный программист
This media is not supported in your browser
VIEW IN TELEGRAM
Делаем учебник из любого GitHub-репозитория

Вышла прикольная тулза — Tutorial-Codebase-Knowledge. Она превращает любой репозиторий в пошаговый гайд: LLM анализирует код, находит ключевые компоненты и связи, а потом объясняет, как всё устроено и зачем.

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

#инструменты
🔥9👍3