Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
Что находится внутри класса Math?

👉@BookJava
👍7👏2
Совет по SpringFramework 💡

При использовании @SpringSecurity вы можете получить доступ к текущим данным аутентификации, добавив объект Authentication в качестве параметра метода в вашем @RestController class.

👉@BookJava
👍9
Slim Docker Images для Java

Из этой статьи вы узнаете, как создавать слим Docker-образы для ваших Java-приложений с помощью Alpine Linux и Jlink.

https://piotrminkowski.com/2023/11/07/slim-docker-images-for-java/

👉@BookJava
👍5
Совет по Spring Boot💡

Ошибка конфигурации сервера Spring Boot

https://gist.github.com/aoudiamoncef/bba3f7c79f1056a22a3a82b3a171b5b3

👉@BookJava
👏5👍3
Совет по Spring Boot 💡

Вы думаете о замене 🍃`RestTemplate` на новый Spring `RestClient`? Конфигурация SSL очень проста благодаря поддержке 🔐`SslBundles` через интерфейс `RestClientSsl` 👆

👉@BookJava
👍102
Пишем минимальный ActivityPub-сервер с нуля

Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.

В этой статье мы рассмотрим основы протокола ActivityPub и напишем минимально возможную реализацию сервера, позволяющую отправлять посты в сеть («fediverse»), подписываться на других пользователей и получать от них обновления.

https://habr.com/ru/articles/702724/

👉@BookJava
👍42
Все, что вам нужно знать о Java21

Как опытные Java-разработчики, так и новички найдут этот пост информативным и познавательным.

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

https://www.unlogged.io/post/all-you-need-to-know-about-java21

👉@BookJava
👍4
Test Driven Development (TDD) in Java

Creating a Queue Abstract Data Type class
Introduction to Test Doubles Dummies and Stubs
Introduction to Test Doubles Spies
Introduction to Test Doubles Mocks
Introduction to Test Doubles - Fakes

источник

👉@BookJava
👍5
Глубокое погружение в Java Memory Model

В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

👉 @BookJava
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Что если бы Java-разработчики могли создавать веб-приложения, не прибегая к помощи JavaScript? 🤔

👉 @BookJava
🔥9👎5👍3
This media is not supported in your browser
VIEW IN TELEGRAM
IntelliJ IDEA EAP обеспечивает навигацию по журналам именно в том месте, где было зарегистрировано сообщение!

https://blog.jetbrains.com/idea/2024/02/intellij-idea-2024-1-eap-6/

👉 @BookJava
👍8🤯2
Подборка Telegram каналов для программистов

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux


https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика

https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT

Чат программистов📌
https://t.me/developers_ru

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Excel лайфхак📌
https://t.me/Excel_lifehack
🔥2👍1
ИИ-чатбот + веб-интерфейс менее чем за 20 строк на Java с использованием Spring AI и Vaadin 🤖

А в качестве нативного образа GraalVM, он запускается за 0,1 секунды!

https://github.com/marcushellberg/spring-ai-web

👉 @BookJava
👍4👎1
Pro Spring 6: An In-Depth Guide to the Spring Framework
Автор: Chris Schaefer (2023)

Эта книга выходит далеко за рамки основ: вы узнаете, как использовать новейший Spring Framework 6 для создания различных уровней и частей современных сложных корпоративных Java-прикладных систем, сверху донизу, включая доступ к данным, генерацию SQL с помощью jOOQ, персистентность с помощью Hibernate, транзакции, настройку безопасности, классические уровни web и презентаций и добавление некоторой реактивности.

Скачать

👉 @java_360
👍5
Абстрактные классы и методы в Java: Объяснение!

Абстракция - это процесс сокрытия деталей реализации и представления пользователю только основных функций. Это позволяет сосредоточиться на том, что делает объект, а не на том, как он это делает.

В Java абстрактные классы и методы являются ключевыми инструментами для реализации абстракции. Абстрактные классы служат шаблонами для создания подклассов, а абстрактные методы определяют поведение этих подклассов.

1. Используйте абстрактные классы для моделирования иерархий связанных классов: Абстрактные классы - отличный способ представить группу связанных классов, имеющих общую функциональность. Создав абстрактный класс, определяющий общие методы и свойства, вы сможете избежать дублирования кода и сделать свой код более модульным и удобным для сопровождения.

2. Используйте абстрактные методы для определения общего поведения: Абстрактные методы полезны, когда вы хотите обеспечить определенное поведение для нескольких подклассов. Определив абстрактный метод в абстрактном классе, вы можете гарантировать, что все подклассы реализуют одно и то же поведение по-своему.

3. Не злоупотребляйте абстрактными классами и методами: Хотя абстрактные классы и методы могут быть мощными инструментами, важно не злоупотреблять ими. В целом, создавать абстрактный класс или метод следует только в том случае, если у вас есть четкая причина для этого. Чрезмерное использование может привести к излишней сложности и усложнить сопровождение кода.

4. Соблюдайте соглашения об именовании: При присвоении имен абстрактным классам и методам важно следовать стандартным соглашениям об именовании в Java. Абстрактные классы следует называть абстрактным существительным (например, "Shape"), а абстрактные методы - глаголом (например, "draw").

5. Документируйте свой код: Как и при работе с любым кодом, важно документировать абстрактные классы и методы, чтобы сделать их более понятными для других разработчиков. Используйте четкие и лаконичные комментарии, чтобы объяснить назначение и поведение каждого класса и метода.

https://www.appsdeveloperblog.com/17-abstract-classes-and-methods-in-java/

👉 @BookJava
👍5
Совет по SpringFramework 💡

Самый простой способ создания динамических SQL-запросов в JPA - это Query By Example. Вы создаете объект-пример, который оборачиваете в пример, а затем передаете его в ваш @SpringData
хранилищу. JPA создаст WHERE только с теми полями, которые вы задали.

👉 @BookJava
6👍5🤔3😁1