ru
Feedback
Чашечка Java

Чашечка Java

Открыть в Telegram

Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels

Больше
8 572
Подписчики
Нет данных24 часа
+47 дней
+130 день
Архив постов
Использование очередей (Queue/Deque) для решения алгоритмических задач на Java Как всегда, сначала немного базовой теории для понимания того, с чем мы имеем дело. Queue - однонаправленная очередь, представляет собой структуру данных, которая строится по принципу FIFO (first-in-first-out). Другими словами, чем раньше элемент был добавлен в коллекцию, тем раньше он оттуда будет удален. Выжимка по методам: Читать: https://habr.com/ru/articles/833444/?utm_campaign=833444 @a_cup_of_java | Другие наши каналы

Как войти в backend-разработку на Java Java популярна во многих сферах разработки, и одна из них — backend. Рассказываем, как начать изучать Java самостоятельно и войти в IT. Читать: «Как войти в backend-разработку на Java» @a_cup_of_java | Другие наши каналы

5 уроков локализации из разработки игры в Telegram Многие разработчики хотят, чтобы их продукт был доступен максимально широкому кругу пользователей. И локализация на языки целевой аудитории может достаточно положительно сказаться на её росте. Вряд ли в данной статье будет что-то новое для людей, которые собаку съели на локализации, однако постараюсь поделиться максимально полезными советы по реализации для тех, кто только начинает свой путь. Читать: https://habr.com/ru/companies/miip/articles/832950/?utm_campaign=832950 @a_cup_of_java | Другие наши каналы

Релиз Jmix 2.3: что нового? Эта статья рассказывает о ключевых обновлениях, которые были включены в недавно опубликованный релиз Jmix 2.3. Полные сведения об изменениях и советы по обновлению проектов можно найти в разделе документации Что нового. Читать: https://habr.com/ru/companies/haulmont/articles/833280/?utm_campaign=833280 @a_cup_of_java | Другие наши каналы

Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации В новом переводе от команды Spring АйО вы узнаете, как можно сгенерировать код HTTP клиентов для Spring Boot приложения по OpenAPI спецификации, используя плагин openapi-generator для Gradle. В статье вы найдете: 1. Пошаговую инструкцию по использованию openapi-generator для Gradle 2. Настройки для генератора, которые помогут оставить только нужный код 3. Пример конфигурации сгенерированных Spring-бинов Читать: https://habr.com/ru/companies/spring_aio/articles/833096/?utm_campaign=833096 @a_cup_of_java | Другие наши каналы

Разработка Java-проекта с ChatGPT-4: от идеи до реализации Как Java-методист с 15-летним опытом я решил проверить, как нейросеть ChatGPT-4 придумывает use cases, создает доменную модель и пишет программный код. Давайте посмотрим, способна ли эта большая языковая модель в ее текущей итерации заменить разработчика или, по крайней мере, упростить процесс разработки. Привет, Хабр! Меня зовут Игорь Судакевич, я преподаватель-практик Учебного центра IBS по программированию на языке Java. В начале 2024 года мой коллега из IBS уже делился собственным опытом создания базовой программы с помощью ChatGPT. В том эксперименте использовалась бесплатная модель 3.5, и мы получили множество комментариев из серии «А вы бы тоже самое провернули на последней версии модели — она всё делает в разы лучше!» Мол, и разработчики скоро будут никому не нужны. Читать: https://habr.com/ru/companies/ibs/articles/833034/?utm_campaign=833034 @a_cup_of_java | Другие наши каналы

Как положить приложение 21 запросом* к /actuator/health Уточнение для въедливых :) * 21 и более параллельным запросом в определённых условиях :) Привет, сегодня поговорим о подводных камнях использования виртуальных потоков в написанных на Java веб-приложениях. В статье описан случай из жизни, сперва поставивший в тупик, но оказавшийся не столь уж и запутанным, а причина и вовсе была известна и документирована. Читать: https://habr.com/ru/articles/832568/?utm_campaign=832568 @a_cup_of_java | Другие наши каналы

Поисковый запрос на баги в Apache Solr И вновь мы проверяем продукт Apache. На этот раз выбор пал на Solr — платформу поискового сервера с открытым исходным кодом. Благодаря Solr можно эффективно и быстро искать информацию в базах данных и на интернет-ресурсах. При решении такой сложной задачи очень легко допустить разнообразные ошибки, даже несмотря на огромный опыт разработчиков Apache. Именно такие ошибки мы рассмотрим в этой статье. Читать: https://habr.com/ru/companies/pvs-studio/articles/832842/?utm_campaign=832842 @a_cup_of_java | Другие наши каналы

