📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Axiom JDK Meetup: Java 21 и доверенные технологии
Спикеры расскажут об особенностях отечественной Java-экосистемы, бесшовной миграции Java-стека на доверенные технологии, обеспечении безопасности и оптимизации Java для микросервисов.
Доклады в программе:
✔ Роман Карпов, «Кто разрабатывает российскую Java и почему она лучше Oracle и других JDK»
✔ Олег Чирухин, «Axiom JDK Pro и Libercat: безопасная миграция Java-стека и KPI по импортозамещению»
✔ Александр Дроздов, «Безопасная разработка: защищаем открытый код и получаем сертификацию ФСТЭК»
✔ Олег Чирухин, «Легковесные Java-контейнеры: ускоряем разработку на 25%»
После докладов пройдет сессия вопросов и ответов со спикерами митапа.
Встречаемся в онлайне 27 сентября в 18:00 по Москве.
Зарегистрироваться на митап.
Реклама, ООО «Вайлдкард», ИНН 7801718607, erid 2RanykQMRCt
Java. Быстрая сортировка. Реализация алгоритма QuickSort.
Как работает быстрая сортировка, разбор и реализация алгоритма.
источник
👉@BookJava
The elusive and beautiful Java Method Reference
https://medium.com/javarevisited/the-elusive-and-beautiful-java-method-reference-97e566d2088b
👉@BookJava
🦾 Освойте востребованный фреймворк всего за 5 месяцев и создавайте приложения на Java
🔥🔝 Знание Spring Framework – один из самых востребованных скиллов для разработчика, многие крупные проекты ищут именно таких специалистов на самые желанные офферы.
5️⃣ Вместе с OTUS вы можете освоить Spring всего за 5 месяцев в рамках курса «Разработчик на Spring Framework»!
➡️ Пройти тест
❌❌Что даст вам этот курс:
- Умение эффективно работать в проектах, где есть Spring
- Знание современных возможностей Spring
- Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке
- Умение быстро проходить путь от идеи до production-grade
- Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5)
🟠Курс доступен для приобретения в рассрочку!
Пройдите бесплатное вступительное тестирование прямо сейчас и узнайте, готовы ли вы стать студентом!
➡️ Пройти тестРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Эволюция Java
Наиболее важные усовершенствования языка, которые были сделаны в Java за последние 20 лет
https://betterprogramming.pub/the-evolution-of-java-37e4dc8e6cc7
👉@BookJava
Servlets
Создание и отладка сервлета. Servlet Intro
POST запросы, параметры, формы, файлы. Servlet Intro
JSP шаблоны для Java Servlet
JSTL для JSP (Java Servlet)
Создание JSP тэга и своей библиотеки тэгов (Java Servlet)
источник
👉@BookJava
Полное руководство по виртуальным потокам Java
1. Настройка
2. Почему виртуальные потоки?
3. Как создать виртуальный поток
4. Как работают виртуальные потоки
5. Планировщик и совместное планирование
6. Закрепленные виртуальные темы
7. ThreadLocal и пулы потоков
8. Некоторые внутренности виртуальных потоков
9. Выводы
10. Приложение: Конфигурация Maven
https://blog.rockthejvm.com/ultimate-guide-to-java-virtual-threads/
👉@BookJava
Полезные и неизвестные библиотеки Java
https://piotrminkowski.com/2023/01/30/useful-unknown-java-libraries/
👉@BookJava
Делаем свою простейшую систему сборки для Java
Довелось мне обучать одного знакомого, желающего войти в ИТ (привет, Саша!). Человек он упорный, прошел разные курсы, стажировки, упорно продолжает идти вперед и уже вполне тянет на уровень джуна. Но иногда внезапно задает такие вопросы, из которых я понимаю, что у него огромные дыры в базовых знаниях и представлениях. На курсах этому, видимо, не учат.
Один из последних вопросов был про устройство сборки. И он показал явное непонимание того, как исходный код собирается в исполняемый файл и запускается. Начинающим обычно говорят в духе "вот создаешь Gradle-проект, в IDE жмешь кнопочку запуска и все работает". Gradle/Maven при этом представляются таким черным ящиком, в котором есть кнопка сборки и запуска, а внутри - черная магия. И как только возникает необходимость что-то в этом простом процессе изменить или понять - начинаются проблемы.
https://habr.com/ru/articles/752014/
👉@BookJava
♨️ Тест на знание языка Java
— Ответьте на 21 вопрос и проверьте, насколько хорошо вы знаете язык Java и готовы освоить Spring. Сможете сдать — пройдёте на продвинутый онлайн-курс "Разработчик на Spring" Framework со скидкой!
👉 ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА "Разработчик на Spring Framework"
Курс доступен в рассрочку.
🎁 Пройдете успешно тест, получите доступ к открытым урокам курса.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Дорогие друзья!
Редакция канала @bookjava поздравляет вас с праздником!!!
👉@BookJava
Java
Утечка памяти java за 6 минут
Тестирование на java (junit, mockito)
источник
👉 @BookJava
Java Pro Tips: Редкие трюки для повышения эффективности разработки
В этой статье мы рассмотрим некоторые редкие и мощные советы и приемы, которые помогут вам раскрыть весь потенциал Java и создать элегантный и эффективный код.
От функциональных интерфейсов и ссылок на методы до потокового API и необязательных классов - мы рассмотрим некоторые расширенные возможности Java, которые часто упускаются из виду, но могут значительно улучшить ваш опыт программирования.
Итак, давайте погрузимся в работу и раскроем всю мощь Java!
https://blog.devgenius.io/java-pro-tips-rare-tricks-to-supercharge-your-programming-d4290c100d56
👉 @BookJava
🔥 Ещё одна часть бесплатного открытого урока для разработчиков на Spring Framework
📢📢 13 сентября в 20:00 мск на открытом уроке «Основы Spring Cloud» продолжим разбираться со Spring Cloud.
🟠Во второй части будут рассмотрены такие функции как сбор метрик, трассировка запросов и их визуализация, а также Spring Cloud Circuit Breaker.
Урок проходит в рамках курса «Разработчик на Spring Framework», это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени! В дальнейшем возможно приобретение курса в рассрочку.
👉 Регистрируйтесь прямо сейчас и ставьте событие в календарь, чтобы ничего не пропустить!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www. otus.ru
Автоматическое создание интерактивных диаграмм последовательностей поведения Java-кода во время исполнения
Диаграммы последовательностей являются невероятно мощным средством визуализации и понимания поведения во время выполнения программы. Присущая им структура - объекты перетекают по странице, время течет вниз по странице - интуитивно понятна и проста в освоении. Кроме того, они являются одним из лучших инструментов для разработчиков и технических специалистов, не являющихся разработчиками (например, инженерных менеджеров и менеджеров по продуктам), при обсуждении дизайна кода.
https://dev.to/appmap/automatically-generate-interactive-sequence-diagrams-of-your-java-codes-runtime-behavior-2jg0
👉@BookJava
В науке управления фокус внимания чаще всего указывает на то, как команде работать «больше». Как мотивировать сотрудников, какие процессы и метрики применять. Это чрезвычайно важный навык руководителя.
Действительно, руководителю необходимо получать результат, используя минимум ресурсов. И здесь есть небольшой подвох, причинно-следственная нестыковка. Разве же работать «больше» и получать результат, нужный нашему заказчику, это одно и то же?
👉На бесплатном вебинаре онлайн-курса «Team Lead разработки» — «Как тимлиду делать меньше, чтобы получать больше» — обсудим вопрос: всегда ли тяжелый труд означает замечательный результат?
Обсудим часто остающийся в тени ресурс повышения результативности путем минимизации выполняемой работы. А также научимся применять этот ресурс.
Вебинар будет полезен IT-специалистам, принимающим решения всех уровней и влияющим на загрузку команд — тимлидам, руководителям проектов, архитекторам, аналитикам.
После вебинара вы увидите и научитесь использовать секретный ресурс увеличения результативности через минимизацию затрат. А что, так можно было?!
🔥Также вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Project Loom и Spring Boot: тесты производительности
Сегодня я хочу выяснить, готов ли Project Loom заменить Spring WebFlux при создании высоконагруженных приложений с высокой пропускной способностью.
Проблемы реактивного подхода
WebFlux - замечательная технология с фантастической производительностью, однако:
- При использовании реактивного подхода код сложнее писать и сопровождать
- Стектрейсы малополезны при разборе ошибок
- Все связанные клиенты/библиотеки также должны быть написаны в реактивном стиле
Что такое Project Loom
- В статусе превью-фичи с Java 19, разработка стартовала в 2017
- Основное нововведение - виртуальные потоки, призванные значительно снизить трудозатраты на написание и сопровождение приложений
- Предполагается возможность создавать миллионы виртуальных потоков. (Прим. пер. мне кажется, автору стоило явно выделить основную мысль. Поскольку виртуальные потоки дешевы, то запуск блокирующего кода в таком потоке тоже дешевая операция, т.к. реальный системный поток при этом не блокируется и может заняться чем-нибудь полезным )
- Предполагается минимальное вмешательство в существующий код
- Стек виртуальных потоков хранится в хипе JVM
Rus https://habr.com/ru/articles/745748/
Eng https://filia-aleks.medium.com/project-loom-with-spring-boot-performance-tests-c007e0e411c8
👉@BookJava
Вышла Java 21
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.
Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Скачать JDK 21 можно по этим ссылкам:
Oracle JDK (лицензия NFTC)
OpenJDK (лицензия GPLv2 with Classpath Exception)
https://habr.com/ru/articles/762084/
👉@BookJava
🧚♀️Задумывались ли вы когда-нибудь, как может выглядеть идеальная библиотека для работы с данными? Наверняка с помощью такой библиотеки можно очень гибко настраивать валидацию данных, трансформировать данные в разные формы, описывать предметную область, находить закономерности в массивах данных, генерировать тестовые данные по образцу, разбирать не структурированные данные на составные части и даже исправлять грамматические ошибки. Вдобавок, она должна быть простой для понимания и производительной. Такая библиотека это не мечта, а вполне себе реальность!
👉На бесплатном вебинаре онлайн-курса «Clojure Developer» — «Malli, программируем на схемах» мы познакомимся с библиотекой Malli, посмотрим на стандартные (и не очень) сценарии её использования: регистрация
Экспертизой поделится руководитель программы и практик Сергей Ткаченко (Clojure Software developer / Team Lead).
🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Java Code Review Solution
https://dzone.com/articles/java-code-review-solution
👉@BookJava
Когда команда программистов работает над разными частями проекта, могут возникнуть проблемы при объединении веток кода в одну, или даже их потеря. Для того, чтобы следить за изменениями и избегать ошибок, профессионалы работают с Git — системой контроля версий кода.
На бесплатном курсе «Основы работы с Git» вы узнаете:
— зачем нужны сервисы контроля версий кода и что они умеют;
— основные команды для работы в Git;
— как работать с командным репозиторием через IDE и консоль;
— принципы работы популярных сервисов (GitHub, Terminal, GitBash и пр.);
— основы командной разработки.
Пройдите курс Яндекс Практикума «Основы работы с Git», чтобы сделать процесс написания кода комфортнее и улучшить навыки командного взаимодействия.
→ Пройти бесплатный курс
❓Как создать приложение на Java с нуля?
Покажем во время практического бесплатного открытого урока «Простой консольный файловый менеджер на Java», который пройдёт в рамках курса "Java-разработчик" от OTUS.
🔥Урок будет полезен тем, кто хочет:
— Начать изучать Java с нуля.
— Посмотреть, как на практике создаются консольные Java-приложения.
— Разобраться как в Java работать с файловой системой через java.io.
🔥В результате урока вы:
— Увидите, как пишется код и создаются программы на языке Java.
— Узнаете, как работать с пакетом java.io.
Дата: 19 сентября в 20:00 мск.
Это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени!
👉Регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Потоковая обработка данных с помощью Kafka Streams: архитектура и ключевые концепции
При реализации потоковой обработки и анализа данных может возникнуть необходимость агрегирования записей для объединения нескольких независимых поток данных или обогащения какой-либо модели данных. Для этой цели может использоваться Kafka Streams, которая позволяет выполнять обработку данных в режиме реального времени.
В этой статье мы рассмотрим основные компоненты Kafka Streams и теоретические аспекты их использования. Мы будем использовать последние версии технологий, доступных на сегодня: Kafka 3.4.0 и Java 17 в качестве языка программированию. Для снижения входного порога мы будем использовать только нативные возможности Kafka и Kafka Streams, и не будем рассматривать решения с использованием различных фрейморков вроде Spring.
https://habr.com/ru/articles/747658/
👉@BookJava
Как уменьшить размер докерного образа JVM не менее чем на 60%
Если вы давно работаете с языками на базе JVM (Java, Kotlin, Scala и др.), то, возможно, заметили, что начиная с Java 11 среда выполнения Java Runtime Environment (JRE) больше не имеет отдельного дистрибутива. В связи с этим решением многие дистрибьюторы докерных образов Java Development Kit (JDK), такие как OpenJDK, Amazon Correto и другие, не предоставляют JRE в виде отдельного докерного образа. Использование этих образов привело к тому, что общий размер образа Docker составил около 360 МБ, а реальный размер jar-приложения - около 26 МБ. На мой взгляд, общий размер Docker-образа слишком велик, и его следует уменьшить, чтобы сэкономить место и пропускную способность сети для всех, кто будет использовать этот Docker-образ. Теперь давайте посмотрим, как радикально уменьшить размер Docker-образа.
https://blog.devops.dev/how-to-reduce-jvm-docker-image-size-by-at-least-60-459ec87b95d8
👉@BookJava
Готовы погрузиться в мир нереляционных DB? Тогда добро пожаловать на онлайн-курс «NoSQL» от OTUS!
📢📢 12 сентября в 20:00 (мск) мы приглашаем вас на бесплатный открытый урок, где автор курса - Евгений Аристов, архитектор высоконагруженных баз данных и инфраструктуры с 25-летним опытом в разработке, - расскажет вам о создании отказоустойчивых кластеров MongoDB.
На открытом уроке мы исследуем:
📌 Цели и задачи MongoDB;
📌 Концепцию кворума;
📌 Основные моменты установки и настройки кластера MongoDB.
Это уникальная возможность не только окунуться в тему MongoDB, но и познакомиться с форматом нашего курса.
👉 Пройдите тестирование для регистрации на открытый урок и проверьте свой уровень компетенций
Продолжить изучение тонкостей NoSQL вы сможете на самом курсе, который стартует уже в сентябре.
Оплата курса возможна в рассрочку. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Интересуетесь профессией программиста, но не разбираетесь ни в IT-терминах, ни в языках? Освойте разработку или тестирование с нуля на курсах Яндекс Практикума.
Без опыта в IT можно стать программистом, который пишет на Python, Java или С++; веб-разработчиком, мобильным разработчиком или тестировщиком.
Что вас ждёт во время учёбы:
— Интерактивный учебник с теорией и возможностью писать код в тренировочной программе.
— Собственные рабочие проекты: от чат-бота, сайта-отзовика до соцсети и других многофункциональных сервисов. Их можно положить в портфолио и показать на собеседовании.
— Наставники и код-ревьюеры – разработчики из Яндекса и других IT-компаний. Они объяснят сложные темы на вебинарах, проверят код, помогут улучшить проекты
— Специалисты карьерного центра, которые научат искать работу, составлять резюме, готовиться к собеседованиям и тестовым заданиям.
В конце пути — новая профессия и проекты, которыми можно гордиться. Наши выпускники берут проекты на фрилансе, устраиваются в стартапы и крупные компании — Яндекс, ВТБ, МТС, Перекрёсток, Playrix, Сбер и другие.
Пройдите первый бесплатный урок →
Глубокое погружение в Java Memory Model
В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.
👉 @BookJava
Как найти "мертвый" код в Java-сервисах
При создании решений код, который мы пишем, может прослужить много лет. При случайном просмотре устаревшего кода мы можем задаться вопросом: используется ли он до сих пор? Отсутствующая документация или устаревшие тесты не помогут нам ответить на этот вопрос. Если поспрашивать, то никто толком не знает. Давайте попробуем его удалить? А потом начинается хаос: выясняется, что она все еще используется для поддержки некоторых старых пользователей, на случай непредвиденных обстоятельств, или для той забытой интеграции, которую все еще используют.
Если код действительно больше не используется, то зачастую это происходит по историческим причинам. Возможно, сценарии использования были заменены новыми функциональными возможностями или устарели, а код забыли удалить. В случаях, когда исследовать "мертвый" код не так уж и просто, как повысить уверенность?
https://blog.picnic.nl/how-to-find-dead-code-in-your-java-services-d167c8f22838
👉@BookJava