Библиотека джависта | Java, Spring, Maven, Hibernate
25.7K subscribers
1.63K photos
32 videos
42 files
2.42K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

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

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
💁💁 Самый простой способ проверить работу веб-приложения под нагрузкой на примере JMeter и Grafana

Рассказ о нагрузочном тестировании с помощью JMeter, Grafana и Prometheus, а также, как тестировать три сценария: с двумя, 10 и 100 запросами в секунду.


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

#гайд
Локальные переменные в лямбда-выражениях

Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).

Это означает, что после их инициализации переменные не могут быть изменены.

Использование локальных переменных в лямбда-выражениях может быть очень полезным для передачи дополнительных данных в лямбда-выражения
#дайджест перед выходными

⬅️ Hibernate WITH RECURSIVE query — статья посвящена запросам WITH RECURSIVE в Hibernate, как они работают и как могут быть использованы для иерархических структур данных.

⬅️ How to Identify Dependencies in Your Codebase During Microservices Migration — туториал о миграции с монолита на микросервисы с использованием Digma для сбора информации о зависимостях внутри кодовой базы

⬅️ Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации — в руководстве объясняют, как генерировать код HTTP клиентов для Spring Boot, используя плагин openapi-generator для Gradle

⬅️ Scalatra — крошечный веб-фреймворк, похожий на Sinatra, для Scala

⬅️ Разработка Java-проекта с ChatGPT-4 — от идеи до реализации
🎮🚀 Saturated Outer Space: как инди-разработчики перезапускают игру и бросают вызов жанровым стереотипам

Разработчики S.O.S. рассказывают, как создавать и продвигать инди-игру с нулевым бюджетом и что делать, если не хватает ресурсов продолжать дальше.

👉 Статья
👉 Группа игры ВК
👉 Стим
Fastexcel

Это легкая и производительная библиотека Java для работы с файлами Excel. Она позволяет читать, создавать и модифицировать электронные таблицы XLSX, используя простой и понятный API.
Привет, друзья! 👋

Мы готовим статью о возможном снижении уровня знаний среди IT-специалистов и хотим узнать ваше мнение. Поделитесь своими мыслями, ответив на следующие вопросы:

Как вы оцениваете уровень знаний современных IT-специалистов по сравнению с их предшественниками 10-15 лет назад? 🤔

- Значительно снизился 📉
- Немного снизился 🔻
- Остался на том же уровне ➡️
- Немного повысился 🔼
- Значительно повысился 📈

Какие факторы, по вашему мнению, наиболее сильно влияют на уровень знаний IT-специалистов сегодня? (выберите до 3 вариантов) 🧠

- Качество образования в вузах 🎓
- Доступность онлайн-курсов и самообучения 💻
- Требования рынка труда 💼
- Развитие технологий и инструментов разработки 🛠️
- Влияние социальных сетей и информационного шума 📱
- Отток квалифицированных специалистов ✈️
- Другое (укажите в комментариях) 🗨️

Как вы считаете, что нужно сделать для повышения уровня знаний IT-специалистов? 💡

Поделитесь своими идеями в комментариях! Самые интересные и конструктивные предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙏
🌐 9 основных паттернов для проектирования распределенных систем

В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.

Читать статью
1722832257768 (1).gif
4.4 MB
10 важнейших компонентов веб-приложения

1. CI/CD pipelines: Все начинается с непрерывной интеграции и доставки (Jenkins, GitHub).
2. Запросы пользователей: После разрешения DNS запросы поступают на сервера.
3. Балансировщики: Равномерно распределяют запросы между серверами (Nginx, HAProxy).
4. CDN: Запросы могут обслуживаться через сеть доставки контента.
5. API: Веб-приложение взаимодействует с бекендами через API.
6. Базы данных и кэши: Бекенды взаимодействуют с базами данных или кэшами для получения данных.
7. Очереди задач: Большие задачи отправляются на воркеры с помощью очередей.
8. Поисковые службы: Поиск поддерживается службами полнотекстового поиска (Elasticsearch, Apache Solr).
9. Мониторинг и логирование: Хранение логов помогает анализировать данные, чтобы убедиться, что все работает исправно (Sentry, Grafana, Prometheus).
10. Службы оповещения: Уведомляют разработчиков о проблемах для быстрого реагирования.

