Java библиотека
31.4K subscribers
2.45K photos
90 videos
10 files
2.27K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
⚙️ В чем разница между Load Balancer и API Gateway?

— NLB (Network Load Balancer) – распределяет трафик на уровне IP. Он работает на более низком уровне и не анализирует HTTP-запросы.

— ALB (Application Load Balancer) – маршрутизирует запросы на основе HTTP-заголовков или URL. ALB предлагает более сложные правила маршрутизации. Выбор между NLB и ALB зависит от ваших потребностей. Для простых сервисов в небольших масштабах одного балансировщика нагрузки может быть достаточно.

— API Gateway – работает на уровне приложений и берет на себя задачи, такие как аутентификация, ограничение скорости запросов, кэширование и другие. Его функции отличаются от Load Balancer.

Схема иллюстрирует детали работы этих компонентов. Чаще всего Load Balancer и API Gateway используются вместе, чтобы создать масштабируемую и безопасную архитектуру для современных веб-приложений.

🟡 Два подхода к архитектуре:

— Опция A: ALB + сервисы
ALB распределяет запросы между различными сервисами. Ограничение запросов, аутентификация и другие функции реализуются на уровне сервисов. Это более гибкий подход, но требует больше работы при разработке.

— Опция B: API Gateway + сервисы
API Gateway берет на себя функции аутентификации, ограничения запросов, кэширования и других задач. Это упрощает разработку сервисов, но уменьшает гибкость по сравнению с первым вариантом.

Что предпочитаете — Load Balancer или API Gateway?

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
🔴 Завтра тестовое собеседование с Java-разработчиком

