seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

Хотите создать устойчивое к нагрузкам масштабируемое приложение?

Ключевой элемент при проектировании микросервисов – правильная интеграция брокеров сообщений с микросервисной архитектурой.

На открытом вебинаре «Как эффективно использовать брокеры сообщений в микросервисной архитектуре?» вы научитесь:

- Повышать производительность системы, настраивать взаимодействие между микросервисами, правильно работать с очередями сообщений

- Связывать различные слои приложений с помощью брокеров сообщений

- Проектировать решения с учётом масштабируемости и отказоустойчивости

- Эффективно управлять инфраструктурой сообщений RabbitMQ и Apache Kafka

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

Будет интересно: бэкенд и фулстек-разработчикам, системным аналитикам, девопс-инженерам.

Спикеры: Сергей Прощаев, Java-разработчик в ПАО «Сургутнефтегаз».

Бонус! Всем участникам – скидка 5% и эксклюзивные материалы от спикера.

6 февраля, 19:00 МСК

Записаться - https://otus.pw/DA4e/?erid=2W5zFJ7dumS

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Senior Java Developer

🔧 Rust: язык для тех, кто ценит надёжность и производительность!

На открытом уроке «Разбираем анатомию парсера на Rust» вы погрузитесь в тонкости разработки, исследуете ключевые компоненты парсера и узнаете, как Rust делает код безопасным.

Что разберем:
— Принципы работы и архитектуру парсера.
— Владение, заимствование, обработку ошибок: практикуем Rust.
— Как строгая типизация помогает избежать ошибок ещё до компиляции.


📅 Встречаемся 11 февраля в 🕗 20:00 мск. Урок проводится в преддверии старта курса «Rust Developer. Professional», а участники получат 🎁 скидку на обучение.

🔴Не упустите возможность освоить Rust на профессиональном уровне и шагнуть в мир востребованной разработки: https://otus.pw/OtdVS/

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

Читать полностью…

Senior Java Developer

Вебинар «Как стать облачным экспертом и повысить свою ценность на ИТ-рынке»
 
Узнайте, как повысить экспертность и увеличить свою ценность для ИТ-рынка. 
Дата и время: 14 февраля, 17:00. 
 
Основные темы вебинара 
·Российские облачные технологии 
·Облако в личных ИТ-проектах 
·Программа бесплатного курса Сloud Native DIY Advanced
·Продвижение в карьере 
·ИТ-сообщество 

Вебинар будет полезен ИТ-специалистам middle- и senior-уровня. 
 
Регистрируйтесь, если хотите разрабатывать стратегии миграции в облако, управлять ИТ-инфраструктурой как кодом, работать с базами данных и кластерами Kubernetes, использовать инструменты кибербезопасности для защиты инфраструктуры.   

Бонус для участников  

Зарегистрируйтесь на вебинар, пройдите курс и получите сертификат до 25 февраля, и мы выдадим вам мерч и бонусы на работу с VK Cloud, а также пригласим на экскурсию в первый офис VK в Доме Зингера в Санкт-Петербурге. 
 
Зарегистрироваться

Читать полностью…

Senior Java Developer

Экземплярный инициализатор

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Как обеспечить стабильность при высокой частоте запуска тасок
Рассказываем в новой статье от бэкенд-разработчика Ильи Григорьева

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

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

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

Читайте статью на Хабре здесь
Больше материалов о технологиях в Яндекс 360: https://ya.cc/t/OZ4inE495pU96D

Читать полностью…

Senior Java Developer

Алгоритм Кнута – Морриса – Пратта

Алгоритм КМП осуществляет поиск текста по заданному шаблону. В этом поиске сначала компилируется заданный шаблон. Компилируя шаблон, мы пытаемся найти префикс и суффикс строки шаблона. Это поможет в случае несоответствия – не придётся искать следующее совпадение с начального индекса.

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

#для_продвинутых

Читать полностью…

Senior Java Developer

🦾👩‍💻🦾 Вы уже опытный Java-разработчик, но хотите освоить глубины JVM и оптимизацию приложений в облаке?

Курс «Java Developer. Advanced» — ваш билет к продвинутым технологиям, которые востребованы в крупных проектах.

✔️ На курсе вы научитесь профилировать приложения, настраивать GC, работать с реактивными подходами и мониторить метрики в Grafana. Пройдете весь путь от JVM до Kubernetes, научитесь анализировать «горячие точки», оптимизировать приложения и настраивать интеграции с Prometheus.

Представьте, как ваши навыки открывают двери в серьёзные проекты с высокими требованиями. Наши преподаватели-практикующие эксперты поделятся опытом, а диплом OTUS станет отличным усилением к вашему резюме.

