30 блогов для изучения 30 концепций проектирования систем: ⏬
1. API: https://blog.algomaster.io/p/whats-an-api
2. API-шлюз: https://blog.algomaster.io/p/what-is-an-api-gateway
3. Масштабируемость: https://blog.algomaster.io/p/scalability
4. Доступность: https://blog.algomaster.io/p/system-design-what-is-availability
5. Теорема CAP: https://blog.algomaster.io/p/cap-theorem-explained
6. Load Balancers: https://blog.algomaster.io/p/e1fa4254-9383-4c3a-be96-1d4ce2322575
7. Алгоритмы балансировки нагрузки: https://blog.algomaster.io/p/load-balancing-algorithms-explained-with-code
8. Caching: https://blog.algomaster.io/p/4d7d6f8a-6803-4c7b-85ca-864c87c2cbf2
9. Стратегии кэширования: https://blog.algomaster.io/p/top-5-caching-strategies-explained
10. Стратегии вытеснения кэша: https://blog.algomaster.io/p/7-cache-eviction-strategies
11. Распределенное кэширование: https://blog.algomaster.io/p/distributed-caching
12. CDNs: https://blog.algomaster.io/p/27c62e07-f25b-40ac-a397-101cc54f1f0a
13. Типы баз данных: https://blog.algomaster.io/p/15-types-of-databases
14. SQL vs NoSQL: https://blog.algomaster.io/p/sql-vs-nosql-7-key-differences
15. ACID-транзакции: https://blog.algomaster.io/p/what-are-acid-transactions-in-databases
16. Индексы баз данных: https://blog.algomaster.io/p/a-detailed-guide-on-database-indexes
17. Шардинг баз данных: https://blog.algomaster.io/p/what-is-database-sharding
18. Масштабирование баз данных: https://blog.algomaster.io/p/system-design-how-to-scale-a-database
19. WebSockets: https://blog.algomaster.io/p/websockets
20. Очереди сообщений: https://blog.algomaster.io/p/message-queues
21. Обнаружение сервисов: https://blog.algomaster.io/p/service-discovery-in-distributed-systems
22. Фильтры Блума: https://blog.algomaster.io/p/bloom-filters
23. Алгоритмы ограничения скорости: https://blog.algomaster.io/p/rate-limiting-algorithms-explained-with-code
24. SPOF: https://blog.algomaster.io/p/system-design-how-to-avoid-single-point-of-failures
25. Идемпотентность: https://blog.algomaster.io/p/idempotency-in-distributed-systems
26. Контрольные суммы: https://blog.algomaster.io/p/what-are-checksums
27. Длинный опрос против WebSockets: https://blog.algomaster.io/p/long-polling-vs-websockets
28. Concurrency vs Parallelism: https://blog.algomaster.io/p/concurrency-vs-parallelism
29. Прокси против обратного прокси: https://blog.algomaster.io/p/proxy-vs-reverse-proxy-explained
30. Пакетная обработка против потоковой: https://blog.algomaster.io/p/batch-processing-vs-stream-processing
👉 Java Portal | #ресурсы
1. API: https://blog.algomaster.io/p/whats-an-api
2. API-шлюз: https://blog.algomaster.io/p/what-is-an-api-gateway
3. Масштабируемость: https://blog.algomaster.io/p/scalability
4. Доступность: https://blog.algomaster.io/p/system-design-what-is-availability
5. Теорема CAP: https://blog.algomaster.io/p/cap-theorem-explained
6. Load Balancers: https://blog.algomaster.io/p/e1fa4254-9383-4c3a-be96-1d4ce2322575
7. Алгоритмы балансировки нагрузки: https://blog.algomaster.io/p/load-balancing-algorithms-explained-with-code
8. Caching: https://blog.algomaster.io/p/4d7d6f8a-6803-4c7b-85ca-864c87c2cbf2
9. Стратегии кэширования: https://blog.algomaster.io/p/top-5-caching-strategies-explained
10. Стратегии вытеснения кэша: https://blog.algomaster.io/p/7-cache-eviction-strategies
11. Распределенное кэширование: https://blog.algomaster.io/p/distributed-caching
12. CDNs: https://blog.algomaster.io/p/27c62e07-f25b-40ac-a397-101cc54f1f0a
13. Типы баз данных: https://blog.algomaster.io/p/15-types-of-databases
14. SQL vs NoSQL: https://blog.algomaster.io/p/sql-vs-nosql-7-key-differences
15. ACID-транзакции: https://blog.algomaster.io/p/what-are-acid-transactions-in-databases
16. Индексы баз данных: https://blog.algomaster.io/p/a-detailed-guide-on-database-indexes
17. Шардинг баз данных: https://blog.algomaster.io/p/what-is-database-sharding
18. Масштабирование баз данных: https://blog.algomaster.io/p/system-design-how-to-scale-a-database
19. WebSockets: https://blog.algomaster.io/p/websockets
20. Очереди сообщений: https://blog.algomaster.io/p/message-queues
21. Обнаружение сервисов: https://blog.algomaster.io/p/service-discovery-in-distributed-systems
22. Фильтры Блума: https://blog.algomaster.io/p/bloom-filters
23. Алгоритмы ограничения скорости: https://blog.algomaster.io/p/rate-limiting-algorithms-explained-with-code
24. SPOF: https://blog.algomaster.io/p/system-design-how-to-avoid-single-point-of-failures
25. Идемпотентность: https://blog.algomaster.io/p/idempotency-in-distributed-systems
26. Контрольные суммы: https://blog.algomaster.io/p/what-are-checksums
27. Длинный опрос против WebSockets: https://blog.algomaster.io/p/long-polling-vs-websockets
28. Concurrency vs Parallelism: https://blog.algomaster.io/p/concurrency-vs-parallelism
29. Прокси против обратного прокси: https://blog.algomaster.io/p/proxy-vs-reverse-proxy-explained
30. Пакетная обработка против потоковой: https://blog.algomaster.io/p/batch-processing-vs-stream-processing
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5👀1
Разработка торгового автомата на Java. Вопрос для собеседования
Она представляет собой руководство по созданию объекта, который:
🟢 Принимает монеты номиналом 1, 5, 10 и 25 центов.
🟢 Позволяет пользователю выбирать продукты, такие как Coca-Cola (25 центов), Pepsi (35 центов) и Soda (45 центов).
🟢 Предоставляет возможность отмены запроса и возврата средств.
🟢 Возвращает выбранный продукт и сдачу, если таковая имеется.
🟢 Обеспечивает функцию сброса для поставщика автомата.
Данная статья будет полезна разработчикам, желающим улучшить свои навыки объектно-ориентированного анализа и проектирования на языке Java.💀
📖 Читать: ссылка
👉 Java Portal | #cтатья
Она представляет собой руководство по созданию объекта, который:
Данная статья будет полезна разработчикам, желающим улучшить свои навыки объектно-ориентированного анализа и проектирования на языке Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Дорожная карта Kubernetes 🔥
🟢 Основные компоненты: Управление состоянием приложений, кластеры, развертывания, сервисы, поды, пространства имен и т.д.
🟢 Инфраструктура и плоскость управления: Сеть, узлы, API, сервисные сетки, операторы и политики сети.
🟢 Управление безопасностью и идентификацией: Управление доступом на основе ролей (RBAC), аутентификация, авторизация, шифрование и политики безопасности.
🟢 Масштабирование и балансировка нагрузки: Автоматическое масштабирование, балансировка нагрузки и управление ресурсами.
🟢 Мониторинг и наблюдаемость: Сбор метрик, логирование, аудит и использование инструментов, таких как Prometheus и Grafana.
🟢 Резервное копирование, восстановление и аварийное восстановление: Управление состоянием приложений и стратегии восстановления.
🟢 Непрерывная интеграция и развертывание: Стратегии развертывания, такие как Canary, Rolling updates и Blue-Green.
👉 Java Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Media is too big
VIEW IN TELEGRAM
Сохраняй огромный сборник задач на практику по разным языкам включая Java + Код и статьи к проектам
🟢 Парсинг
🟢 Боты для популярных соц.сетей
🟢 Веб-приложения на Django и Flask
🟢 Big data и Machine learning
🟢 Компьютерное зрение
🟢 Глубокое обучение и много чего интересного
🔜 Ссылка: тык
👉 Java Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🌭2🔥1
Программа для отображения всех запущенных процессов на Java
Основные моменты:
🟢
🟢
🟢
👉 Java Portal | #ресурсы
Основные моменты:
ProcessHandle.allProcesses()
→ Получает все запущенные процессы.process.pid()
→ Получает идентификатор процесса (PID).process.info().command()
→ Получает команду процесса (если доступна).Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4🌭3
Думай о Java
- 374 страницы
- Издание 2020 года
📝 Книга начинается с самых базовых концепций, при этом все термины тщательно объясняются при первом использовании. Новые идеи излагаются в логической последовательности: крупные темы, такие как управляющие конструкции и объектно-ориентированное программирование, разбиваются на небольшие примеры и рассматриваются постепенно на протяжении нескольких глав.
Эта книга намеренно лаконична: каждая глава занимает 12–14 страниц и охватывает материал, рассчитанный на одну неделю учебного курса в колледже.
⏩ Получите свой экземпляр:
https://greenteapress.com/thinkjava7/thinkjava2.pdf
👉 Java Portal | #книги
- 374 страницы
- Издание 2020 года
Эта книга намеренно лаконична: каждая глава занимает 12–14 страниц и охватывает материал, рассчитанный на одну неделю учебного курса в колледже.
https://greenteapress.com/thinkjava7/thinkjava2.pdf
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11😁2🔥1🌭1
Совет по Java API
Используйте🔥
Это помогает предотвратить случайное добавление нескольких абстрактных методов в интерфейс, помеченный как функциональный. Если вы попытаетесь добавить еще один абстрактный метод в функциональный интерфейс, компилятор выдаст ошибку.
👉 Java Portal | #tips
Используйте
@FunctionalInterface
в качестве защиты от ошибок компилятора! Это помогает предотвратить случайное добавление нескольких абстрактных методов в интерфейс, помеченный как функциональный. Если вы попытаетесь добавить еще один абстрактный метод в функциональный интерфейс, компилятор выдаст ошибку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🤣2🔥1
Самоучитель Spring Boot RabbitMQ
В этой серии вы научитесь использовать RabbitMQ для обмена сообщениями между продюсером и консумером в Spring Boot-приложениях. Мы будем работать с версией Spring Boot 3. Если вы хотите использовать RabbitMQ в event-driven микросервисах на Spring Boot, этот курс будет для вас полезен.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
В этой серии вы научитесь использовать RabbitMQ для обмена сообщениями между продюсером и консумером в Spring Boot-приложениях. Мы будем работать с версией Spring Boot 3. Если вы хотите использовать RabbitMQ в event-driven микросервисах на Spring Boot, этот курс будет для вас полезен.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥1
Принёс вам классный ресурс для изучения паттернов проектирования
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как Go, C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
👉 Смотрите сами
👉 Java Portal | #ресурсы
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как Go, C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8👍6❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Генерируйте шаблонный код, например, конструкторы, геттеры и сеттеры.👩💻
Используйте
👉 Java Portal | #tips
Используйте
⌘N
(macOS) / Alt+Insert
(Windows/Linux)
для вызова меню "Generate", затем выберите Constructor, Getter, Setter или Getter and Setter, а также укажите поля, которые нужно включить.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
Чтобы сделать большие и сложные цепочки компараторов более читаемыми, мне нравится присваивать компараторы переменным, имена которых начинаются с "by".
Таким образом, вызов
sorted()
становится меньше и читается почти как естественный язык. Кроме того, вы можете использовать статический импорт.Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤔5
JWT в Spring Boot: Используется вместе с Spring Security для аутентификации пользователей в REST API.
JWT (JSON Web Token) – это компактный, безопасный для URL токен, используемый для безопасной аутентификации и авторизации. Он состоит из трех частей:
🍩 Заголовок (Header) → Содержит тип токена (JWT) и алгоритм подписи (например, HS256).
🍩 Полезная нагрузка (Payload) → Содержит утверждения (claims) – информацию о пользователе, роли, срок действия и т. д.
🍩 Подпись (Signature) → Обеспечивает целостность токена и создается с использованием секретного ключа.
Зачем использовать JWT?
☑ Бесстейтная аутентификация (не требуется хранение сессии).
☑ Безопасная передача данных между клиентом и сервером.
☑ Можно использовать в API для авторизации.
👉 Java Portal | #tips
JWT (JSON Web Token) – это компактный, безопасный для URL токен, используемый для безопасной аутентификации и авторизации. Он состоит из трех частей:
Зачем использовать JWT?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥3
"Викторина по Java (100 лучших вопросов и заданий по Java MCQ)"
Этот плейлист содержит список викторин и тестов с множественным выбором (MCQ), предназначенных для проверки ваших знаний и понимания различных концепций языка программирования Java.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Этот плейлист содержит список викторин и тестов с множественным выбором (MCQ), предназначенных для проверки ваших знаний и понимания различных концепций языка программирования Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤6🔥1
Одна из подводных камней при использовании аннотации
В приведенном выше коде можно ожидать, что первый вызов
👉 Java Portal | #tips
@Transactional
в java с @springframework
— это самовызов метода. В приведенном выше коде можно ожидать, что первый вызов
save()
будет откатан, но этого не произойдет. Чтобы все работало правильно, метод с аннотацией @Transactional
должен быть вызван из другого сервиса.Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍4🔥2
Книга "Docker for Java Developers" объясняет, как разработчики Java могут использовать Docker для развертывания, тестирования и масштабирования своих приложений.
В ней рассматриваются основные концепции контейнеризации, установка Docker, работа с контейнерами и образами, а также интеграция Docker с Java-приложениями.
⏩ Получите свой экземпляр:
https://ia801202.us.archive.org/28/items/DockerForJavaDevelopers/Docker_for_Java_Developers.pdf
👉 Java Portal | #книги
В ней рассматриваются основные концепции контейнеризации, установка Docker, работа с контейнерами и образами, а также интеграция Docker с Java-приложениями.
https://ia801202.us.archive.org/28/items/DockerForJavaDevelopers/Docker_for_Java_Developers.pdf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥5
В Java может быть неясно, относится ли аннотация к объявлению, к типу или к обоим одновременно.
Это происходит в полях, методах, локальных переменных и других случаях.
В таких ситуациях понимание того, что именно аннотируется, зависит от значения мета-аннотации
👉 Java Portal | #tips
Это происходит в полях, методах, локальных переменных и других случаях.
В таких ситуациях понимание того, что именно аннотируется, зависит от значения мета-аннотации
@Target
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Превратите репозитории GitHub в интерактивные диаграммы
📝 Проект помогает визуализировать структуры Git-репозиториев, создавая диаграммы, которые отображают ветки, коммиты и слияния.
Это полезный инструмент для лучшего понимания истории изменений и связей между элементами репозитория.
⏩ Ознакомиться:
https://github.com/ahmedkhaleel2004/gitdiagram
👉 Java Portal | #ресурсы
Это полезный инструмент для лучшего понимания истории изменений и связей между элементами репозитория.
https://github.com/ahmedkhaleel2004/gitdiagram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Две причины, по которым вы можете захотеть отключить Open Session in View в приложении Spring
🟢 Проблемы с производительностью: OSIV держит соединение с БД слишком долго, что может перегружать пул соединений и замедлять приложение.
🟢 Проблемы с корректностью: В фоновых задачах OSIV не работает, что вызывает ошибки
📝 Читать: клик
👉 Java Portal | #cтатья
LazyInitializationException.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4❤3
Полезный пост для Java-разработчиков.
На фото информация о различных исключениях и ошибках
Для каждого из них приведено краткое описание и пример кода, который может вызвать данное исключение или ошибку.
➖ Также даны советы по обработке исключений, такие как точное перехват исключений, грациозная обработка ошибок, использование блока finally для освобождения ресурсов и другие.
👉 Java Portal | #ресурсы
На фото информация о различных исключениях и ошибках
Для каждого из них приведено краткое описание и пример кода, который может вызвать данное исключение или ошибку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6😁4
Media is too big
VIEW IN TELEGRAM
"Структуры данных и алгоритмы с использованием Java"
📝 Этот курс посвящен основам структур данных и алгоритмов, включая абстрактные типы данных, массивы, списки, стеки, очереди и деревья.
Он охватывает алгоритмы сортировки (Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, Merge Sort) и поисковые методы (линейный и бинарный поиск). Также рассматривается их временная сложность и реализация на Java, включая динамические структуры данных, такие как связные списки, стеки и очереди.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Он охватывает алгоритмы сортировки (Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, Merge Sort) и поисковые методы (линейный и бинарный поиск). Также рассматривается их временная сложность и реализация на Java, включая динамические структуры данных, такие как связные списки, стеки и очереди.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🌚5🔥4