453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
22 марта вышла общедоступная версия Java 18. Успели посмотреть, что новенького (и пошутить о том, что мы получили UTF-8 по умолчанию аж в 2022 году)?

Каждый раз после выхода обновленной версии, даже если изменений совсем немного, наблюдаю у некоторых недовольство: «Ну вот, опять что-то читать придется». Правда, такие разрабы упускают из виду, что появилось в API, и потом тащат, например, Base64 из внешних библиотек, не знают про класс Objects.

Так что лучше быть в курсе. Подробно про новые фичи можно почитать здесь.
Joshua Bloch, Effective Java
Joshua_Bloch_-_Effective_Java_3rd_-_2018.pdf
2.2 MB
Признанная классика для всех, кто работает с Java. В книге представлены 57 правил написания качественного кода: тут и примеры, и полезные советы, и эффективные методики.

🔺 Java и основные библиотеки (java.lang, java.util, java.io);

🔺 анализ распространенных идиом и шаблонов разработки;

🔺 советы по механизму сериализации.

Автор книги, кстати, создал несколько ключевых классов (java.lang и Java Collection framework), так что точно знает, о чем говорит.
Помните, мы недавно говорили о создании ID атрибутов в JPA? Появилась классная статья о работе с сущностями. Автор на конкретных кейсах разбирает преимущества JPA Buddy и рассказывает, как с помощью плагина сэкономить время и силы. Однозначно пригодится, если вы часто пишете для сущностей POJO-классы и используете Spring Boot и Spring Data JPA.
Большая шпаргалка по Java, чтобы не искать каждый раз ответ на интересующий вопрос по просторам интернета. Удобно, когда нужно быстро что-то вспомнить. Плюс, страница регулярно обновляется и дополняется.
Класс A не полностью реализует методы интерфейса B. Каким образом он должен быть определен?
Anonymous Quiz
4%
как final-класс
14%
как внутренний для другого класса
71%
как abstract-класс
2%
как private-класс
9%
как интерфейс
Cay Horstmann, “Core Java, Volume I—Fundamentals”
Core Java, Volume I―Fundamentals.pdf
45.4 MB
Первая часть одного из самых знаменитых изданий по Java.

📌 основы современного подхода к программированию;

📌 методики ООП и параллельного программирования;

📌 синтаксис и безопасность.

Если покажется сложноватой, можно попробовать начать с Эванса и Флэнагана, а к Хорстманну вернуться позднее.

Прикрепляю оригинал. Не читайте, пожалуйста, на русском, если не хотите видеть каркас коллекций Java вместо Java Collections Framework и другие переводческие приколы.
Когда PM ищет, кого бы попросить поработать на выходных
В идеальном мире код пишут так, что комментарии излишни, но в реальности, увы, это невозможно. Поэтому нужно заботиться о том, чтобы комментарии мог понять любой разработчик на проекте. Дело не только в орфографии и грамматике, но еще и в формулировках – часто они оказываются туманными и только запутывают ситуацию.

Специально для таких случаев появился плагин Comment Lint. Он анализирует текст комментариев с помощью сервиса Glvrd и показывает, как их можно улучшить. В статье – подробности об использовании и примеры работы с комментариями.
При работе с микросервисами приходится учитывать кучу факторов. Разбираться в межсервисном взаимодействии лично я начал далеко не сразу: сложнее всего было подступиться к аспекту security, так как инфы на этот счет либо мало, либо она очень поверхностная.
Автор статьи столкнулся с похожей проблемой и, исходя из своего опыта, решил описать реализацию security на конкретной задаче. Использует Spring, OAuth2, JWT и Service Account.
Ну и за обложку отдельный плюс.
В какой переменной окружения хранятся несколько корневых каталогов иерархии пакетов в файловой системе компьютера?
Anonymous Quiz
8%
PACKAGEROOT
65%
CLASSPATH
14%
ROOT
7%
CLASSROOT
6%
PACKAGEPATH
Продолжая тему микросервисов: а как дела обстоят с интеграционным тестированием? Чем больше самих микросервисов и взаимосвязей между ними, тем острее необходимость проверять, как вообще работает система и насколько ее поведение соответствует ожиданиям.

В статье описан достаточно легкий способ создания интеграционных тестов для встраивания в CI/CD-процесс. А в комментариях порекомендовали nanocloud, чтобы написание интеграционных тестов можно было встраивать прямо в процесс разработки.
Потому что переработки – верный путь к выгоранию!
Неплохие видеоуроки по Java Hibernate. Подробно освещены настройка конфигов, JPA, мапинг, а также разные запросы.

Кстати, на канале есть и другие материалы по Java (даже детальный разбор code conventions), а еще общая теория по ООП, так что рекомендую взять на заметку.
Переменные в Java делятся на 3 типа:

🔺 локальные переменные;
🔺 переменные экземпляра;
🔺 глобальные переменные.

При этом локальные переменные и переменные экземпляра нельзя объявлять как статические.

Сокрытие статических и нестатических переменных происходит по-разному, и его не следует путать с переопределением метода. Подробный разбор темы – в статье.