Эффективный подход к тестированию веб-контроллеров в Spring Boot приложениях
Команда Spring АйО перевела статью о том, как правильно подходить к тестированию веб-контроллеров в Spring Boot приложениях, чтобы не делать лишнюю работу, но и не упускать важных аспектов процесса тестирования.
Читать: https://habr.com/ru/companies/spring_aio/articles/892194/?utm_campaign=892194
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела статью о том, как правильно подходить к тестированию веб-контроллеров в Spring Boot приложениях, чтобы не делать лишнюю работу, но и не упускать важных аспектов процесса тестирования.
Читать: https://habr.com/ru/companies/spring_aio/articles/892194/?utm_campaign=892194
@a_cup_of_java | Другие наши каналы
На страже производительности Spring Boot приложений: Профилирование и оптимизация
Spring Boot широко используется для создания масштабируемых и эффективных Java‑приложений. Однако по мере усложнения или масштабирования вашего приложения могут начать проявляться узкие места производительности, что приводит к замедлению времени отклика и увеличению потребления ресурсов. Выявление и устранение этих узких мест является важнейшей составляющей процесса оптимизации производительности вашего приложения, особенно в производственных средах.
В этой статье мы подробно рассмотрим, как можно оптимизировать производительность Spring Boot приложений, используя базовые методы профилирования и тюнинга. Особое внимание будет уделено таким аспектам, как профилирование процессора и памяти, оптимизация сборки мусора и тюнинг виртуальной машины Java (JVM).
Читать: https://habr.com/ru/companies/otus/articles/892716/?utm_campaign=892716
@a_cup_of_java | Другие наши каналы
Spring Boot широко используется для создания масштабируемых и эффективных Java‑приложений. Однако по мере усложнения или масштабирования вашего приложения могут начать проявляться узкие места производительности, что приводит к замедлению времени отклика и увеличению потребления ресурсов. Выявление и устранение этих узких мест является важнейшей составляющей процесса оптимизации производительности вашего приложения, особенно в производственных средах.
В этой статье мы подробно рассмотрим, как можно оптимизировать производительность Spring Boot приложений, используя базовые методы профилирования и тюнинга. Особое внимание будет уделено таким аспектам, как профилирование процессора и памяти, оптимизация сборки мусора и тюнинг виртуальной машины Java (JVM).
Читать: https://habr.com/ru/companies/otus/articles/892716/?utm_campaign=892716
@a_cup_of_java | Другие наши каналы
В поисках идеального Database-клиента для IDE: Amplicode выбирает DBeaver
Один из частых вопросов, которые мы слышим от наших пользователей, связан с заменой встроенного инструмента для работы с БД, доступного ранее в IntelliJ IDEA Ultimate. В связи с тем, что DataGrip больше не доступен (а именно так называлась эта функциональность), многим разработчикам приходится искать альтернативу инструменту.
Нас эта проблема волнует не только как разработчиков Amplicode, но и как участников проекта OpenIDE. Мы считаем очень важным предоставить российским разработчикам максимально удобное и мощное решение.
Читать: https://habr.com/ru/companies/haulmont/articles/892744/?utm_campaign=892744
@a_cup_of_java | Другие наши каналы
Один из частых вопросов, которые мы слышим от наших пользователей, связан с заменой встроенного инструмента для работы с БД, доступного ранее в IntelliJ IDEA Ultimate. В связи с тем, что DataGrip больше не доступен (а именно так называлась эта функциональность), многим разработчикам приходится искать альтернативу инструменту.
Нас эта проблема волнует не только как разработчиков Amplicode, но и как участников проекта OpenIDE. Мы считаем очень важным предоставить российским разработчикам максимально удобное и мощное решение.
Читать: https://habr.com/ru/companies/haulmont/articles/892744/?utm_campaign=892744
@a_cup_of_java | Другие наши каналы
🤨3👍2
Генерация случайных чисел
Картинка Benzoix, Freepik
Зачем вообще нужны случайные числа? Дело в том, что случайные числа не представляют собой оторванную от жизни абстракцию, а широко применяются во множестве областей, начиная от научных исследований и заканчивая технологиями, окружающими нас.
Рассмотрим наиболее известные применения случайных чисел и способы их получения как программным способом, так и комбинированным (программно-физическим).
Читать: https://habr.com/ru/companies/ruvds/articles/891292/?utm_campaign=891292
@a_cup_of_java | Другие наши каналы
Картинка Benzoix, Freepik
Зачем вообще нужны случайные числа? Дело в том, что случайные числа не представляют собой оторванную от жизни абстракцию, а широко применяются во множестве областей, начиная от научных исследований и заканчивая технологиями, окружающими нас.
Рассмотрим наиболее известные применения случайных чисел и способы их получения как программным способом, так и комбинированным (программно-физическим).
Читать: https://habr.com/ru/companies/ruvds/articles/891292/?utm_campaign=891292
@a_cup_of_java | Другие наши каналы
JavaOne 2025: Новое из мира Java
Первый день JavaOne 2025 открылся в Калифорнии с выпуском JDK 24. На ключевой презентации обсуждалось развитие Java и роль Oracle в ее сохранении и инновациях. Участники узнали решения 11 проблем разработчиков, а также об анонсе нового образовательного ресурса Learn.java.
Подробности: https://www.infoq.com/news/2025/03/day-one-java-one-2025/
#en
@a_cup_of_java | Другие наши каналы
Первый день JavaOne 2025 открылся в Калифорнии с выпуском JDK 24. На ключевой презентации обсуждалось развитие Java и роль Oracle в ее сохранении и инновациях. Участники узнали решения 11 проблем разработчиков, а также об анонсе нового образовательного ресурса Learn.java.
Подробности: https://www.infoq.com/news/2025/03/day-one-java-one-2025/
#en
@a_cup_of_java | Другие наши каналы
Ученые из Гарварда оценили все open-source проекты в $8,8 трлн
Гарвард оценил ценность open-source в $8,8 трлн: 96% IT-продуктов используют свободный код, но создают его лишь 5% разработчиков
Читать: «Ученые из Гарварда оценили все open-source проекты в $8,8 трлн»
@a_cup_of_java | Другие наши каналы
Гарвард оценил ценность open-source в $8,8 трлн: 96% IT-продуктов используют свободный код, но создают его лишь 5% разработчиков
Читать: «Ученые из Гарварда оценили все open-source проекты в $8,8 трлн»
@a_cup_of_java | Другие наши каналы
Концерт для Java с ИИ — разработка готовых к продакшен LLM приложений (часть 2)
Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов.
В первой части рассказывалось о том, какие подходы автор доклада применил к стоящей перед ним проблеме. Также было показано начало работы над усовершенствованием интерфейса программы-помощника с использованием ИИ. Во второй части будет продолжен рассказ о том, как еще больше улучшить программу. Но сначала поговорим о безопасности.
Читать: https://habr.com/ru/companies/spring_aio/articles/893052/?utm_campaign=893052
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов.
В первой части рассказывалось о том, какие подходы автор доклада применил к стоящей перед ним проблеме. Также было показано начало работы над усовершенствованием интерфейса программы-помощника с использованием ИИ. Во второй части будет продолжен рассказ о том, как еще больше улучшить программу. Но сначала поговорим о безопасности.
Читать: https://habr.com/ru/companies/spring_aio/articles/893052/?utm_campaign=893052
@a_cup_of_java | Другие наши каналы
Что такое хэш-таблицы и как их использовать
Что такое хэш-таблицы. Показываем основные преимущества хэш-таблиц в программировании. Рассматриваем пошаговую инструкцию и основные нюансы ✔ Tproger
Читать: «Что такое хэш-таблицы и как их использовать»
@a_cup_of_java | Другие наши каналы
Что такое хэш-таблицы. Показываем основные преимущества хэш-таблиц в программировании. Рассматриваем пошаговую инструкцию и основные нюансы ✔ Tproger
Читать: «Что такое хэш-таблицы и как их использовать»
@a_cup_of_java | Другие наши каналы
Разработка Java-проекта с Jmix AI Assistant
Эта заметка инспирирована статей на Хабре Разработка Java-проекта с ChatGPT-4: от идеи до реализации [1]. После ее прочтения автор начал экспериментировать в разработке ПО с различными AI ассистентами.
Увидев статью блога Jmix AI Assistant — ваш помощник в освоении Jmix, решил реализовать с помощью Jmix AI Assistant приложение аналогичное приведенному в статье [1].
Главное отличие от указанной статьи в том, что вся разработка будет вестись с помощью одного инструмента Jmix AI Assistant без использования сторонних генераторов кода.
Читать: https://habr.com/ru/articles/891166/?utm_campaign=891166
@a_cup_of_java | Другие наши каналы
Эта заметка инспирирована статей на Хабре Разработка Java-проекта с ChatGPT-4: от идеи до реализации [1]. После ее прочтения автор начал экспериментировать в разработке ПО с различными AI ассистентами.
Увидев статью блога Jmix AI Assistant — ваш помощник в освоении Jmix, решил реализовать с помощью Jmix AI Assistant приложение аналогичное приведенному в статье [1].
Главное отличие от указанной статьи в том, что вся разработка будет вестись с помощью одного инструмента Jmix AI Assistant без использования сторонних генераторов кода.
Читать: https://habr.com/ru/articles/891166/?utm_campaign=891166
@a_cup_of_java | Другие наши каналы
Курсы по чат-ботам: лучшее онлайн-обучение для специалистов по разработке чат-ботов
Самые лучшие курсы по чат-ботами. В предложенной подборке актуальные варианты обучения от проверенных школ, а так же рейтинги и цены на курсы по разработке чат-ботов
Читать: «Курсы по чат-ботам: лучшее онлайн-обучение для специалистов по разработке чат-ботов»
@a_cup_of_java | Другие наши каналы
Самые лучшие курсы по чат-ботами. В предложенной подборке актуальные варианты обучения от проверенных школ, а так же рейтинги и цены на курсы по разработке чат-ботов
Читать: «Курсы по чат-ботам: лучшее онлайн-обучение для специалистов по разработке чат-ботов»
@a_cup_of_java | Другие наши каналы
Понимание различий: наблюдаемость против мониторинга против APM против профилирования
В современном мире облачных технологий поддержание оптимальной производительности приложений требует использования различных взаимодополняющих подходов. Хотя эти инструменты имеют схожие функции, они выполняют разные задачи в управлении производительностью.
Читать: https://habr.com/ru/articles/893554/?utm_campaign=893554
@a_cup_of_java | Другие наши каналы
В современном мире облачных технологий поддержание оптимальной производительности приложений требует использования различных взаимодополняющих подходов. Хотя эти инструменты имеют схожие функции, они выполняют разные задачи в управлении производительностью.
Читать: https://habr.com/ru/articles/893554/?utm_campaign=893554
@a_cup_of_java | Другие наши каналы
Allurium — java framework для автотестов. Мультиязычные, близкие к bdd репорты, без bdd структуры
В этой статье хочу поделиться инструментом, который я понемногу разрабатывал и улучшал при наличии свободного времени. Применяя для упрощения своих задач, над которыми я работал в разных компаниях за это время.
Работа в автоматизации тестирования стала моей оффициальной профессией несколько лет назад. За это время мне довелось позаниматься очень широким спектром задач, в зависимости от компаний, где я работал. Начиная с тестирования пользовательских интерфейсов различных сайтов, web и мобильных приложений, обязанности заводили меня глубоко в тестирование сложных API сервисов и даже автоматизацию десктопных программ.
Первые годы я плотно занимался тестированием Web приложений на Java, хотя начинал не с неё. Разумеется, перепробовав много подходов, я нашёл для себя любимый stack, который применял при наличии свободы выбора. Для меня это сложилось в TestNg + Selenium + Allure. Естественно, мне приходилось работать со знаменитым Cucumber, а потом и вообще с чудовищьным (на мой взгляд) Serenity и ещё многими другими решениями, включая кастомные разработки разных людей.
Моё расположение никогда не лежало в сторону BDD, так как чаще всего я сам читал отчёты и проверял тесты, и в 100% случаев сам составлял сценарии с Gherkin (иногда по предоставленным сценариям, чаще нет). Так называемое удобство, дающее BDD пользователю, сводилось к минимуму, а вот взамен требовало многое — небоскрёбы из обёрток классов, сложности с наследованием, необходимость создавать кучу дубликатов мизерных действий, абсолютное неудобство передачи данных между шагами и процессами и прочие трудности.
Читать: https://habr.com/ru/articles/893566/?utm_campaign=893566
@a_cup_of_java | Другие наши каналы
В этой статье хочу поделиться инструментом, который я понемногу разрабатывал и улучшал при наличии свободного времени. Применяя для упрощения своих задач, над которыми я работал в разных компаниях за это время.
Работа в автоматизации тестирования стала моей оффициальной профессией несколько лет назад. За это время мне довелось позаниматься очень широким спектром задач, в зависимости от компаний, где я работал. Начиная с тестирования пользовательских интерфейсов различных сайтов, web и мобильных приложений, обязанности заводили меня глубоко в тестирование сложных API сервисов и даже автоматизацию десктопных программ.
Первые годы я плотно занимался тестированием Web приложений на Java, хотя начинал не с неё. Разумеется, перепробовав много подходов, я нашёл для себя любимый stack, который применял при наличии свободы выбора. Для меня это сложилось в TestNg + Selenium + Allure. Естественно, мне приходилось работать со знаменитым Cucumber, а потом и вообще с чудовищьным (на мой взгляд) Serenity и ещё многими другими решениями, включая кастомные разработки разных людей.
Моё расположение никогда не лежало в сторону BDD, так как чаще всего я сам читал отчёты и проверял тесты, и в 100% случаев сам составлял сценарии с Gherkin (иногда по предоставленным сценариям, чаще нет). Так называемое удобство, дающее BDD пользователю, сводилось к минимуму, а вот взамен требовало многое — небоскрёбы из обёрток классов, сложности с наследованием, необходимость создавать кучу дубликатов мизерных действий, абсолютное неудобство передачи данных между шагами и процессами и прочие трудности.
Читать: https://habr.com/ru/articles/893566/?utm_campaign=893566
@a_cup_of_java | Другие наши каналы
👍3❤2
Жизненный цикл бина в Spring
Разобраться в жизненном цикле бина в Spring бывает непросто: информация разбросана, а объяснения часто сложные и перегруженные деталями. Эта статья — простой и понятный "чек-лист", где все этапы разобраны на живых примерах
Читать: https://habr.com/ru/articles/893614/?utm_campaign=893614
@a_cup_of_java | Другие наши каналы
Разобраться в жизненном цикле бина в Spring бывает непросто: информация разбросана, а объяснения часто сложные и перегруженные деталями. Эта статья — простой и понятный "чек-лист", где все этапы разобраны на живых примерах
Читать: https://habr.com/ru/articles/893614/?utm_campaign=893614
@a_cup_of_java | Другие наши каналы
👍9
Новое в Spring: обновления и релизы
Весной 2025 года в экосистеме Spring произошло множество значимых обновлений. Обновления коснулись таких компонентов, как Spring Boot, Security, Auth Server, GraphQL и многих других. Среди новшеств — улучшения в поддержке OpenTelemetry и новые свойства для Spring Batch. Эти обновления делают инструменты ещё более мощными и удобными для разработчиков.
Подробности: https://www.infoq.com/news/2025/03/spring-news-roundup-mar17-2025/
#en
@a_cup_of_java | Другие наши каналы
Весной 2025 года в экосистеме Spring произошло множество значимых обновлений. Обновления коснулись таких компонентов, как Spring Boot, Security, Auth Server, GraphQL и многих других. Среди новшеств — улучшения в поддержке OpenTelemetry и новые свойства для Spring Batch. Эти обновления делают инструменты ещё более мощными и удобными для разработчиков.
Подробности: https://www.infoq.com/news/2025/03/spring-news-roundup-mar17-2025/
#en
@a_cup_of_java | Другие наши каналы
❤3
Загляните в будущее Java: Quarkus и JBang
В мире Java новый подход Quarkus обеспечивает высокий уровень производительности, упрощая жизнь разработчиков. Платформа JBang предлагает лёгкий способ работы без сложных настроек, помогая как новичкам, так и профессионалам. Инновации делают Java-девелопмент проще и быстрее!
Подробности: https://www.infoq.com/podcasts/simplify-system-learning-ecosystems/
#en
@a_cup_of_java | Другие наши каналы
В мире Java новый подход Quarkus обеспечивает высокий уровень производительности, упрощая жизнь разработчиков. Платформа JBang предлагает лёгкий способ работы без сложных настроек, помогая как новичкам, так и профессионалам. Инновации делают Java-девелопмент проще и быстрее!
Подробности: https://www.infoq.com/podcasts/simplify-system-learning-ecosystems/
#en
@a_cup_of_java | Другие наши каналы
Новости Java: Выпуск JDK 24 и многое другое
Oracle представила JDK 24 с 24 JEPами, обновлён GraalVM для JDK 24 с новыми функциями GNN и SkipFlow. Apache Kafka 4.0 и обновление Spring прошли с учётом исправлений CVE. Также состоится JavaOne 2025. Следите за обновлениями, чтобы узнать больше!
Подробности: https://www.infoq.com/news/2025/03/java-news-roundup-mar17-2025/
#en
@a_cup_of_java | Другие наши каналы
Oracle представила JDK 24 с 24 JEPами, обновлён GraalVM для JDK 24 с новыми функциями GNN и SkipFlow. Apache Kafka 4.0 и обновление Spring прошли с учётом исправлений CVE. Также состоится JavaOne 2025. Следите за обновлениями, чтобы узнать больше!
Подробности: https://www.infoq.com/news/2025/03/java-news-roundup-mar17-2025/
#en
@a_cup_of_java | Другие наши каналы
RabbitMQ и Kotlin: делаем свою event-driven Jira на Spring
В этой статье мы рассмотрим, как можно в один клик развернуть RabbitMQ в облаке. Также напишем простое приложение на Spring Boot и Kotlin, которое будет взаимодействовать с этим брокером сообщений.
Читать: https://habr.com/ru/companies/dockhost/articles/893572/?utm_campaign=893572
@a_cup_of_java | Другие наши каналы
В этой статье мы рассмотрим, как можно в один клик развернуть RabbitMQ в облаке. Также напишем простое приложение на Spring Boot и Kotlin, которое будет взаимодействовать с этим брокером сообщений.
Читать: https://habr.com/ru/companies/dockhost/articles/893572/?utm_campaign=893572
@a_cup_of_java | Другие наши каналы
❤3
Автоматизация тестирования, которая не ломается при первом редизайне
Автоматизация тестирования, которая не ломается при первом редизайне
Как мы проектировали, внедряли и поддерживаем живую систему автотестов
Читать: https://habr.com/ru/companies/rostelecom/articles/894074/?utm_campaign=894074
@a_cup_of_java | Другие наши каналы
Автоматизация тестирования, которая не ломается при первом редизайне
Как мы проектировали, внедряли и поддерживаем живую систему автотестов
Читать: https://habr.com/ru/companies/rostelecom/articles/894074/?utm_campaign=894074
@a_cup_of_java | Другие наши каналы
Forwarded from Типичный программист
Разбираемся с System Design: всё, что нужно знать в одном репо с наглядными примерами
— Архитектура сервисов: монолит, микросервисы, API-шлюзы, балансировка нагрузки, БД.
— Протоколы: REST, gRPC, WebSockets, проектирование API, оптимизация нагрузки.
— DevOps: CI/CD, мониторинг, Kubernetes, контейнеризация, облака.
— Разбор архитектуры крупных компаний: Netflix, Twitter, Discord, Amazon Prime Video.
Погружаемся в системный дизайн — здесь.
#архитектура
— Архитектура сервисов: монолит, микросервисы, API-шлюзы, балансировка нагрузки, БД.
— Протоколы: REST, gRPC, WebSockets, проектирование API, оптимизация нагрузки.
— DevOps: CI/CD, мониторинг, Kubernetes, контейнеризация, облака.
— Разбор архитектуры крупных компаний: Netflix, Twitter, Discord, Amazon Prime Video.
Погружаемся в системный дизайн — здесь.
#архитектура
👍4❤3
Как мы перестроили комментарии в ОК: от линейного хаоса к веточной гармонии
Комментарии в соцсетях — это как чипсы: начал читать, остановиться невозможно. Но в ОК до 2024 года они были плоскими — вместо структурированного диалога под постом пользователи видели бесконечную ленту сообщений, где ответы терялись в хронологическом порядке. Представьте: под постом про котиков кто-то спросил про корм, но ответ на вопрос появился в самом низу, через 500 комментариев с обсуждением хвостатых. Найти ответ на вопрос в такой системе, если он вообще существует, — тот ещё квест.
Меня зовут Александр Косницкий. Я разработчик в компании ОК. В этой статье я расскажу, как мы переходили с линейной структуры отображения комментариев к древовидной: с чего начали, с чем сталкивались и что получили в результате.
Читать: https://habr.com/ru/companies/vk/articles/893916/?utm_campaign=893916
@a_cup_of_java | Другие наши каналы
Комментарии в соцсетях — это как чипсы: начал читать, остановиться невозможно. Но в ОК до 2024 года они были плоскими — вместо структурированного диалога под постом пользователи видели бесконечную ленту сообщений, где ответы терялись в хронологическом порядке. Представьте: под постом про котиков кто-то спросил про корм, но ответ на вопрос появился в самом низу, через 500 комментариев с обсуждением хвостатых. Найти ответ на вопрос в такой системе, если он вообще существует, — тот ещё квест.
Меня зовут Александр Косницкий. Я разработчик в компании ОК. В этой статье я расскажу, как мы переходили с линейной структуры отображения комментариев к древовидной: с чего начали, с чем сталкивались и что получили в результате.
Читать: https://habr.com/ru/companies/vk/articles/893916/?utm_campaign=893916
@a_cup_of_java | Другие наши каналы
Context Collapse: как микросервисы могут сойти с ума
Даже самая идеальная микросервисная архитектура может упасть. В статье обсудим зарубежный материал, где автор рассказывает о проблеме Context Collapse.
Читать: «Context Collapse: как микросервисы могут сойти с ума»
@a_cup_of_java | Другие наши каналы
Даже самая идеальная микросервисная архитектура может упасть. В статье обсудим зарубежный материал, где автор рассказывает о проблеме Context Collapse.
Читать: «Context Collapse: как микросервисы могут сойти с ума»
@a_cup_of_java | Другие наши каналы