Самый простой способ проверить работу веб-приложения под нагрузкой на примере JMeter и Grafana Привет, меня зовут Рамиль, я программист в отделе разработки серверных решений ЮMoney. В этой статье расскажу о своём эксперименте с нагрузочным тестированием с помощью JMeter, Grafana и Prometheus, а также покажу, как тестировал три сценария: с двумя, 10 и 100 запросами в секунду. Читать: https://habr.com/ru/companies/yoomoney/articles/832574/?utm_campaign=832574 @a_cup_of_java | Другие наши каналы

Поддержка AWS SDK для Java 1.x прекращается С июля 2024 года AWS прекращает обновления для SDK версии 1.x, ограничившись толь
Поддержка AWS SDK для Java 1.x прекращается С июля 2024 года AWS прекращает обновления для SDK версии 1.x, ограничившись только критическими исправлениями и обновлениями безопасности до конца 2025 года. Рекомендуем переходить на версию 2.x, которая предлагает улучшенные функции, производительность и поддержку. Подробности: https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-1-x-is-in-maintenance-mode-effective-july-31-2024/ #en @a_cup_of_java | Другие наши каналы

Spring Boot Starter: практически, принципиально и подробнее. Часть 3 Привет, Хабр! С вами снова Сергей Соловых, Java-разработчик в команде МТС Digital. Мы продолжаем изучать возможности и нюансы построения собственного Spring Boot Starter. В предыдущих частях мы разобрали структуру стартеров, автоконфигурацию и зависимости бинов. А сегодня давайте поговорим о параметрах приложения. Умение работать с файлами конфигураций позволяет избежать hard-coding-данных в коде библиотеки. Это делает ее более гибкой и легко конфигурируемой, это значит, что ее можно адаптировать под конкретные требования. С помощью параметров можно настроить контекст или изменить поведение сервиса. Начнем с рассмотрения нескольких способов интеграции параметров из файла конфигурации в код приложения. Читать: https://habr.com/ru/companies/ru_mts/articles/832468/?utm_campaign=832468 @a_cup_of_java | Другие наши каналы

Soft Assertions в AssertJ Бывало ли у вас такое, что тест падает на первом же assertion'e из десяти? Вы исправляете ошибку, запускаете тест снова, и он падает на втором assertion'e. И так десять раз. Выматывает, не так ли? На самом деле, есть способ ускорить этот процесс — использовать Soft Assertions. С их помощью тест выполнится полностью, даже если один или несколько assertion'ов упадут, и вы сразу увидите все ошибки. В новой статье от Михаила Поливахи, эксперта сообщества Spring АйО, вы узнаете, что такое Soft Assertions и как ими пользоваться. Читать: https://habr.com/ru/companies/spring_aio/articles/832432/?utm_campaign=832432 @a_cup_of_java | Другие наши каналы

«Java – это язык синих воротничков» Поговорили с Сергеем, ведущим Java-разработчиком Нижегородского подразделения «Криптонита». В интервью – о языке программирования Java, «синих воротничках», бесполезности pet-проектов и работе инженера в энтерпрайзе без прикрас. Сергей, расскажи, как именно ты пришёл к мысли изучать Java? Это забавная история. Все мальчишки в начале 90-х хотели компьютер для игр. Моим товарищам покупали «Спектрум», на котором игры были цветные. У моих родителей не было таких денег. Поэтому они, скрепя сердце, купили мне старый компьютер без модуля цветной псевдографики. Назывался он «Партнер 01.01», как сейчас помню. Читать: https://habr.com/ru/companies/kryptonite/articles/832274/?utm_campaign=832274 @a_cup_of_java | Другие наши каналы

Инверсия управления Контейнеров и паттерн Инъекции Зависимостей — перевод В основе сборки любых компонентов лежит общий шаблон того, как они выполняют прокидывание зависимостей, это концепция, которую разработчики называют очень общим именем Inversion of Control (IoC: инверсия контроля). В этой статье я углублюсь в то, как работает этот паттерн под более конкретным названием «Dependency Injection» (Инъекция зависимостей), и сравню его с альтернативой - Service Locator Читать: https://habr.com/ru/articles/832390/?utm_campaign=832390 @a_cup_of_java | Другие наши каналы

Автоматизация интеграционных и приемочных тестов с помощь 1001 велосипеда Современное приложение на Java с использованием Spring Boot, включающее множество клиентов (веб, десктоп, мобильные), может столкнуться с проблемами в тестировании по мере его роста. Даже при хорошем покрытии тестами (80%+), увеличение объема интеграционных и приемочных тестов может привести к значительным задержкам в процессе разработки. Тесты могут занимать до 24 часов для выполнения, что снижает эффективность и увеличивает риск багов в продакшене. Не знаю кто сказал, но вполне четко описывает процесс разработки Что делать ... кроме написания резюме в поисках более интересно проекта? Пробуем понять, где в авто тестах тормоза. И понимаем что все интеграционные и приемочные зависят либо от скорости тестера, либо от скорости отклика клиента во время авто-тестов. И то и то в сотни и тысячи раз медленнее вашего апи. После анализа ситуации остается одно: как-то все это автоматизировать, причем быстро и дешево. Ускорить тестировщика, без незаконных препаратов, мы не можем, как и сделать UI который будет работать без задержек, на скорости api (но можно постараться, но дорого...). Основные шаги для решения: Читать: https://habr.com/ru/articles/832270/?utm_campaign=832270 @a_cup_of_java | Другие наши каналы