💬 Какие еще компоненты вы добавили бы в архитектуру производственного веб-приложения?
😨 Страх ошибок: как он мешает вам писать код

Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
Что будет результатом этого фрагмента кода?
💬Штат сокращается: OpenAI покинули три ключевых фигуры.

1️⃣ Джон Шульман, сооснователь и "отец" ChatGpt, проработавший в компании более 9 лет, переходит в Anthropic.

2️⃣ Грег Брокман, сооснователь, бывший CTO и фактически правая рука Сэма Альтмана решил, что 9 лет без отдыха — это перебор, и уходит в длительный отпуск (на год).

3️⃣ Питер Денг, вице-президент по продуктам для потребителей.

Ещё и Илон Маск подливает масло в огонь возобновил судебный процесс против OpenAi и его сооснователей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Топ книг по Java для опытных разработчиков

🔸
Java для опытных разработчиков

Книга раскрывает внутренние механизмы работы языка. Она предлагает уникальные главы по конкурентному выполнению, сборке и развертыванию современных проектов, а также отдельные разделы, посвященные альтернативным языкам для JVM, таким как Kotlin и Clojure. Эта книга поможет вам не только овладеть передовыми методологиями разработки ПО, но и освоить принципы функционального программирования и оптимизации быстродействия, что делает её незаменимым инструментом для профессионального роста.

🔸Java: устранение проблем

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

🔸 Реактивное программирование с применением RxJava

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

🔸 97 вещей, о которых должен знать каждый Java-программист.


Книга объединяет мнения и советы нескольких десятков опытных Java-разработчиков, создавая единое руководство для начинающих программистов. Читатели найдут подробные инструкции по основным темам работы с Java, а также истории профессионального роста от экспертов. Книга служит отличным путеводителем для тех, кто хочет глубже погрузиться в мир Java-программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Свежий #дайджест по Java

👩‍💻Compose Desktop ShadowJar — статья посвящена созданию автономного JAR-файла для приложений на Compose Desktop с использованием ShadowJar и ProGuard.

👩‍💻Состояние Spring в 2024 году — статья обсуждает последние тенденции в разработке программного обеспечения на платформе Spring, выделяя ключевые изменения и вызовы, с которыми сталкиваются разработчики.

👩‍💻Нахождение сильно преобладающего элемента последовательности >n/2 (алгоритм большинства голосов Бойера-Мура) — статья рассматривает задачу "Majority Element" с LeetCode и сравнивает решение с использованием хэш-таблицы с более эффективным по пространственной сложности алгоритмом Бойера-Мура.

👩‍💻Вышел Hibernate 7.0.0.Beta1 — статья рассказывает о выпуске обновления Hibernate 7.0.0.Beta1, которое включает в себя изменения и улучшения, такие как переход на новую версию технологии, улучшение проверки моделей и более строгие требования.
Please open Telegram to view this post
VIEW IN TELEGRAM
1723006850012 (1).gif
2 MB
🖥 Фреймворки для тестирования Java приложений

Тестирование играет важнейшую роль в обеспечении качества и надежности ваших приложений. Пять популярных фреймворков для тестирования:

1. JUnit:

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

2. TestNG:

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

3. Mockito:

🔹 Фреймворк для создания мок-объектов в модульных тестах.
🔹 Легкость в использовании, уменьшение шаблонного кода и интеграция с JUnit/TestNG.
🔹 Позволяет разработчикам тестировать части кода изолированно, не полагаясь на внешние зависимости.

4. Selenium:

🔹 Фреймворк для автоматизации веб-браузеров.
🔹 Поддержка кроссплатформенности, интеграция с TestNG/JUnit и активная поддержка сообщества.
🔹 Обеспечивает правильное функционирование веб-интерфейсов на разных браузерах и платформах.

5. Cucumber:

🔹 Инструмент для разработки на основе BDD.
🔹 Улучшает коммуникацию с нетехническими заинтересованными сторонами.
🔹 Использует спецификации на простом языке для написания тестов, что позволяет заказчику лучше понимать тестовые кейсы.

💬Какие фреймворки вы предпочитаете для ваших проектов? Пробовали какие-то другие, которые могли бы порекомендовать?
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 15 продвинутых лайфхаков для работы в терминале Linux

Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.

👉 Ссылка