21 января(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍1
📌 Хотите быстрее настроить Spring Boot проект?

Spring Initializr – инструмент, который поможет вам с начальной конфигурацией Spring-приложения. Выберите сборщик, зависимости, версию Java, и он сгенерирует базовую структуру проекта, готовую для импорта в вашу IDE и начала разработки.

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

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥64
🖥 Заметки о java.util.Stream

Stream API (поток) — принципиально новый способ работы с коллекциями в Java (по крайней мере он был таким на момент релиза).

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

🔜 о java.util.Stream

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥4
На открытом уроке курса «AI-агенты: продвинутое внедрение и использование» рассмотрим:
• Архитектуру AI-driven приложений;
• Выбор LLM в качестве ядра;
• Создание AI-driven Telegram-бота.

После урока вы будете знать:
• Архитектуру AI-driven приложений;
• Иметь чек-лист для выбора LLM под задачу;
• Практический навык использования LLM в чат-ботах Telegram.

Спикер: Андрей Сорокин, Ведущий разработчик C# ASP NET | Архитектор программного обеспечения

Регистрируйтесь сейчас - напомним накануне: регистрация

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
4👍3🔥3
🖥 jadx — декомпилятор из APK в Java код

brew install jadx

jadx предоставляет инструменты командной строки и GUI для получения исходного кода Java из APK, dex, aar, aab и zip-файлов.

Также позволяет декодировать AndroidManifest.xml и другие ресурсы из resources.arsc.
Имеется встроенный деобфускатор.

🖥 GitHub

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥1
🖥 Apache SeaTunnel — высокопроизводительный распределенный инструмент интеграции данных

SeaTunnel - это высокопроизводительный инструмент распределенной интеграции данных нового поколения, способный ежедневно синхронизировать огромные объемы данных.
SeaTunnel способен стабильно и эффективно синхронизировать данные в режиме реального времени и уже используется в продакшене почти 100 компаниями.
Написан полностью на Java

🖥 GitHub
🟡 Доки

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥61
ИИ уже стал частью разработки. Вопрос больше не в том, использовать его или нет, а в том, кто управляет процессом — вы или модель?

28 января OTUS проводит открытый урок «Вайбкодинг: практика разработки (Kotlin) проекта при участии ИИ».

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

Встречаемся в преддверии старта курса «Kotlin Backend Developer. Professional».

Зарегистрируйтесь, чтобы понять, как встроить ИИ в разработку осознанно и использовать его как инструмент, а не источник технического долга: https://vk.cc/cTDsmr

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
5👍2🔥2
Оркестрация и хореография: что выбрать?

Когда дело доходит до координации взаимодействий между микросервисами, выбор между оркестрацией и хореографией — один из ключевых вопросов. Оба подхода имеют свои плюсы и минусы, а также подходят для разных архитектурных сценариев.

🔹 Оркестрация — это централизованный подход, при котором один сервис (оркестратор) управляет всеми взаимодействиями между сервисами. Он выступает дирижером, направляя выполнение процессов и следя за их последовательностью.

▪️ Плюсы:
- Четкий контроль за процессом выполнения задач.
- Упрощенная отладка и мониторинг.

▪️ Минусы:
- Слабая гибкость при изменении требований.
- Если оркестратор падает, система теряет управление процессами.

🔹 Хореография — децентрализованный подход, при котором каждый сервис реагирует на события и инициирует свои действия на основе этих событий. Здесь нет центрального контроллера; сервисы взаимодействуют по принципу «реакции».

▪️ Плюсы:
- Высокая гибкость и легкость в добавлении новых сервисов.
- Отсутствие единой точки отказа.

▪️ Минусы:
- Сложность в отслеживании последовательности выполнения.
- Потенциальные проблемы с согласованностью данных.

🎯 Когда что выбрать?

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

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍5🔥4
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.

Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.

➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.

Подписывайтесь и качайте свои скиллы: @javatasks
4🔥3👍2
Начиная с Spring Boot 3.1, вы можете автоматически запускать внешние сервисы (например, базы данных) в режиме dev, используя Testcontainers и новую `spring-boot:test-run`

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍129🔥5
🖥 webmagic — масштабируемый фреймворк веб-краулера для Java

webmagic охватывает весь жизненный цикл краулера: загрузку, управление url, извлечение контента и его сохранение.

🖥 GitHub
🟡 Доки

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍651
🖥 Apache Zeppelin — веб-блокнот, позволяющий работать с данными на SQL, Scala и ещё 20+ языках

Apache Zeppelin — веб-блокнот на Java, позволяющий проводить интерактивную аналитику данных и создавать совместные документы с использованием SQL, Scala и других языков.

Быстрый старт с помощью Docker:
docker run -p 8080:8080 --rm --name zeppelin apache/zeppelin:0.11.1

🖥 GitHub
🟡 Страничка Apache Zeppelin

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍31
Java Streams: Основные методы для чистого и эффективного кода!

Java Streams предлагают множество методов для упрощения манипуляций с данными и повышения читаемости кода.
Вот краткое руководство с примерами:

Освойте эти методы, чтобы писать более чистый и эффективный код на Java! 💡

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍53🍾1
🖥CompreFace — это бесплатная и открытая система распознавания лиц, разработанная компанией Exadel. Она предоставляет функции обнаружения, верификации и распознавания лиц, а также определение наличия маски, возраста и пола. CompreFace поддерживает интеграцию через REST API, работает на CPU и GPU и легко разворачивается с помощью Docker. Система не требует глубоких знаний в машинном обучении и включает управление доступом на основе ролей

🔐 Лицензия: Apache 2.0

🖥 GitHub

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥52
🖥 Паттерн Прототип (Prototype)

Prototype — это порождающий паттерн, который позволяет создавать новые объекты путем клонирования уже существующих. Вместо создания объектов с нуля, можно копировать существующие, что сокращает время и ресурсы на создание объектов с похожими параметрами.

Использование:


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

Преимущества:

1️⃣ Позволяет создавать новые объекты путем клонирования, что может быть гораздо быстрее, чем создание с нуля.
2️⃣ Можно легко менять клонированные объекты, не затрагивая исходный.
3️⃣ Клонирование полезно для объектов с множеством состояний или структур (например, сложные графические объекты).

Недостатки:

1️⃣ Если объект имеет сложные вложенные структуры, потребуется реализация глубокого копирования, что может быть сложно и затратно.
2️⃣ Для копирования объектов может потребоваться много памяти, особенно если объекты большие.
3️⃣ Клон напрямую зависит от структуры исходного объекта, что может затруднить масштабирование или изменение логики.

📌 Паттерн полезен, когда нужно быстро и гибко создавать объекты, особенно если они имеют множество состояний. Например, при работе с графическими редакторами или в играх, где нужно дублировать сложные сущности с минимальными изменениями.

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥43
Forwarded from Java Guru 🤓
Что будет результатом запуска, если активный профиль не задан?
4🔥4
Монолитная архитектура часто воспринимается как что-то устаревшее. Но на практике именно монолит остаётся основой большинства production-систем — особенно там, где важны скорость разработки, прозрачность логики и предсказуемость сопровождения.

На открытом уроке OTUS разберём разработку монолитного приложения со Spring, используя Kotlin. Поговорим о плюсах и минусах монолитной архитектуры, разберём фреймворк Spring и особенности его использования в Kotlin-проектах. Покажем, как интегрировать транспортные модели, собрать приложение и подготовить его к запуску.

Вы увидите полный путь от архитектурного решения до работающего приложения. Попрактикуетесь в разработке монолита, разберётесь в особенностях Spring + Kotlin и научитесь упаковывать приложение в Docker. Урок будет полезен backend-разработчикам, которые хотят глубже понимать архитектуру, уверенно работать со Spring и собирать production-готовые сервисы.

Встречаемся 4 февраля в 19:00 МСК в преддверии старта курса «Kotlin Backend Developer. Professional».
Регистрация открыта:
https://vk.cc/cTPdQW

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
4👍2🔥2