Получи случайную криптовалюту за регистрацию!

Senior Java Developer

Логотип телеграм канала @seniorjavist — Senior Java Developer S
Логотип телеграм канала @seniorjavist — Senior Java Developer
Адрес канала: @seniorjavist
Категории: Образование
Язык: Русский
Количество подписчиков: 22.30K
Описание канала:

Изучаем Java.
По вопросам сотрудничества: @adv_and_pr
Канал на бирже: https://telega.in/c/seniorjavist

Рейтинги и Отзывы

3.50

2 отзыва

Оценить канал seniorjavist и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

0


Последние сообщения 6

2023-05-17 20:04:20
#вопросы_с_собеседований
Как определить, содержит ли массив определенное значение в Java с помощью потоков?

Чтобы проверить, содержит ли массив значений int, double или long значение, используйте IntStream, DoubleStream или LongStream соответственно.
2.9K viewsedited  17:04
Открыть/Комментировать
2023-05-17 17:59:27
Хотите научиться писать код без копипасты? Хотите, чтобы ваши программы были масштабируемы?

Приглашаем на бесплатный вебинар онлайн-курса «Rust Developer. Basic» в Отус.

Тема открытого урока: «Особенности Rust: обобщённое программирование, полиморфизм в Rust»

Дата: 22.05 (мск) в 20:00

На уроке мы рассмотрим статический и динамический полиморфизм в Rust, которые позволяют писать красивые и эффективные программы.
Обсудим, чем подход Rust отличается от других языков.
Рассмотрим известные проблемы и вместе найдем для них решение, которое будет приятно писать и читать.

Регистрация на вебинар: https://otus.pw/nKCD/

Протестируйте процесс обучения и приходите учиться!

Реклама. Информация о рекламодателе на сайте www.otus.ru
3.0K views14:59
Открыть/Комментировать
2023-05-17 17:02:00 #вопросы_с_собеседований
Для ArrayList или для LinkedList операция добавления элемента в середину (list.add(list.size()/2, newElement)) медленнее?

Для ArrayList:
• проверка массива на вместимость. Если вместимости недостаточно, то увеличение размера массива и копирование всех элементов в новый массив (O(N));
• копирование всех элементов, расположенных правее от позиции вставки, на одну позицию вправо (O(N));
• вставка элемента (O(1)).

Для LinkedList:
• поиск позиции вставки (O(N));
• вставка элемента (O(1)).

В худшем случае вставка в середину списка эффективнее для LinkedList. В остальных - скорее всего, для ArrayList, поскольку копирование элементов осуществляется за счет вызова быстрого системного метода System.arraycopy().
2.8K views14:02
Открыть/Комментировать
2023-05-17 15:01:43 Присоединяйтесь к нашему сообществу Data Analyst REBRAIN, если вы интересуетесь аналитикой данных, управлением проектами или маркетингом.

У нас для вас есть множество открытых онлайн-практикумов каждый месяц, которые проводят профессиональные аналитики. В рамках практикумов мы разбираем реальные кейсы анализа данных с использованием самых актуальных инструментов, таких как Python, SQL, Tableau, бизнес-метрики и визуализация данных, статистика, теория вероятностей и другие.

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

Подключайтесь к нам уже сегодня и начинайте развивать свои навыки в области анализа данных совершенно бесплатно!
2.9K views12:01
Открыть/Комментировать
2023-05-17 14:48:06
#вопросы_с_собеседований
Реализация алгоритма Raft в Java

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

В примере мы определяем интерфейс RaftServer и начинаем реализовывать его с помощью RaftServerImpl. Каждый сервер Raft может находиться в одном из трех состояний: leader, follower или candidate.

Важными составляющими реализации Raft являются механизмы выборов, обработки запросов от клиентов, передачи команд в журнал и согласования этих журналов между серверами.

Алгоритм Raft сложен и требует глубокого понимания теории распределенных систем, но он является одним из наиболее эффективных способов обеспечения согласованности данных в распределенной системе.

Если вы заинтересованы в глубоком погружении в тему Raft, я рекомендую ознакомиться с оригинальной статьей об алгоритме Raft ("In Search of an Understandable Consensus Algorithm") и реализацией Raft в различных открытых проектах.
2.8K views11:48
Открыть/Комментировать
2023-05-17 12:48:59
Хотите легко проходить собеседования в любые IT компании мира? Подписывайтесь на новый канал от бывшего программиста Amazon и Facebook с 16 годами опыта работы в IT в четырех странах мира (Великобритании, Германии, Люксембурга и России): https://t.me/faangmaster
Там вы найдете разбор задач с собеседований, алгоритмы, system design. Автор канала также делится своим опытом подготовки к собеседованиям,  работы и жизни в разных странах, делится своим мнением по разным вопросам связанным с IT.
2.9K views09:48
Открыть/Комментировать
2023-05-17 11:21:02
Реализация механизма двухфакторной аутентификации (2FA) на Java для банковского приложения

