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

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

Для обратной связи: @proglibrary_feeedback_bot


По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
🎮 API архитектурные стили

🔗 REST – популярный подход для публичных API и веб-приложений, поддерживает JSON, XML, HTML и текст.
🔗 SOAP – использует структуру сообщений с оберткой на основе XML. Применяется в платежных системах и телеком-сервисах, но имеет высокий порог входа.
🔗 GraphQL – гибкая схема и система типов, позволяет использовать JSON и подходит для сложных систем и мобильных API.
🔗 gRPC – высокопроизводительный фреймворк RPC, работает через протоколы сериализации, используется для высоконагруженных систем.
🔗 WebSocket – поддерживает двустороннюю связь, подходит для чатов и других приложений реального времени.
🔗 Webhook – асинхронный подход, применим для CI/CD процессов и платежных шлюзов.
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Bootstrapping Microservices, Second Edition: With Docker, Kubernetes, GitHub Actions, and Terraform (2024)
✍️ Автор: Ashley Davis
📃 Страниц: 463

Это ваш наставник по микросервисам. Она научит вас использовать стандартные инструменты для создания работающего приложения для потокового видео с нуля. Вы узнаете об основах облачной нативной разработки, включая Terraform для конфигурирования, Docker для упаковки и базовое развертывание Kubernetes. Кроме того, во второе издание включены сведения о GitHub Actions, непрерывной доставке и Infrastructure as Code.
📊 Paging vs. Segmentation

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

🔹 Пагинация:


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

Преимущества:
- Устраняет внешнюю фрагментацию.
- Облегчает работу с виртуальной памятью и перемещением страниц.
- Управление памятью становится более простым и эффективным.

🔹 Сегментация:

Сегментация делит память на переменные по размеру сегменты, основываясь на логических частях программы (функции, объекты и массивы данных). Каждый сегмент может иметь свои ограничения и базовый адрес.

Преимущества:
- Обеспечивает логическое разделение кода и данных.
- Упрощает защиту и обмен сегментами.
- Поддерживает управление растущими структурами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧪 Чем заменить Postman: 5 отличных инструментов для разработки API

Postman долгое время был основным инструментом для разработки и тестирования API, но сейчас для большинства разработчиков его ограничения стали перевешивать преимущества. Рассмотрим альтернативные инструменты, которые могут предложить больше возможностей, чем Postman — даже в бесплатной версии.

👉Читаем здесь
#дайджест #javadevjob

Вакансии Java разработчиков уровня Junior

▪️Java Developer
Таганрог. JavaCode — работа в аутстафф направлении
Подробнее

▪️Java Frontend Developer
Новосибирск. Soft-logic — разработкa собственных коробочных продуктов
Подробнее

Вакансии Java разработчиков уровня Middle

▪️Java-разработчик
Удаленка. Datanomica — работа с данными
Подробнее

▪️Java разработчик
Удаленка. HolyCode — разработка IT решений
Подробнее

Вакансии Java разработчиков уровня Senior

▪️Java Developer
Удаленка. 8B WORLD — финтех-стартап
Подробнее

▪️Java разработчик
Москва. Платформа ОФД — оператор фискальных данных
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
🤔 Нужна ли математика на собеседованиях?

🗓 Сегодня в 20:00 встречаемся в прямом эфире, чтобы обсудим роль математики на собеседовании, а также поделимся инсайдами как успешно пройти техническое собеседование! https://proglib.io/w/a928b7c2

🌟 Спикер: Станислав Петров – Senior Data Scientist.

😮 На вебинаре вы узнаете:

😱 Ошибаться — не страшно. Как ошибки и неудачные проекты могут стать ценным опытом. Почему «проекты в стол» способствуют профессиональному росту. И как преодолеть путь от junior до senior.

🙌🏻 Собеседования: можно ли к ним не готовиться?! Поделимся эффективными стратегиями подготовки и расскажем, на что работодатели обращают внимание в первую очередь.

✍️ Разберем реальные тестовые задачи, которые дают на собеседованиях на позицию Data Scientist.

🎁 Бонус: расскажем как проводить эффективное тестирование в маркетинге и их масштабируемость.

🎯 Почему важно посетить вебинар?

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

• Расширьте свой профессиональный кругозор и подготовьтесь к новым карьерным вызовам.

👉 Присоединяйтесь к нам и узнайте, как математика может помочь в вашей карьере https://proglib.io/w/a928b7c2
ℹ️ Как работает SSO

