Эффективность стримов в Java
Стримы позволяют писать более лаконичный код и с этим в основном никто не спорит. С производительностью стримов не все так однозначно.
В статье сравниваются результаты бенчмарков нескольких задач, решенных с использованием стримов и без них.
https://habr.com/ru/articles/807647/
Стримы позволяют писать более лаконичный код и с этим в основном никто не спорит. С производительностью стримов не все так однозначно.
В статье сравниваются результаты бенчмарков нескольких задач, решенных с использованием стримов и без них.
https://habr.com/ru/articles/807647/
Хабр
Еще раз о перформансе стримов в Java
Время от времени я наблюдаю или даже бываю втянутым в спор о перформансе стримов в джаве. Общеизвестно, что стримы это компромисс между перформансом и удобством. Однако я не нашел вменяемого набора...
Материалы Spring Academy Pro стали доступны бесплатно
Доступ можно получить по этой ссылке. Материалы разбиты на 3 категории: руководства, курсы и траектория обучения.
https://spring.io/blog/2024/04/10/spring-academy-pro-content-now-free-to-access
Доступ можно получить по этой ссылке. Материалы разбиты на 3 категории: руководства, курсы и траектория обучения.
https://spring.io/blog/2024/04/10/spring-academy-pro-content-now-free-to-access
Spring Academy Pro Content Now Free To Access
Level up your Java code and explore what Spring can do for you.
Spring Boot Starter: практически, принципиально и подробнее. Часть 1
Одно из преимуществ микросервисной архитектуры в модульности ее компонентов. Общее решение, вынесенное за скобки, можно переиспользовать как внутри разрабатываемого проекта, так и в следующих сервисах с аналогичным стеком. А механизмы Spring Boot помогут создать общий компонент, настроить и легко интегрировать его.
А что можно выделить в отдельное решение? Присмотритесь к своему проекту. Наверняка во многих частях задействованы кастомные аннотации и их обработчики, модули безопасности, различные интерцепторы, валидаторы, средства мониторинга и трассировки. Любое решение, используемое в двух и более микросервисах, — отличный кандидат на выделение в самостоятельный компонент.
https://habr.com/ru/companies/ru_mts/articles/811693/
Одно из преимуществ микросервисной архитектуры в модульности ее компонентов. Общее решение, вынесенное за скобки, можно переиспользовать как внутри разрабатываемого проекта, так и в следующих сервисах с аналогичным стеком. А механизмы Spring Boot помогут создать общий компонент, настроить и легко интегрировать его.
А что можно выделить в отдельное решение? Присмотритесь к своему проекту. Наверняка во многих частях задействованы кастомные аннотации и их обработчики, модули безопасности, различные интерцепторы, валидаторы, средства мониторинга и трассировки. Любое решение, используемое в двух и более микросервисах, — отличный кандидат на выделение в самостоятельный компонент.
https://habr.com/ru/companies/ru_mts/articles/811693/
Хабр
Spring Boot Starter: практически, принципиально и подробнее. Часть 1
Всем привет, меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. За последние 2 года я написал и выпустил в продакшен более 30 микросервисов. Выдержать столь высокий темп помогло...
Появился новый канал с аудио обзорами различных материалов и событий из мира IT.
Если вам интересен такой формат, то накидайте «огоньков» ))
https://tttttt.me/java_guru_podcast
Если вам интересен такой формат, то накидайте «огоньков» ))
https://tttttt.me/java_guru_podcast
Telegram
Java guru podcast
Аудио обзоры различных материалов и событий из мира IT. Для связи @RodmanDV
Как начать писать на Java в VSCode
Я достаточно давно пользуюсь JetBrains IntelliJ IDEA хотя начинал свой путь в Java на Eclipse IDE. После перехода на JetBrains IntelliJ IDEA об альтернативах я особо не задумывался. IDE достаточно комфортная.
В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
https://habr.com/ru/companies/cdek_blog/articles/811631/
Я достаточно давно пользуюсь JetBrains IntelliJ IDEA хотя начинал свой путь в Java на Eclipse IDE. После перехода на JetBrains IntelliJ IDEA об альтернативах я особо не задумывался. IDE достаточно комфортная.
В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
https://habr.com/ru/companies/cdek_blog/articles/811631/
Хабр
Как начать писать на Java в VSCode
Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно...
Compiler Explorer — уникальный проект для исследования компилируемого кода
Это просто космический инструмент да еще и open source!!!
В левой панели вы выбираете язык и вставляете кусок кода, а в правой он показывает вам ассемблерный код, генерируемый разными компиляторами под разные архитектуры процессоров. Проект поддерживает 69 языков и Java в том числе.
Этот проект можно также использовать как отличный инструмент для изучения языка ассемблера. Достаточно навести курсор на команду, после чего откроется всплывающее окно с описанием команды. При нажатии правой клавишей мыши на команду открывается меню, в котором можно изучить более подробное описание.
В конце статьи особенно порадовал Movfuscator. Он использует только MOV ))
https://habr.com/ru/companies/ruvds/articles/815675/
Это просто космический инструмент да еще и open source!!!
В левой панели вы выбираете язык и вставляете кусок кода, а в правой он показывает вам ассемблерный код, генерируемый разными компиляторами под разные архитектуры процессоров. Проект поддерживает 69 языков и Java в том числе.
Этот проект можно также использовать как отличный инструмент для изучения языка ассемблера. Достаточно навести курсор на команду, после чего откроется всплывающее окно с описанием команды. При нажатии правой клавишей мыши на команду открывается меню, в котором можно изучить более подробное описание.
В конце статьи особенно порадовал Movfuscator. Он использует только MOV ))
https://habr.com/ru/companies/ruvds/articles/815675/
Хабр
Compiler Explorer — уникальный проект для исследования компилируемого кода
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer , который я в дальнейшем будут называть CE. CE...
Гарвардский курс по основам программирования CS50 (бесплатно)
Отличный курс по основам программирования. Можно быстро освежить базу. Особенно рекомендую новичкам.
https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5&si=ET3P_dbNTmHABDPx
Отличный курс по основам программирования. Можно быстро освежить базу. Особенно рекомендую новичкам.
https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5&si=ET3P_dbNTmHABDPx
Practice SQL - сайт для практики SQL запросов.
Навык работы с базами данных очень важен для разработчиков. Прелесть данного сайта в том, что вам не нужно самим заниматься разворачиванием тестовой базы. Достаточно открыть браузер. Также, в отличии от тестов, здесь вам нужно будет реально набирать и выполнять SQL, а это лучше запоминается.
https://www.sql-practice.com/
Навык работы с базами данных очень важен для разработчиков. Прелесть данного сайта в том, что вам не нужно самим заниматься разворачиванием тестовой базы. Достаточно открыть браузер. Также, в отличии от тестов, здесь вам нужно будет реально набирать и выполнять SQL, а это лучше запоминается.
https://www.sql-practice.com/
Sql-Practice
Learn SQL - Online SQL Terminal - Practice SQL Querys
Practice SQL querys with an online terminal. Solve SQL query questions using a practice database. Learn and improve your SQL skills.
Coding game
Coding game - сайт для прокачки навыков программирования на 25+ языках. Можно писать и на Java. Вы получаете задачи и решаете их в игровой форме. Оформление впечатляет )
https://www.codingame.com/start/
Coding game - сайт для прокачки навыков программирования на 25+ языках. Можно писать и на Java. Вы получаете задачи и решаете их в игровой форме. Оформление впечатляет )
https://www.codingame.com/start/
CodinGame
Coding Games and Programming Challenges to Code Better
CodinGame is a challenge-based training platform for programmers where you can play with the hottest programming topics. Solve games, code AI bots, learn from your peers, have fun.
Криптография на службе у stateless
Команда Мир Plat.Form под интересным углом посмотрела на архитектуру решения stateless сервиса. Вместо хранения состояния на стороне сервиса они решили передавать его в каждом запросе, а для защиты от подмены использовать контрольные суммы сообщения (HMAC). У решения есть свои плюсы и минусы. Больше деталей в статье.
https://habr.com/ru/companies/nspk/articles/808199/
Команда Мир Plat.Form под интересным углом посмотрела на архитектуру решения stateless сервиса. Вместо хранения состояния на стороне сервиса они решили передавать его в каждом запросе, а для защиты от подмены использовать контрольные суммы сообщения (HMAC). У решения есть свои плюсы и минусы. Больше деталей в статье.
https://habr.com/ru/companies/nspk/articles/808199/
Хабр
Криптография на службе у stateless
Всем привет! Я – Кирилл, и я работаю в команде Мир Plat.Form. В какой-то момент мы столкнулись с ситуацией, где изначально спроектированная система начинает требовать много ресурсов с увеличением...
Генерация OpenAPI из Spring Boot MVC
При работе с OpenAPI есть свои «подводные камни». Некоторые из них описаны в этой статье. В примере используется Spring Boot 3 и OpenAPI 3.
https://habr.com/ru/articles/814061/
При работе с OpenAPI есть свои «подводные камни». Некоторые из них описаны в этой статье. В примере используется Spring Boot 3 и OpenAPI 3.
https://habr.com/ru/articles/814061/
Хабр
Генерация OpenAPI из Spring Boot MVC
Код проекта можно посмотреть здесь . Для генерации будем использовать зависимость springdoc-openapi-starter-webmvc-ui . Библиотека поддерживает: OpenAPI 3 Spring Boot V3 (для V2 используется другая...
Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком
Hibernate — очень мощный фреймворк. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить».
Подборка решений достаточно интересная в статье.
https://habr.com/ru/companies/magnit/articles/814573/
Hibernate — очень мощный фреймворк. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить».
Подборка решений достаточно интересная в статье.
https://habr.com/ru/companies/magnit/articles/814573/
Хабр
Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком
Hibernate — очень мощный и функциональный ORM (Object-Relational Mapping) фреймворк. Он связывает базы данных с помощью объектно-ориентированных языков программирования. Однако многие, начиная с ним...
Гайд по использованию JUnit 5, Mockito и AssertJ для проверки поведения кода
В статье показано как использовать JUnit, Mockito и AssertJ для тестирования кода, а также JaCoCo для оценки покрытия тестами на примере простого мини-сервиса.
https://habr.com/ru/companies/banki/articles/814485/
В статье показано как использовать JUnit, Mockito и AssertJ для тестирования кода, а также JaCoCo для оценки покрытия тестами на примере простого мини-сервиса.
https://habr.com/ru/companies/banki/articles/814485/
Хабр
Гайд по использованию JUnit 5, Mockito и AssertJ для проверки поведения кода
Меня зовут Игорь Симаков, я тимлид Java-разработки в команде Маркетплейс Банки.ру. Сегодня на практическом примере разберу использование UNIT-тестирования. Оно применяется как для тестирования...
Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов
В статье обсуждаются доступные способы оптимизации Spring-контекста для тестов. Помимо подхода с сегментацией (test slicing) там также есть примеры более тонкой настройки.
В комментариях к статье также порадовал пример с иерархией контекстов.
https://habr.com/ru/companies/tbank/articles/816051/
В статье обсуждаются доступные способы оптимизации Spring-контекста для тестов. Помимо подхода с сегментацией (test slicing) там также есть примеры более тонкой настройки.
В комментариях к статье также порадовал пример с иерархией контекстов.
https://habr.com/ru/companies/tbank/articles/816051/
Хабр
Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов
Всем привет! Я Юнес, SDET в Тинькофф. Помогаю автоматизаторам создавать более эффективные и надежные тесты, готовить тестовые данные и настраивать CI/CD-пайплайны. Расскажу о доступных способах...
Особое мнение: смотрим на нагрузочные тесты как на функциональные
Многие команды сейчас переходят на Gatling для задач нагрузочного тестирования. В статье приводится пример не просто использования Apache JMeter для нагрузочного тестирования, а построение «непрерывного нагрузочного тестирования» в рамках CI/CD. Стек TestNG / Cucumber / Allure, для задач CI/CD используется Jenkins. В комментариях к статье автору предлагают еще использовать JMeter DSL. Тоже достаточно интересный кейс.
https://habr.com/ru/companies/nspk/articles/709822/
Многие команды сейчас переходят на Gatling для задач нагрузочного тестирования. В статье приводится пример не просто использования Apache JMeter для нагрузочного тестирования, а построение «непрерывного нагрузочного тестирования» в рамках CI/CD. Стек TestNG / Cucumber / Allure, для задач CI/CD используется Jenkins. В комментариях к статье автору предлагают еще использовать JMeter DSL. Тоже достаточно интересный кейс.
https://habr.com/ru/companies/nspk/articles/709822/
Хабр
Особое мнение: смотрим на нагрузочные тесты как на функциональные
Photo by Dominik Van Opdenbosch on Unsplash Всем привет! В команде Мир Plat.Form я занимаюсь системами сертификации эмиссии – наш отдел разрабатывает программные продукты для внутренних и внешних...
Gatling vs JMeter DSL
В продолжение темы из прошлого поста. По ссылке сравнение Gatling и JMeter DSL от автора JMeter DSL. Оно достаточно субъективно, но дает понимание мотивации автора на создание JMeter DSL. По факту у Gatling только в версии 3.7 появился Java friendly API. Остальные минусы указанные в статье думаю Gatling быстро нагонит, но попробовать JMeter DSL стоит особенно если вы раньше много работали с JMeter.
https://abstracta.github.io/jmeter-java-dsl/motivation/#comparison-table
В продолжение темы из прошлого поста. По ссылке сравнение Gatling и JMeter DSL от автора JMeter DSL. Оно достаточно субъективно, но дает понимание мотивации автора на создание JMeter DSL. По факту у Gatling только в версии 3.7 появился Java friendly API. Остальные минусы указанные в статье думаю Gatling быстро нагонит, но попробовать JMeter DSL стоит особенно если вы раньше много работали с JMeter.
https://abstracta.github.io/jmeter-java-dsl/motivation/#comparison-table
abstracta.github.io
Motivation | jmeter-java-dsl
Simple JMeter performance tests API
Как протестировать логику консьюмеров и продюсеров и не сгореть? Spring Boot 3, Spring Kafka
В статье автор перебирает разные подходы к тестированию продюсеров и консьюмеров. В конце довольно интересное решение с использованием
В статье автор перебирает разные подходы к тестированию продюсеров и консьюмеров. В конце довольно интересное решение с использованием
autoStartup на @KafkaListener. Хотя как отмечено в комментариях к статье он мог бы проще добиться цели вынеся логику из консьюмеров и продюсеров в отдельные сервисы )
https://habr.com/ru/companies/alfastrah/articles/816057/
Хабр
Как протестировать логику консьюмеров и продюсеров и не сгореть? Spring Boot 3, Spring Kafka
Всем привет. Решил поделиться опытом тестирования логики консьюмеров и продюсеров в стандартном Spring Boot приложении. Я несколько раз подходил к этой задаче с различными вариантами и находил разные...
Hazelcast: эксперименты с настройкой и долговременным хранением больших объектов in-memory
Статья будет полезна для тех, кто поддерживает приложения на Java, так как большая ее часть посвящена анализу работы G1 GC, знакомству с соответствующими инструментами и особенностями тюнинга GC, в частности для очень больших heap`ов. А также тем, кто пытается разобраться, на что способен Hazelcast, и для чего его можно применить.
https://habr.com/ru/companies/croc/articles/816973/
Статья будет полезна для тех, кто поддерживает приложения на Java, так как большая ее часть посвящена анализу работы G1 GC, знакомству с соответствующими инструментами и особенностями тюнинга GC, в частности для очень больших heap`ов. А также тем, кто пытается разобраться, на что способен Hazelcast, и для чего его можно применить.
https://habr.com/ru/companies/croc/articles/816973/
Хабр
Hazelcast: эксперименты с настройкой и долговременным хранением больших объектов in-memory
Статья будет полезна для тех, кто поддерживает приложения на Java, так как большая ее часть посвящена анализу работы G1 GC, знакомству с соответствующими инструментами и особенностями тюнинга GC, в...
Amplicode: учим IDE говорить на языке фреймворка
Довольно интересная альтернатива IntelliJ IDEA Ultimate. По факту это довольно прокаченный плагин к IntelliJ IDEA Community, который пока доступен бесплатно. Напрягает правда неопределенность с планами по монетизации этого плагина.
https://habr.com/ru/companies/haulmont/articles/814207/
Довольно интересная альтернатива IntelliJ IDEA Ultimate. По факту это довольно прокаченный плагин к IntelliJ IDEA Community, который пока доступен бесплатно. Напрягает правда неопределенность с планами по монетизации этого плагина.
https://habr.com/ru/companies/haulmont/articles/814207/
Хабр
Amplicode: учим IDE говорить на языке фреймворка
Вы когда-нибудь задумывались, как много кода, который мы пишем, предназначено именно для решения поставленных задач? Казалось бы, странный вопрос: зачем писать код, который не нужен? Но давайте...