Библиотека джависта | Java, Spring, Maven, Hibernate
25.2K subscribers
1.28K photos
23 videos
36 files
2.19K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://t.me/proglibrary/8353
Учиться у нас: https://proglib.io/w/907158ab

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
😓😓 Перевод Spring Boot приложения с HTTP на HTTPS без ругани браузера

Данная статья расчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении. В этой статье работаем именно со Spring Boot и вшитым в него Apache Tomcat.

Статья игнорирует всевозможные правила безопасности Linux и призвана показать как достичь элементарной работы с HTTPS в Spring Boot, не сильно углубляясь в смежные темы.

Читать статью

#туториал
Метод setUp()

Метод setUp() (или before(), в предыдущих версиях JUnit) используется для настройки начальных условий перед выполнением каждого тестового метода. Этот метод выполняется перед каждым тестовым методом, который помечен аннотацией @Test. Это позволяет вам подготовить общие данные, создать объекты и настроить другие условия перед тестированием.
Свежий #дайджест для джависта

🛟 New SIP — улучшение синтаксиса границ контекста и заданных значений

🛟 JEP 447: Statements before super(...) — позволяет добавлять инструкции перед вызовом super в конструкторах. Это дает разработчикам возможность добавлять проверку или другую обработку переменных перед вызовом родительского конструктора

🛟 Ориентированные на производительность Spring Data JPA и Hibernate — затрагивается проблема производительности наших любимых JPA & Hibernate

🛟 The Functional Programming in Scala — Jetbrains добавили курс по Scala. Крутая тема для новичков — курсы, интегрированные в среду разработки

🛟 Что нового в Testcontainers в Spring Boot 3.2.0 — ServiceConnection теперь может работать с контейнерами Oracle Database Free, OpenTelemetry Collector и добавили специальное свойство spring.testcontainers.beans.startup
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🤔🤔 Безработные айосники, мертвый PHP и бесполезные «саперы»: топ-5 мифов о будущем российского IT

Разбор прогнозов и обещаний, которые всколыхнули рынок, но показались нам нереалистичными.

👉 Спрос на iOS-программистов продолжит падать (как и зарплаты)
👉 Ruby-специалисты не нужны рынку
👉 Зарплаты PHP-разработчиков упадут, потому что язык умирает
👉 «Сапёры» скоро потеряют работу
👉 Kotlin-программисты заменят Java-специалистов

А вы что думаете?

Читать статью

#почитать
В подкасте Владимир Бухтояров поделится мнением о библиотеке Bucket4J, распределенном рейт лимитере и опен сорсе

00:00:00 Начало
00:01:34 О себе
00:14:12 АПИ для биллинга и платформа
00:24:06 Golden Gate и обновление кэша
00:29:08 Подписки и переезд на Кассандру
00:33:00 Железные ноды Кассандры
00:35:20 История Bucket4j
00:40:46 Алгоритмы рейт лимитинга — Токен Бакет
01:01:42 Претензии к Токен Бакет алгоритму
01:09:04 Лики бакет алгоритм
01:28:04 Маппинг бакета на ключ
01:45:14 Опенсорс — сложно?
01:50:54 Не используйте распределенные рейт-лимитеры
01:56:26 Рейт лимитинг vs Биллинг
01:58:38 Предыдущее непопулярное мнение
02:02:30 Непопулярное мнение
02:09:00 Непопулярное мнение 2

Слушать подкаст в Apple | Spotify | Yandex

#подкаст
🔍 Тестирование в Java: лучшие практики, инструменты и
рекомендации для разработчиков

Качественное тестирование — залог успешного Java-проекта. В этой статье мы поделимся лучшими практиками, инструментами и методами, которые помогут вам создавать надежный и эффективный код.

Читать статью
🥑 Подборка лучших статей «Библиотеки джависта» за апрель: сохраняй в заметки, чтобы не пропустить #самыйсок

🐛 7 признаков неопытного программиста
✍️ Как написать отличную документацию
⚙️ Названия веток и комментарии к коммитам в Git: лучшие практики
🙅‍♂️ Дискриминация на работе: в чем проявляется и что делать, если вы с ней столкнулись
🧑‍💻 Как я входил в IT: опыт подписчиков «Библиотеки программиста»
🛠 Что такое прогрессивные веб-приложения
🌐 Использование глобальной контрольной группы на практике: тонкости, нюансы, подводные камни
🤺 Искусство оскорблять: как поставить коллегу на место и отбить желание работать над проектом
🤖💣 ИИ-ассистенты разработчика: скрытая угроза
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году
🤖🔢 Математические основы генеративных нейронных сетей: что нужно знать для их изучения
🗿🔨 Как мы разбили монолит на маленькие кусочки и что из этого вышло
🗺💼 Из Москвы в Дублин: опыт российского разработчика из Amazon
🐰 Как решить проблему высокой связанности сервисов с помощью событийно-ориентированной архитектуры и RabbitMQ
👁️💼 Открытые и скрытые вакансии в IT: как найти работу мечты

Существует целый пласт скрытых вакансий, о которых знает ограниченный круг лиц. Как найти эти вакансии и не упустить свой шанс? Читайте в нашей статье.

🔗 Читать статью
🔗 Зеркало
#дайджест выходного дня

🔴 Анализ энергопотребления JVM для JDK 21 — какие JVM наиболее производительные и энергоэфективные

🔴 Когда интеграция БД превосходит микросервисы — автор предлагает несколько вариантов архитектуры, подробно рассматривая микросервисную архитектуру и подход интеграции через БД

🔴 Внутренний мир: Java NIO — материал об основных концепциях и устройстве java.nio, используемом для обеспечения неблокирующего ввода или вывода

🔴 JEP 463: Неявно объявленные классы и основные методы экземпляра — содержит изменения правил для неявного объявления классов в исходных файлах и процедуры выбора основного метода для вызова

🔴 IntelliJ Scala Plugin 2024.1 — куча полезных изменений для работы со Scala 3 и его синтаксисом
serialVersionUID

Это статическое поле, которое используется для версионирования сериализованных объектов. Когда объекты сериализуются, serialVersionUID указывает версию класса, используемую при сериализации и десериализации.

Проблема, которую serialVersionUID решает, связана с обеспечением совместимости при сериализации. Если класс был сериализован с определенной версией serialVersionUID, то при десериализации Java будет проверять, соответствует ли текущая версия класса версии, сохраненной в сериализованных данных. Если версии не совпадают, может быть брошено исключение InvalidClassException, указывающее на несовместимость версий.
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
🤔🤔 Как создать свой сборщик проектов

Автор делится опытом написания проекта, описывает с какими проблемами пришлось столкнуться, рассказывает о причинах принятия технических решений, примеры использования шаблонов проектирования. При этом фокус делает на том, каким проект получился в итоге.

Статья направлена на пока еще не очень опытных инженеров, которые хотят познакомиться с проектом сложнее Hello world на Spring Boot и узнать что-то новое в процессе.

Читать статью

#гайд
SIP-61 — Развертывание дефолтных аргументов для бинарной совместимости

Интересный SIP от Li Haoyi, с бурным обсуждением нейминга от Одерски. Само по себе предложение выглядит вкусным для либ: в текущей реальности, когда в классе или функции добавляется параметр, имеющий дефолтное значение, новая версия либы является семантически совместимой для пользователя, но бинарно несовместимой с предыдущей версией. Предлагается создать специальную аннотацию, помечать ею такие поля и получать в итоге бинарную совместимость.

Подробнее тут

#почитать