Создание масштабируемых приложений при помощи Kafka и реактивного программирования Mahi Mullapudi Введение В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для распределённой потоковой обработки событий, особенно, если сочетать её с реактивным программированием. В данной статье будет рассказано, как создавать реактивные приложения при помощи этого инструментария. Читать: https://habr.com/ru/companies/piter/articles/831772/?utm_campaign=831772 @a_cup_of_java | Другие наши каналы

Использование алгоритма бинарного поиска для нахождения квадратного корня числа на Java Наткнулась на leetcode на задачку с нахождением квадратного корня из неотрицального числа. Кажется, что для решения такой задачки отлично подходит бинарный поиск, который по итогу даст нам логарифмическую временную сложность. Итак, условие задачи здесь: https://leetcode.com/problems/sqrtx/description/ Но прежде чем приступить к решению, пройдемся по теории, что такое бинарный поиск и как его использовать. Бинарный поиск - это поисковый алгоритм, который позволяет найти элемент в отсортированном массиве с логарифмической сложностью. Массив делится пополам, искомый элемент сравнивается с серединой массива, если искомый элемент больше, то поиск переходит в правую часть массива, и наоборот. После каждого перехода в правую или левую часть будет происходить сравнение серединного элемента с искомым до тех пор, пока он не будет найден. Акцентирую внимание еще раз: массив должен быть отсортирован по возрастанию. Если массив не отсортирован, то сортировка потребует минимум O(log n * n) временной сложности, что нужно учитывать. Поэтому, если массив небольшой и неупорядоченный, то, скорее всего, лучше будет линейный поиск со сложностью O(n). Итак, теперь вернемся к нашей задачке. Нужно найти квадратный корень из неотрицательного числа, где само число может быть любым от 0 до 231 - 1. Если корень из числа извлекается с остатком, например, корень из 8 это 2.82842…, то нужно округлить в меньшую сторону до целого, т.е. в данном случае до 2. Начнем, по порядку, ограничив краевые случаи. Так, если х = 0, то можно сразу вернуть 0. Читать: https://habr.com/ru/articles/832212/?utm_campaign=832212 @a_cup_of_java | Другие наши каналы

Java News Roundup: WildFly 33, Spring Cloud Data Flow, Apache TomEE, LangChain4j, Micronaut This week's Java roundup for July
Java News Roundup: WildFly 33, Spring Cloud Data Flow, Apache TomEE, LangChain4j, Micronaut This week's Java roundup for July 22nd, 2024 features news highlighting: the release of WildFly 33; Spring Cloud Data Flow 2.11.4; the second milestone release of Apache TomEE 10.0; LangChain4j 0.33; Micronaut 4.5.1; Eclipse Store 1.4; and an update on Jakarta EE 11. By Michael Redlich Read: https://www.infoq.com/news/2024/07/java-news-roundup-jul22-2024/ @a_cup_of_java | Другие наши каналы

К технологической сингулярности на примере Android продукта для смартчасов Приведенный выше кейс подтверждает принципиальную возможность успешного использования инструментов ИИ в создании ключевых артефактов софтверного проекта на всех стадиях его жизненного цикла – от ТЗ и кода до документации, что позволило прийти к высочайшей для команды скорости разработки ПО. И хотя машины пока не могут создавать новые машины (и запускать апокалипсис), но практические примеры создания программных решений ИИ с помощью раннее созданных инструментов ИИ мы видим очень эффективными. Узнать больше! Читать: https://habr.com/ru/articles/832050/?utm_campaign=832050 @a_cup_of_java | Другие наши каналы

Как синхронизировать потоки в Java Многопоточность — это не просто возможность приложения выполнять несколько задач одновременно, это его способность делать это эффективно и безопасно. В Java многопоточность неотделима от синхронизации, ведь именно она помогает управлять состоянием разделяемых ресурсов между потоками. Всё начинается с потребности в быстродействии и масштабируемости. C несколькими потоками можно обрабатывать больше операций одновременно. В этой статье мы рассмотрим, как синхронизировать потоки в Java. Читать: https://habr.com/ru/companies/otus/articles/830356/?utm_campaign=830356 @a_cup_of_java | Другие наши каналы