SSO (Single Sign-On) или Единая система аутентификации — это схема аутентификации, которая позволяет пользователю войти в разные системы, используя одну учетную запись.

На фото выше показан принцип работы SSO.

Шаг 1: Пользователь заходит в Gmail или любой другой сервис электронной почты. Gmail обнаруживает, что пользователь не авторизован, и перенаправляет его на SSO сервер аутентификации, который также обнаруживает отсутствие входа. Пользователь попадает на страницу авторизации SSO и вводит свои учетные данные.

Шаги 2-3: SSO сервер проверяет данные пользователя, создает глобальную сессию и выдает токен.

Шаги 4-7: Gmail проверяет токен на SSO сервере. Система аутентификации регистрирует Gmail и возвращает статус «действительно». Gmail отправляет пользователю защищенный ресурс.

Шаг 8: Из Gmail пользователь переходит на другой сайт Google, например, YouTube.

Шаги 9-10: YouTube обнаруживает, что пользователь не авторизован, и запрашивает подтверждение. SSO сервер находит уже активную сессию пользователя и выдает токен.

Шаги 11-14: YouTube проверяет токен на SSO сервере. Система аутентификации регистрирует YouTube и возвращает статус «действительно». YouTube отправляет пользователю защищенный ресурс.

✔️ Процесс завершен, и пользователь получает доступ к своим данным.
Please open Telegram to view this post
VIEW IN TELEGRAM
🕯 Паттерн Хранитель (Memento)

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

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

🔹 Когда необходимо сохранять промежуточные состояния объекта для возможности восстановления.
🔹 Когда прямой доступ к полям объекта ограничен, но нужно иметь возможность восстановить его состояние.
🔹 Когда требуется временно отменять изменения и потом возвращаться к сохранённым состояниям.

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

1️⃣ Обеспечивает сохранение и восстановление состояния объекта без раскрытия его внутренней структуры.
2️⃣ Поддерживает отмену изменений и возможность вернуться к предыдущему состоянию, сохраняя историю.
3️⃣ Позволяет реализовать функциональность undo-redo, гибко восстанавливая состояния объектов.

Недостатки:

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

📌 Паттерн полезен, когда нужно сохранить и восстановить состояние объекта, например, при реализации истории действий пользователя или для поддержки функций отмены и возврата к ранее сохранённым состояниям.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎨🔙🔚 Паттерн «Бэкенд для фронтенда»: преимущества, недостатки и лучшие практики для реализации

Если ты хочешь стать настоящим мастером API, тебе нужно знать о паттерне BFF. В этой статье рассказываем, как создавать управляемую архитектуру с использованием BFF, избегая избыточной сложности и головной боли при поддержке.

👉 Читать статью
👉 Зеркало
💻🤔 Код сожаления: 10 ошибок, о которых жалеют даже опытные программисты

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


✔️Читать статью
🚀💾 Protocol Buffers: самая эффективная бинарная альтернатива текстовому формату

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

Особенно интересно, как решается проблема совместимости версий. Обо всем этом подробнее читайте в нашей статье👇

🔗 Читать статью
🔗 Зеркало
Привет, друзья! 👋

Мы готовим статью об ИИ-инструментах для программирования в 2024 году и хотим услышать ваше мнение! 🤖💻 Поделитесь своим опытом и помогите нам сделать материал ещё полезнее. Самые интересные ответы войдут в статью! 🏆
Какой ИИ-инструмент для программирования вы считаете самым полезным и почему? 🛠
Anonymous Poll
7%
GitHub Copilot
51%
ChatGPT
2%
Claude
3%
Codeium
2%
Локальные LLM
29%
Не пользуюсь ИИ
5%
Другой (укажите в комментариях)
Как изменилась ваша продуктивность после начала использования ИИ-инструментов в разработке? ⏱️
Anonymous Poll
17%
Значительно выросла (более чем на 50%)
21%
Умеренно выросла (20-50%)
26%
Незначительно выросла (до 20%)
31%
Не изменилась
4%
Снизилась
Не забудьте оставить комментарий с вашими мыслями об ИИ в программировании! Какие преимущества и недостатки вы видите? Какие инструменты рекомендуете попробовать коллегам? 🤔💬
🔗 Хотите быстрее настроить Spring Boot проект?

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

🔼 Сразу переходите к разработке, избегая рутинной конфигурации.
🛡 Исключите риск несовместимых библиотек.
Начинайте с простого набора функций и по мере роста добавляйте новые зависимости.
Please open Telegram to view this post
VIEW IN TELEGRAM