Один из распространенных методов 2FA - Time-based One-Time Password (TOTP). Этот метод использует временные пароли на основе алгоритма HMAC-based One-Time Password (HOTP), которые меняются через определенный промежуток времени (обычно каждые 30 секунд).

1. Добавьте зависимости для Google Authenticator в ваш build.gradle

2.
Создайте класс TOTPAuthenticator, который будет использоваться для генерации секретного ключа, создания QR-кода для пользовательского устройства и проверки одноразовых паролей
. (рис.1)

3.
В main введите значения, как в примере (рис.2)

В примере мы рассмотрели реализацию двухфакторной аутентификации на Java для банковского приложения с использованием TOTP. Это обеспечивает дополнительный уровень безопасности, который может предотвратить несанкционированный доступ к аккаунту пользователя даже в случае утечки логина и пароля.
3.2K views08:21
Открыть/Комментировать
2023-05-16 15:16:06
Управление сложными состояниями в Kubernetes с помощью Java-операторов

Одним из ключевых преимуществ Kubernetes (K8s) является его способность автоматизировать развертывание, масштабирование и управление контейнеризованными приложениями. Однако, для управления более сложными состояниями, такими как базы данных, системы очередей сообщений или сложные распределённые системы, обычные средства K8s могут быть недостаточны. Именно для этих случаев были созданы операторы Kubernetes.

Операторы Kubernetes - это метод упаковки, развёртывания и управления приложениями Kubernetes-нативным способом. Они используют Custom Resource Definitions (CRDs) для создания новых сущностей в Kubernetes, которые они затем могут управлять.

Существуют различные фреймворки для создания операторов Kubernetes на Java, например, Java Operator SDK. Он предоставляет набор инструментов для упрощения написания операторов и включает в себя важные функции, такие как обработка событий, предикаты и согласованность.

В примере WebAppController реализует интерфейс ResourceController, который управляет жизненным циклом CRD WebApp. Методы createOrUpdateResource и deleteResource определяют, что происходит при создании/обновлении или удалении ресурса.

Операторы Kubernetes представляют собой мощный инструмент для управления сложными состояниями в Kubernetes и могут значительно упростить жизнь разработчиков. Особенно это важно для Senior Java Developers, которые работают с крупными и сложными системами.
3.3K views12:16
Открыть/Комментировать
2023-05-16 13:14:34
Курс «Профессия Архитектор ПО» поможет вам систематизировать знания и получить новые навыки для перехода в профессию. За 4 месяца вы освоите лучшие практики и разберёте реальные кейсы от тимлидов «Альфа-Банка».

Что вам даст этот курс?

— Научитесь планировать архитектуру и выбирать стек в зависимости от задачи проекта.
— Сможете разделять систему на компоненты исходя из требований.
— Познакомитесь с фреймворками и паттернами API Gateway, CQRS и «Сага».
— Будете создавать безопасные приложения — работать с аутентификацией, SSL и TLS и строить интеграции.
— Научитесь презентовать архитектурные решения перед бизнесом и командой.

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

Спешите приобрести курс со скидкой!
Майские скидки до 60% по промокоду «Java» по ссылке https://epic.st/oIke7k
3.1K views10:14
Открыть/Комментировать
2023-05-16 10:04:38
Реализация Event Sourcing и CQRS с помощью Axon и Spring Boot

Event Sourcing и CQRS
Event Sourcing
- это подход, при котором состояние приложения определяется последовательностью событий. CQRS - это разделение ответственности между командами, изменяющими состояние, и запросами, которые его читают. Это позволяет оптимизировать чтение и запись для различных потребностей.

Axon Framework
Axon
- это фреймворк для реализации CQRS и ES на Java. Он предоставляет богатые API для описания команд, событий и запросов, а также интеграцию с Spring Boot.

В примере мы создаем агрегат OrderAggregate, который реагирует на команду CreateOrderCommand, применяя событие OrderCreatedEvent.

Axon предоставляет мощные инструменты для реализации CQRS и Event Sourcing на Java. Это позволяет разработчикам создавать масштабируемые, отказоустойчивые микросервисы с четким разделением ответственности между командами и запросами.
3.3K views07:04
Открыть/Комментировать