➡️ Это последний шанс попасть в группу! Регистрируйтесь сейчас и получите скидку: https://otus.pw/bAsY/

🎫 ПРОМОКОД: Java_adv
Начните обучение со скидкой, подробности у менеджеров.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

👩‍💻 Пройди тест по Java и проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

За 6 месяцев обучения вы научитесь создавать современные Java-приложения, освоите Spring WebFlux и Kafka, а также разберётесь в работе JVM изнутри.

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

Начните свой путь к уровню Middle+!

➡️ ПРОЙТИ ТЕСТ: https://otus.pw/DXu5/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Senior Java Developer

Офер в Яндекс для опытных бэкендеров за два дня

15–16 февраля приглашаем бэкендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно пройти несколько технических секции 15 февраля, чтобы уже 16-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться.

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

Узнать подробности и зарегистрироваться.

Читать полностью…

Senior Java Developer

События и слушатели

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

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

Читать полностью…

Senior Java Developer

😱 Цукерберг сокращет мидлов в 2025 и заменяет их на ИИ.
Хочешь оставаться востребованным на рынке труда? Прокачивай сеньорность.

Один из ключевых навыков, отличающих сеньора от мидла — умение проектировать архитектуру. А самая популярная книга по архитектуре систем — это «Высоконагруженные приложения» Мартина Клепманна, она же книга с кабанчиком.

Моя знакомая Женя Янченко, java-разработчик и тимлид, делает регулярные конспекты всех глав кабанчика в своем канале.

Подробные разборы репликации, шардирования, транзакций. С примерами, схемами, картинками.

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

Оглавление конспектов «кабанчика»

Сравнение Kafka и RabbitMQ

Зачем нужны микросервисы

Как попросить повышение

Про манипуляции менеджеров

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


В этом канале даже джуны становятся сеньорами 😏

👀 Подписывайтесь, это самый простой способ прокачать свои скиллы:
@jane_yanchenko

Читать полностью…

Senior Java Developer

NavigableSet

NavigableSet — это расширенный интерфейс Set, который позволяет работать с элементами множества в отсортированном порядке и выполнять различные операции поиска и навигации. NavigableSet в Java предоставляет ряд методов для работы с элементами в порядке возрастания или убывания.

#для_продвинутых

Читать полностью…

Senior Java Developer

👩‍💻 Работаете с Java, но хотите попробовать себя в Android-разработке?

👩‍💻 Начните с простой и полезной задачи — приложения для заметок!

На открытом уроке 27 января 2025 в 20:00 вы освоите:

— Создание списков через RecyclerView.
— Работу с базой данных Room.
— Использование Flow для обновления данных.

Это отличный шанс погрузиться в мир Android. К тому же, все участники вебинара получат скидку на обучение на курсе «Android Developer»!

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

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

Читать полностью…

Senior Java Developer

Мечтаешь о той самой работе в Big Tech, но никогда не проектировал системы? Или работаешь на галере с нулевым подходом к проектированию и не знаешь, а как разбираться в архитектуре приложений?

Знаешь, ведь я был таким же, как ты. Читал книги, смотрел курсы, но на работе не было той почвы, которая давала бы рост. А на всех ресурсах одни и те же проблемы: устаревшие подходы, зачитывание терминов без примеров и самое главное — минимум практики.

Я решил с этим покончить. Больше никаких недо-курсов, которые “готовят к собесу за один месяц с нуля”. Это невозможно, если ты не обладаешь базой. Но все реально, если разобраться в компонентах, которые составляют эти системы.

Приходи на мой Открытый Урок, где за час мы посмотрим на эти самые компоненты. А еще я расскажу про процесс проектирования в Big Tech и что такое system design секция.

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

ЗАПИСАТЬСЯ

PS: недавно проходил собес в один российский Big Tech. Результат можешь увидеть на скрине

Читать полностью…

Senior Java Developer

👩‍💻 Хотите, чтобы ваши приложения на Java выдерживали любую нагрузку?

Executors — это не просто инструмент, а секретная «суперсила» JDK для управления потоками. Разберем, как грамотно настраивать пулы потоков и использовать их в реальных проектах.

🗓 На открытом уроке 27 января в 20:00 мск мы покажем, как сделать ваши сервисы быстрее и надежнее, даже если нагрузки растут. Участники получат скидку на большое обучение «Java Developer. Professional».

🎙 Спикер Сергей Петрелевич — опытный разработчик на Java и Kotlin.

➡️ Успейте зарегистрироваться и узнайте, как улучшить свои навыки в многопоточности с помощью Executors: https://otus.pw/Z7XA/

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

Читать полностью…

Senior Java Developer

Байт-код

