AG

AG

Концепции Git менее чем за 10 минут

Понимание Git помогает В разработке, но изучение начинать сложно. Пусть это руководство станет первым шагом к знакомству с Git. Git используется для хранения и транспортировки кода по умолчанию, это основная система контроля версий для разработчиков сегодня. Каждый, кто использовал Git,…

Java Roadmap 2024. Как изучать Java для бэкенда.

Если вы только решили начать изучать java, или ищете возможности для развития, этой статьей постараюсь помочь. Роль senior Java-разработчика за последние годы претерпела значительные изменения. Поскольку технологии продолжают развиваться беспрецедентными темпами, обязанности, навыки и ожидания старших инженеров развиваются, чтобы соответствовать…

Стоит ли изучать Java

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

Архитектура event-driven приложений

Что такое архитектура, управляемая событиями? Архитектура, управляемая событиями (EDA), — это шаблон архитектуры программного обеспечения, в котором особое внимание уделяется производству, обнаружению, потреблению и реакции на события, происходящие в системе или среде. Каковы преимущества использования EDA? Некоторые из преимуществ использования…

Happens Before в Java

В Java отношение happens before используется для определения порядка действий в многопоточной программе. Отношение happens before гарантирует, что изменения, внесенные одним потоком, будут видны другому потоку предсказуемым и последовательным образом. Правила happens before в Java следующие: Отношения happens before помогают…

Аутентификация с Keycloak

Keycloak — это решение для управления идентификацией и доступом с открытым исходным кодом, которое позволяет разработчикам добавлять функции аутентификации и авторизации в свои приложения. Он предоставляет централизованный сервер аутентификации, который можно использовать для аутентификации пользователей, управления учетными записями пользователей и…

Load Balancer / Балансировщик нагрузки

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

Основное по Kafka

Apache Kafka — это распределенная платформа, предназначенная для обработки больших объемов данных в режиме реального времени. Она работает с использованием системы обмена сообщениями «публикация-подписка», в которой продюсеры отправляют сообщения в топики, а потребители подписываются на эти топики, чтобы получать сообщения.…

Использование Entity Graph в Java

Entity Graph позволяет определить, как JPA должен загружать связи при запросе определенной сущности. Это позволяет разработчикам указывать, какие связанные объекты следует загружать быстро, а какие — лениво. Entity Graph можно определить с помощью аннотации @NamedEntityGraph в классе сущностей. Эта аннотация…

Webflux горячий и холодный паблишеры

В Spring WebFlux холодный паблишер можно реализовать с помощью класса Flux, а горячий – с помощью класса ConnectableFlux. Вот пример того, как реализовать холодный паблишер с помощью Flux: В этом примере мы возвращаем Flux, который генерирует список строк. Поскольку это…

Основные понятия Spring Webflux

Spring WebFlux — это реактивный веб-фреймворк, являющийся частью экосистемы Spring. Он позволяет разработчикам создавать приложения, управляемые событиями, которые могут обрабатывать большое количество одновременных запросов с низким потреблением ресурсов. Преимущества использования Spring WebFlux – производительность, масштабируемость и скорость реагирования благодаря его…

Основные понятия микросервисной архитектуры

Микросервисная архитектура — это архитектурный стиль, структурирующий приложение как набор небольших автономных сервисов, каждый из которых работает в своем собственном процессе и взаимодействует с другими сервисами через API. Преимущества использования микросервисной архитектуры включают в себя: Недостатки микросервисной архитектуры: Применительно к…

Kubernetes основные понятия

Kubernetes – это платформа оркестрации контейнеров с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Преимущества использования Kubernetes – масштабируемость, доступность и отказоустойчивость приложений. Это также позволяет упростить развертывание и управление контейнерными приложениями в нескольких средах. Pod…

Fail-safe и fail-fast коллекции в Java

Fail-safe и fail-fast являются двумя различными подходами к обработке изменений в коллекциях в Java. Fail-safe означает, что коллекция может безопасно изменяться (добавлять, удалять элементы) во время итерации. Это достигается путем создания копии коллекции и итерации по этой копии, а не…

Управление взаимодействием между сервисами: оркестрация и хореография

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

Методы equals() и hashcode() в Java

В Java, класс Object является базовым классом для всех остальных классов, и он содержит два важных метода: equals() и hashCode(). Метод equals() используется для сравнения двух объектов на равенство. По умолчанию, метод equals() в классе Object сравнивает объекты по ссылке…

Mockito отличие Spy и Mock

Mockito — это популярная платформа для создания заглушек в Java, которая позволяет разработчикам создавать моки объектов и методы-заглушки для целей тестирования. Mockito предоставляет два основных типа объектов для тестирования: Mock и Spy. Мок-объект — это фиктивный объект, созданный для имитации…

Как устроена JVM

JVM означает виртуальная машина Java и является неотъемлемой частью платформы Java. Она отвечает за выполнение байт-кода Java, который представляет собой скомпилированную версию исходного кода Java.Когда вы запускаете программу Java, исходный код сначала компилируется в байт-код с помощью компилятора Java. Этот…

Взаимодействие JVM с ядром Операционной Системы

JVM взаимодействует с ядром системы несколькими способами, в зависимости от конкретной операционной системы и аппаратной архитектуры. В общем, JVM полагается на операционную систему для предоставления определенных низкоуровневых услуг, таких как управление памятью и планирование потоков. На высоком уровне JVM взаимодействует…

Взаимодействие потоков и процессов с JVM и Операционной Системой

В JVM потоки и процессы управляются с помощью Java Thread API. JVM предоставляет планировщик потоков, который управляет выполнением нескольких потоков в одном процессе. Каждый поток имеет собственный стек вызовов и счетчик программ, что позволяет ему выполнять код независимо от других…

EXPLAIN и ANALYZE в SQL

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

Пошаговый план изучения программирования

Довольно часто меня спрашивают с чего начать свою карьеру программиста. Как правило у желающих, как было и у меня в 2017, нет желания или возможности наверстать упущенное обучаясь в университете. Программу за упущенные 5 лет наверстать будет непросто, предлагаю подумать…

Что из себя представляет и зачем нужен протокол DHCP

DHCP (протокол динамической конфигурации хоста) — это сетевой протокол, используемый для автоматического назначения IP-адресов и других параметров конфигурации сети устройствам в сети. Когда устройство подключается к сети, использующей DHCP, оно отправляет широковещательное сообщение с запросом IP-адреса. DHCP-сервер в сети получает…

Использование git cherry-pick

git cherry-pick — это команда, которая позволяет вам применить конкретный коммит из одной ветки в другую. Это может быть полезно, если вы хотите применить исправление ошибки или функцию из одной ветки в другую, не объединяя всю ветку. Чтобы использовать Cherry-Pick,…

Уровни изоляции транзакций

Уровни изоляции — это концепция систем управления базами данных, которая определяет, как транзакции взаимодействуют друг с другом. Транзакции — это набор операций, которые выполняются как единая единица работы, а уровни изоляции определяют, как одновременным транзакциям разрешен доступ к данным в…