Байт-код (bytecode) — это промежуточный код, который создается компилятором при компиляции исходного кода. Вместо того, чтобы компилировать исходный код напрямую в машинный код для конкретной архитектуры процессора (как это делается, например, в языках C или C++), Java компилирует исходный код в байт-код, который представляет собой набор инструкций, понимаемых JVM.

#для_начинающих

Читать полностью…

Senior Java Developer

Stream API

Stream API — это мощный инструмент, введенный в Java 8, который позволяет выполнять операции на потоках данных (sequences of elements) с использованием функциональных интерфейсов. Он предоставляет богатый набор операций для обработки и манипулирования данными в потоках, таких как фильтрация, сортировка, сопоставление, сведение и другие.

#для_начинающих

Читать полностью…

Senior Java Developer

Инициализаторы

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

В Java есть два типа инициализаторов: инициализатор экземпляра и статический инициализатор.

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Как используется класс Future?

Класс Future является частью пакета java.util.concurrent, и он используется для представления результата асинхронной операции или задачи, которая выполняется в фоновом потоке. Future позволяет вам управлять и получать результаты выполнения задачи в будущем, даже если она еще не завершилась.

#для_начинающих

Читать полностью…

Senior Java Developer

Метод Arrays.asList(T... a)

Метод Arrays.asList(T... a) используется для создания списка (List) на основе массива (array) или набора элементов переменной длины типа T. Этот метод принимает набор элементов типа T в качестве аргументов переменной длины (varargs) и возвращает список, который оборачивает переданные элементы массивом.

Обратите внимание, что список, созданный с помощью Arrays.asList, имеет фиксированный размер, и вы не можете добавлять или удалять элементы из него. Попытки изменить размер списка вызовут исключение UnsupportedOperationException.

#для_продвинутых

Читать полностью…

Senior Java Developer

Кэширование

Кэширование (caching) — это механизм хранения временных данных в оперативной памяти или на диске, чтобы улучшить производительность приложения. Кэширование позволяет избежать повторного вычисления или запроса данных, которые уже были получены или рассчитаны ранее.

#для_продвинутых

Читать полностью…

Senior Java Developer

Java varargs

Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.

Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.

#для_продвинутых

Читать полностью…

Senior Java Developer

Отложенная инициализация

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

В Java есть несколько способов реализации отложенной инициализации. Два наиболее распространенных подхода — это использование двойной проверки и использование внутреннего класса. На картинке мы рассмотрели использование двойной проверки (Double-Checked Locking).

#для_продвинутых

Читать полностью…

Senior Java Developer

Блочная область видимости

Блочная область видимости (block scope) в Java - это область видимости, определенная фигурными скобками внутри метода, конструктора или другого блока кода, такого как условный оператор, цикл или блок try-catch.

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

#для_начинающих

Читать полностью…

Senior Java Developer

Итератор

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

#для_начинающих

Читать полностью…

Senior Java Developer

Процедурное программирование

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

В Java процедуры реализуются с помощью методов. Методы в Java объявляются внутри классов и могут выполнять определенные действия или возвращать результаты. Они могут принимать аргументы и иметь локальные переменные.

#для_продвинутых

Читать полностью…

Senior Java Developer

Ссылочные типы

В Java все типы данных делятся на две категории: примитивные типы и ссылочные типы. Ссылочные типы данных представляют собой объекты, которые содержат данные и методы для работы с ними. В отличие от примитивных типов, переменные ссылочных типов хранят ссылку на объект, а не его значение.

#для_начинающих

Читать полностью…

Senior Java Developer

Сортировка Шелла

Если простыми словами, то сортировка Шелла это алгоритм сортировки массива, который улучшает производительность сортировки вставками.

Он основан на сравнении элементов, находящихся не только рядом, но и на определенном расстоянии друг от друга.

Суть алгоритма заключается в том, что на каждом шаге расстояние между элементами уменьшается вдвое, что позволяет ускорить сортировку.

#для_продвинутых

Читать полностью…

Senior Java Developer

Переопределение методов в классах наследниках

В Java можно переопределить методы в классах-наследниках с помощью ключевого слова @Override. Переопределение метода позволяет изменить его реализацию в подклассе, сохраняя при этом сигнатуру (имя, типы параметров и возвращаемое значение) метода из суперкласса.

Обратите внимание на использование аннотации @Override перед переопределенным методом в классе Subclass. Это помогает компилятору обнаружить ошибки, если вы случайно ошиблись в сигнатуре метода или не переопределили метод правильно.

#для_продвинутых

Читать полностью…

Senior Java Developer

Инвертированный индекс

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

Ниже приведен пример простой реализации инвертированного индекса на языке Java. Этот пример демонстрирует создание инвертированного индекса для небольшой коллекции документов.

#для_продвинутых

Читать полностью…
Subscribe to a channel