Date | Title | Description |
10.11.2024 | Практические варианты использования port knocking | Справа тоже есть сова (присмотритесь). Источник картинок: сайт kaifolog.ru и Alice McKay/Caters
Существуют различные варианты попыток защиты\сокрытия сервисов от "любопытных глаз". Основные: использование нестандартного порта, fai... |
08.11.2024 | Keycloak Starter. Удобный способ аутентификации и авторизации | Контекст
Это статья-туториал. Рассмотрим в ней, как сделать компонент, который поможет забыть о необходимости дублировать механизмы аутентификации и авторизации. Цель статьи - реализовать starter, который можно будет легко и удобно подключи... |
24.10.2024 | Функциональные HTTP-эндпоинты с Spring MVC/WebFlux и Kotlin | Функциональные подходы к разработке в Spring становятся все более популярными благодаря своей гибкости и лаконичности. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, рассматривается, как можно эффективно определять HTTP... |
23.10.2024 | PostgreSQL 17: уже можно просто делать бекапы и перестать страдать? | Так исторически сложилось, что задача организации простого и понятного резервного копирования в мире PostgreSQL до сих пор не решена. Есть набор комьюнити-утилит, у каждой из которых есть некие плюсы, но всегда в нагрузку будет прорва минус... |
21.10.2024 | Сложность алгоритмов и типичные ошибки в Python | Всем привет! Я расскажу, что такое сложность алгоритмов и откуда она берётся, разберу типичные заблуждения и самые частые ошибки новичков. Материал рассчитан в первую очередь на начинающих Python-разработчиков, а также на тех, у кого Python... |
17.10.2024 | Building a Spring Boot Library: A Guide to Streamlined Development | In the world of software development, efficiency is king. The DRY principle—“Don’t Repeat Yourself”—is the golden rule. It’s about avoiding redundancy in code. Imagine a sprawling garden. If every flower grows in its own pot, maintenance be... |
16.10.2024 | Как спроектировать библиотеку для Spring Boot | Принцип DRY (Не повторяйся) – это важная составляющая цикла разработки программного обеспечения. Его цель – избежать ненужной повторяемости в коде. В частности, имеется множество приложений, которые могут находиться в составе одной и той же... |
14.10.2024 | Шифрование для облака: разные подходы | Облачные сервисы по-разному подходят к шифрованию данных на своём хостинге. В некоторых случаях это шифрование не удовлетворяет требованиям безопасности, поэтому приходится брать задачу в свои руки и шифровать файлы самостоятельно.
▍ Крипто... |
13.10.2024 | Анализ CVE-2024-43044 — от чтения файлов до удаленного выполнения кода в Jenkins через агентов | Введение
Jenkins — это широко используемый инструмент для автоматизации задач, таких как сборка, тестирование и развёртывание программного обеспечения. Он является важной частью процесса разработки во многих организациях. Если злоумышленник... |
11.09.2024 | Объект, ты null? Или как заключить контракт с компилятором в Kotlin | Привет, Хабр! Сегодня я расскажу о фиче, которую обнаружил в стандартной библиотеке котлина и реализация которой мне показалась неочевидной, а найти достаточного полного материала в интернете не удалось.
Пришлось копнуть, а что бы не было с... |
07.09.2024 | The Evolution of .NET: A Deep Dive into the Latest Developments | The world of software development is ever-changing. In this landscape, .NET stands as a robust framework, evolving to meet the demands of modern applications. As we step into 2024, Microsoft has unveiled significant updates that promise to ... |
06.09.2024 | Kotlin глазами Java-разработчика | Привет, хабр! Сегодня я хочу рассказать про свой опты взаимодействия с языком kotlin.
Представлюсь – я java разработчик, работаю крупном банке, создаю (и поддерживаю существующие) микросервисы.
Небольшая ремарка: я не собираюсь становиться ... |
02.09.2024 | Spark Essentials: Руководство по настройке и запуску проектов Spark с помощью Scala и sbt | Введение
В этой статье представлено подробное руководство по инициализации проекта Spark с помощью Scala Build Tool (SBT). Это руководство охватывает все этапы процесса, включая создание проектов, управление зависимостями, локальное тестиро... |
15.08.2024 | Navigating the Depths of JPA: A Guide to Partial Entity Loading | Java Persistence API (JPA) often faces criticism. Critics argue it loads too much data. They claim it’s inefficient. However, this perception is misleading. JPA, particularly through Spring Data JPA and Hibernate, offers tools for partial e... |
14.08.2024 | JPA Entity. Загрузи меня не полностью | JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей.
Команда Spring... |
13.08.2024 | Industry Expert Kartik Singhal on Natural Language Processing and Its Evolution | Created by Carl Williams
Aug 13 2024, 21:04 PM EDT
Share on Facebook Share on Twitter Share on LinkedIn Share on Reddit Share on Flipboard |
13.08.2024 | Бинарные деревья — решение алгоритмических задач, часть 1 | Есть много статей, в том числе и на хабре, где подробно рассказывается про бинарные деревья как про структуру данных. В этой статье я больше сосредоточусь на подходах к решению алгоритмических задач, где используются бинарные деревья.
Немно... |
30.07.2024 | Soft Assertions в AssertJ | 1. Введение
В этой статье мы познакомимся с Soft Assertions в AssertJ, подробно рассмотрим, зачем они нужны и обсудим похожие решения в других фреймворках для тестирования. 2. Мотивация
Для начала поймем, зачем нужны Soft Assertions. Возьме... |
14.07.2024 | Как генерируется PID-ы в Linux | Обзор
Вы когда-нибудь интересовались, что происходит за кулисами, когда мы запускаем или завершаем процесс? В этом уроке мы узнаем, как Linux генерирует PID для процессов.Таблица процессов в Linux
Ядро Linux использует структуру данных, наз... |
04.07.2024 | Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции | 1. Введение
В этой статье мы рассмотрим процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В другой статье мы сделали обзор компилятора K2 в общем, а здесь мы сфокусируемся только на процедуре миграции. Далее, под K... |
01.07.2024 | Unit-тесты в Android для начинающего разработчика | Меня зовут Александр Чекунков, я — Android‑разработчик в СБЕРе. Занимаюсь разработкой CSI‑опросов в мобильном приложении «Сбер». Я несу ответственность за функционал, который используют бизнес‑команды для оценки удовлетворённости клиентов.
... |
26.06.2024 | Почему умение дебажить один из самых важных навыков для разработчика | Привет! Меня зовут Абакар и я работаю главным тех лидом в Альфа Банке. Меня часто посещает вопрос — «А какой навык всё-таки самый полезный для разработчика?». Понятное дело, что ответ на этот вопрос обязан быть комплексным и скилл сет разра... |
24.06.2024 | Как устроены аннотации в Kotlin. Часть 1 | Привет! Сегодня с вами Максим Кругликов из Surf Android Team с переводом статьи про устройство аннотаций в Kotlin и три основных механизма их обработки: процессинг, рефлексию и lint. Давайте разберёмся.
Разработчики Android могут создавать ... |
21.06.2024 | Новый компилятор K2 в Kotlin. Часть 1 | 1. Введение
В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит новый компилятор К2 для Kotlin. Сначала он расскажет о том, какие проблемы K2 призван решить, а затем о других минорных улучшениях, которые были сделаны. Г... |
10.06.2024 | Опыт разработки сервиса отправки сообщений в Apache Kafka с использованием SASL/Kerberos и Avro Schema Registry | Привет, Хабр! Сегодня я расскажу о своем опыте создания сервиса для отправки сообщений в Apache Kafka с использованием Spring Boot, аутентификацией SASL/Kerberos и применением Avro Schema Registry для продюсера. В процессе разработки я стол... |
04.06.2024 | Самые распространённые ошибки на собеседовании у джунов-разработчиков | За последний месяц на hh.ru для джунов без опыта было доступно всего около 6% от общего числа опубликованных вакансий для разработчиков. Такое соотношение обусловливает высокую конкуренцию среди начинающих специалистов: дело доходит до соте... |
30.05.2024 | MapStruct — смаппь меня, если сможешь | Исходный код проекта: github
В этой статье мы разберемся с такими понятиями как DTO, Mapping, а также примерами их использования (в самом конце вы увидите полезные ссылки на доп источники по теме).
MapStruct
Я потратил на изучение данной би... |
27.05.2024 | Hazelcast: эксперименты с настройкой и долговременным хранением больших объектов in-memory | Статья будет полезна для тех, кто поддерживает приложения на Java, так как большая ее часть посвящена анализу работы G1 GC, знакомству с соответствующими инструментами и особенностями тюнинга GC, в частности для очень больших heap`ов. А так... |
24.05.2024 | Как протестировать логику консьюмеров и продюсеров и не сгореть? Spring Boot 3, Spring Kafka | Всем привет. Решил поделиться опытом тестирования логики консьюмеров и продюсеров в стандартном Spring Boot приложении. Я несколько раз подходил к этой задаче с различными вариантами и находил разные подводные камни, которые стимулировали м... |
23.05.2024 | Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов | Всем привет! Я Юнес, Software Development Engineer in Test " data-abbr="SDET">SDET в Т-Банке. Помогаю автоматизаторам создавать более эффективные и надежные тесты, готовить тестовые данные и настраивать CI/CD-пайплайны.
Ра... |
23.05.2024 | Suppgram: open-source служба поддержки на Telegram-ботах | Однажды ко мне пришли с запросом. Нужно было поднять горячую линию, в которую могли бы обращаться люди и получать ответы на свои вопросы, переписываясь с волонтёрами. Звучит как саппорт-система? Да, потому что это она и есть.
Осложнялась за... |
07.05.2024 | Мастерим многопоточность: техники и инструменты для Java-разработчиков. Часть 1 | Привет, Хабр! Это первая часть обзора по изучению существенных тем Java-стека и туториала по их применению. В этой статье вы найдете важные аспекты многопоточности в Java, а также полезные шпаргалки с практическими примерами.
Меня зовут Вла... |
07.05.2024 | Unit-тестирование Flink-операторов, Job: Flink MiniCluster | Привет, Хабр! С вами вновь Александр Бобряков, техлид в команде МТС Аналитики. И я с очередной статьёй из цикла про фреймворк Apache Flink.
В предыдущей части я рассказал, как тестировать stateless- и stateful-операторы Flink с использовани... |
18.04.2024 | Bash-completion: как сделать удобно в CLI | Так получилось что в рамках моей основной деятельности пришла пора сделать сервис для манипуляции с ресурсами СХД для виртуальных машин (ВМ). Они подаются в SAN в виде "LUN" ("Logical Unit Number"). Пока речь шла о десят... |
16.04.2024 | Еще раз о перформансе стримов в Java | Время от времени я наблюдаю или даже бываю втянутым в спор о перформансе стримов в джаве. Общеизвестно, что стримы это компромисс между перформансом и удобством. Однако я не нашел вменяемого набора бенчмарков, которые бы показали, насколько... |
13.04.2024 | Обобщённые типы. Часть 2/3. Классы типов и контейнеры | Скалисты-призыватели, случайно сфотографированные во время работы. Призыв (summon) неявных значений по типу – один из важных инструментов работы с классами типов в Scala 3.
Это вторая часть обзора обобщённых типов, в которой мы расскажем о ... |
13.04.2024 | Обобщённые типы. Часть 3/3. Применение контейнерных типов | Контейнерные типы являются замечательным строительным материалом для проектов любого масштаба!
В последней третьей части обзора продемонстрировано, как на основе обобщённых типов-контейнеров реализуются различные ФП-техники “чистого” постро... |
10.04.2024 | Что скрывается в коде игрового движка, написанного на Java? | Вы когда-нибудь интересовались игровыми движками, написанными на Java? В этой статье мы рассмотрим и проверим на наличие ошибок в исходном коде один из популярных игровых движков — jMonkeyEngine. Возможно, мы даже узнаем, почему игры пишутс... |
28.03.2024 | Как мы выстроили систему визуализации ошибок с помощью Grafana и снизили время на их отработку с 2 часов до 15 секунд... | Я работаю в DataNewton сервисе для скрининга контрагентов. Данные, которые мы предоставляем, берутся из 43-х официальных источников. Чаще всего это базы данных государственных сервисов. И тут есть проблема: такие сервисы любят менять формат... |
25.03.2024 | Ловушки интеграционного тестирования в Spring Boot | Некоторые экземпляры из коллекции проблем, с которыми часто сталкивается разработчик в мире тестирования микросервисов.Вступление — пирамида тестирования, микросервисы и ипотека
В современном IT микросервисная архитектура стала нормой. У не... |
25.03.2024 | Настраиваем ExecutorService'ы на практике | В этой статье хочу рассмотреть что такое ExecutorService в Java, зачем он нужен, варианты создания и в как его настраивать для решения практических задач
Понимаю что есть много подобных статей, но в тех статьях что мне удалось найти не хват... |
25.03.2024 | Синглтоны в Java | В этом кратком руководстве мы рассмотрим два наиболее популярных способа реализации синглтонов в Java.2. Синглтон на основе класса
Наиболее распространённым подходом является создание синглтона путём создания обычного класса и проверки того... |
21.03.2024 | Внутренний мир: Java NIO | Привет, Хабр!
Парадигма «неблокируемого ввода/вывода» заинтересовала меня с того момента, как я о ней услышал. Идея возможности вызвать операцию чтения без блокировки вызывающего потока довольно привлекающая сама по себе.
Неблокируемый ввод... |
17.03.2024 | Тормозящая виртуализация на x86. Небольшая попытка разобраться Часть 4. KVM | Для лиги лени. Какая-то заумь про то, что не нужно, потому что все равно давно у нормальных людей все приложения в облаках на микросервисах, и прекрасно работают.
Часть 4. Что из этого следует, и как устроен планировщик в KVM или KVM- QEMU.... |
20.02.2024 | Java Spring Reactive WebSession на примере | Рассмотрим простой пример создания сессии, её использования и инвалидации в реактивном стеке Spring'а.Зависимость
Добавим org.springframework.session:spring-session-core:
org.springframework.boot spring-boot-starter-webflux / ...... |
13.02.2024 | Как я перешёл на тёмную сторону: путь из Андроида в бэкенд | Привет, Хабр! Меня зовут Андрей. 7 лет я разрабатываю под Android, последние полтора года в Альфа-Банке. На проекте мы используем RX Java, но планируем перейти на корутины, основная архитектура MVP, сейчас переходим на MVI. Для внедрения за... |
13.02.2024 | Использование Postgres и JSONB для хранения товаров, характеристик и цен | Всем привет! Меня зовут Александр, в данное время я на фрилансе занимаюсь проектом по созданию очередного маркетплейса. В процессе работы мы столкнулись с далеко не новой проблемой организации хранения информации о товарах, имеющих различны... |
11.02.2024 | Простой, полезный проект интеграционных тестов | Про что будет идти речь
Привет, эта статья - кейс реализации интеграционных тестов для распределенной системы. Точнее - для ее отдельного слоя. Это длинное чтение, которое можно использовать как инструкцию. Тут не будет кратких и емких реце... |
24.01.2024 | Как загружать классы в Java 8 и Java 9+? | Привет, Хабр! Я разработчик в ИСП РАН, занимаюсь разработкой статического анализатора Svace. Недавно я столкнулся с задачей самостоятельной загрузки классов в JVM, что оказалось непросто, потому что в проекте мы используем модули Java.
Моду... |
06.01.2024 | Создание и использование BOM в Gradle | Привет Хабр!
В каждой компании (а если она крупная, то, скорее всего, в каждом подразделении) должна быть выстроена культура использования BOM (bill of materials) для управления версиями зависимостей. В этой статье я хочу поделиться своим в... |
05.01.2024 | Распределенное управление конкурентностью | Разные виды блокировок доступа
Управление конкурентным доступом является очень важной концепцией в Системе Управления Базами Данных. Оно гарантирует, что одновременное выполнение запросов несколькими процессами или пользователями оставит да... |
24.12.2023 | Абстрактность в Swift | ООП
Абстракция, инкапсуляция, наследование и полиморфизм являются ключевыми принципами объектно-ориентированного программирования, которые мы часто обсуждаем в контексте собеседований или в кругу друзей. Однако, не всегда можно обнаружить и... |
19.12.2023 | FizzBuzz for Senior | Алоха всем.
Ни для кого не секрет, что алгоритмические задачи уже стали/становятся обыденными на техническом интервью. Кто-то может любить это, кто-то ненавидеть, но факт остается фактом, что бы пройти собеседование нужно научится решать ал... |
15.12.2023 | Знакомство с Kubernetes на практике | Введение
Если Вы хоть раз работали с высоконагруженными приложениями, то наверняка знаете, какое количество головной боли возникает в процессе. Как правило, в таких приложениях все направлено на максимальную оптимизацию и увеличение быстрод... |
15.12.2023 | Разворачиваем и заворачиваем в docker проект ASP.NET core на Ubuntu в связке с PostgreSQL | Предисловие
Здравствуйте. Я являюсь новичком в сфере it. Идея написать данную статью мне пришла отчасти оттого, что, по моим наблюдениям, тема про пару dotnet и Linux не освещена в больших объёмах (скорее всего из-за ненадобности), но как н... |
09.12.2023 | Генерация PDF-документации из OpenAPI-спецификации в SpringBoot-приложении | Предисловие
Данная статья может быть полезна тем, кто ищет способы автоматической генерации PDF-документации для описания API разработанного SpringBoot-приложенияОписание проблемы
При интеграции с нашим приложением, написанном на "клас... |
01.12.2023 | Мигрируем Java Spring Boot приложение на Kotlin | Практическое руководство для миграции своего Java приложения (в особенности Spring Boot) на Kotlin. Основные ссылки на документацию: Kotlin Docs (на русском ссылки можно заменять на "ru", у меня работает только чз VPN).Инициализац... |
30.11.2023 | Что общего между раком крови, лазерами и нейронными сетями? | Доброго времени суток, дорогой Habr, надеюсь вы успели заскучать после 3-х месяцев паузы (ссылка на прошлую статью). На связи снова Николай Иванов и сегодня вы узнаете, что общего между раком крови, лазерами и машинным обучением. В этой ста... |
27.11.2023 | Garbage Collection и JVM | Привет, Хабр!
JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим... |
23.11.2023 | API vs ABI: разницу видят не только лишь все | Привет, дорогой читатель! Думаю, ты точно знаешь, что такое API и как сделать, чтобы твои изменения были API-совместимыми. На самом деле я сам никогда не задумывался о том, что существует ABI-совместимость, пока не столкнулся с разработкой ... |
23.11.2023 | Как использовать Spring в качестве фреймворка для Flink-приложений | Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink, и я решил поделиться на Хабре своим опытом внедрения этой технологии... |
21.11.2023 | Тестируем Spring Boot приложения через Spock Framework | Написание тестов — важная часть создания качественного ПО, но в то же время кажется неинтересным и утомительным занятием. Попробуем улучшить этот процесс, объединив сразу несколько крутых технологий.
Если говорить про тестирование Java-прил... |
05.11.2023 | Цикл постов про Keycloak. Часть вторая: Контроль доступа на уровне приложения | Данная статья является продолжением серии материалов по внедрению Keycloak в качестве провайдера авторизации. [спойлер: в конце вас ждет разочарование]
Первая часть
В прошлый раз мы настроили ABAC (Attribute Based Access Control) с использо... |
02.11.2023 | Жук, нумерология, хеш или ничо? Оптимизация работы с путями | Привет, Хабр! Меня зовут Евгений Кузьмин, я Java‑разработчик в CDEK. Надеюсь, все знают, что это за компания и чем занимается. Давайте представим, что вам нужно отправить посылку с гостинцами родственнику в Москву из Новосибирска. Вы приход... |
18.10.2023 | Part 1. Инструменты автоматизации тестирования | Привет! Я Вадим Лунин, QA Manager в Альфа Банке в Беларуси. С 2022 года я работаю в банке и одно из моих направлений работы - выбор инструментов тестирования. Не так давно я написал статью “Part 0. Инструментарий QA в Альфа Банке”, в которо... |
05.10.2023 | Упрощаем работу с Excel с помошью Apache POI + Jxls: готовый шаблонный код | Доброе время!
В рамках нашего свежего курса «Работа с документами в Java» есть тема: «Работа с Excel с помощью Apache POI». Хочу поделиться здесь основными моментами кода этого занятия и решением проблем, с которыми пришлось столкнуться.
По... |
24.07.2023 | Звериные алгоритмы: какими представителями животного мира вдохновлялись исследователи для создания алгоритмов... | По мере развития технологий в мире появляется все больше различных технологических алгоритмов. Часть из названы в честь ученых, имеющих отношение к их разработке, другая часть имеет простые (или не очень простые) «сухие» названия или же заб... |
18.07.2023 | Как на самом деле работает Java ClassLoader system? (с картинками) — Часть 1/3, Загрузка | Когда я впервые погрузился в мир загрузчиков классов Java, это было ответом на любопытный вопрос. Популярные источники (Wikipedia, Baeldung, DZone) содержат устаревшую, иногда противоречивую друг другу информацию, и это несоответствие послу... |
18.07.2023 | Замыкания в Groovy | 1. Обзор
В этом ознакомительном учебном пособии мы рассмотрим концепцию замыканий в Groovy, являющуюся ключевой особенностью этого динамичного и мощного языка JVM.
Концепцию замыканий поддерживают и многие другие языки, включая Javascript и... |
15.07.2023 | Работа с системой СИ на Java | Система СИ и взаимосвязи между единицами физических величин.
Библиотека по работе с единицами системы СИ KotUniL, разработанная изначально на Kotlin, недавно сделана мультиплатформенной. В частности, она доступна теперь и на JavaScript, о ч... |
13.07.2023 | Модернизация приложений и обеспечение надёжности сайтов (SRE) | Часто приходится говорить с клиентами и партнёрами о целостной модернизации приложений. В контексте модернизации приложений наиболее востребованы такие аспекты как обеспечение надёжности приложений, упрощение проектирования и как можно боле... |
29.06.2023 | Введение в Java Process Memory Model | Каждое Java приложение, после запуска, создаёт десятки, сотни, тысячи объектов в памяти компьютера на котором оно запущено. Память, при этом, ресурс не бесконечный, и поэтому необходимо использовать его эффективно. Виртуальная Машина Java (... |
09.06.2023 | Ещё раз о пропертях или откуда что берётся | Кот пытается понять, где указано, на каком порту запустится web-serverО чём вообще речь?
Всем привет! В данной статье речь пойдёт о настраиваемых параметрах конфигурации Spring приложений. Когда я только начал изучать Spring, естественно, о... |
07.06.2023 | Разница между FileReader и BufferedReader в Java | 1. Обзор
FileReader и BufferedReader — два класса, которые могут считывать символы из входного потока.
В этом туториале мы с вами рассмотрим различия между ними.2. FileReader
Класс FileReader предназначен для чтения символьного потока из фа... |
02.06.2023 | Trilemma Trade-Offs: A New CAP Theorem For Vector Databases Has Emerged | Charles Xie is the CEO of Zilliz and the inventor of Milvus, an open-source vector database. |
08.05.2023 | PostgreSQL, Spring Framework и Android для начинающего разработчика | Здравствуй, дорогой читатель. Каждый разработчик, независимо от его специальности, сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо разработать проект, имеющий базу данных, серверную часть... |
25.04.2023 | Нагрузочное тестирование конечной точки Rest с помощью Gatling | 1. Введение
В этой статье мы рассмотрим, как можно использовать Gatling для тестирования производительности любой конечной точки Rest, уделяя особое внимание нагрузочному тестированию. Мы начнем с краткого введения в различные типы тестиров... |
20.04.2023 | В какой сказке встречаются Баба Яга и Колобок или сказ о том как мы таск-трекер писали, часть вторая | Спойлер
Всем привет, как и обещали, публикуем продолжение. Первая часть, напомню, здесь (если не читали, то лучше начать с нее, чтобы картина была цельной).Небольшое введение
За этот период в целом, у нас мало что поменялось - очень много р... |
16.04.2023 | Ни одно задание не будет провалено: Spring Boot и Quartz в режиме cluster | Цель данного мини-туториала
Ниже будет краткий обзор настройки приложения, написанного на Kotlin + Spring Boot, которое развернуто в кластере в нескольких экземплярах и использует библиотеку Quartz для выполнения запланированных по cron зад... |
07.04.2023 | Наиболее распространённые мифы о Scala: сеанс с разоблачением | В этом посте развенчивается ряд очень существенных мифов о языке Scala, которые, как нам известно, циркулируют в блогосфере. Для каждого развенчанного мифа мы представим альтернативную точку зрения, подкреплённую данными из надёжных источни... |
03.04.2023 | Scala Digest. Выпуск 3 | Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и стараемся его популяризировать.
Мы собрали свежий выпуск новостей из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nisht... |
06.03.2023 | Spring-потрошитель: жизненный цикл Spring Framework | Введение
Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.
Но насколько ... |
25.02.2023 | Spring Security и архитектура наследования ролей в не плоской модели | Содержание
Бизнес‑требования и доменная модель
Роли, enums и наследование
Unit-тестирование иерархии ролей с наследованием
Определяем JPA-сущности
Создаем кастомную реализацию интерфейса Authentication
Почему метод getAuthorities() возвраща... |
21.02.2023 | Как мы обновили старый кластер Elasticsearch на 3 ПБ без простоев. Части 6 и 7 (финальная) | Прим. переводчика: автор статьи рассказывает, как его команда убедилась, что новый кластер Elasticsearch работает в соответствии с ожиданиями и полностью готов к production-нагрузкам. Также подводит итоги всего процесса и анализирует получи... |
15.02.2023 | Spring Boot. Настройка профилирования времени выполнения | В процессе работы над одной из задач возникла необходимость промониторить время исполнения отдельных участков кода одного из микросервисов для того, чтобы отловить узкие места и попытаться эту ситуацию исправить.
Т.к. речь шла о сервисе, ко... |
13.02.2023 | Server-Sent Events в java. От любви до ненависти… | Введение
Я работаю на проекте, цель которого это некая пост-обработка финансовых операций. Это большая система, со множеством модулей и различными интеграциями с другими системами из которых к нам и попадают эти операции. У нас есть АРМ, он... |
28.01.2023 | Retry or No? | Введение
Привет, давайте знакомиться! Меня зовут, Иван. Для самых нетерпеливых и пытливых, которые хотят сразу к сути и проматывают введение, в этой статье поговорим о:
Что такое устойчивость и какое влияние на нее имеет retry?
Анализируем,... |
19.01.2023 | Использование SEDA со Spring Integration и Apache Camel | 1. Введение
SEDA, или Staged Event-Driven Architecture, представляет собой архитектурный стиль, предложенный Мэттом Уэлшем в его докторской диссертации. диссертация. Его основными преимуществами являются масштабируемость, поддержка высококо... |
26.12.2022 | Spring Data Specification: наложение фронтенд-фильтров на репозитории spring data | Коллеги, добрый день. Во многих проектах для работы с данными на бекенде используется Spring Data со всеми плюшками использования декларативного подхода описания запросов к данным на основе интерфейсов. Также очень часто бекенду нужно быть ... |
16.12.2022 | Может ли Java-приложение использовать больше памяти, чем размер кучи | 1. Введение
Возможно, вы замечали, что Java-приложение может превышать лимит памяти, указанный в параметре -Xmx (максимальный размер кучи). Дело в том, что JVM помимо кучи использует и другие области памяти.
Давайте начнем со структуры памя... |
12.12.2022 | Hashmap по версии Golang вместе с реализацией на дженериках | Привет. Сегодня рассмотрим такую интересную структуру данных как hashmap, а именно ее реализацию в Go. Вкратце разберем что такое hashmap, как это выглядит под капотом Go 1.19. Посмотрим отличия реализации с Java и Python. Реализуем hashmap... |
09.12.2022 | Запросы к MongoDB из Java с помощью билдера фильтров | 1. Обзор
В этой статье разберемся, как использовать класс Filters для запросов к MongoDB.
Класс Filters представляет собой билдер для удобного написания фильтров запросов. Фильтры — это некоторые условные операции, которые MongoDB используе... |
28.11.2022 | Security микросервисов с помощью Spring Cloud Gateway и TokenReley | Данная статья результат поиска некоего каноничного решения организации безопасности доступа к ресурсам в микросервисной архитектуре, построенной в экосистеме Spring. После прочтения десятка статей по данной тематике, к сожалению, не нашел т... |
23.11.2022 | JUnit: тестирование методов, вызывающих System.exit() | 1. Обзор
В определенных ситуациях нам может потребоваться, чтобы метод вызывал System.exit() и завершал работу приложения. Например, в случае если приложение должно быть запущено только один раз, а затем завершено, или в случае фатальных ош... |
01.11.2022 | 14 Free And Low-Cost (And Fun) Resources For Kids Interested In Technology | With the variety of tech careers available these days—several of them well-paying—many parents would love to encourage their children to view technology not just as a tool for convenience and entertainment but also as a potential career. An... |
30.10.2022 | Java Stream API #неОпятьАСнова #javaJunior #java8 | Эта статья, как и все последующие и предыдущие – моя попытка структурировать полученные знания в процессе изучения Java. Здесь тезисно собрана вся основная информация по теме и те формулировки, которые показались мне наиболее удачными и пон... |
26.08.2022 | Практические примеры использования Stream API | Всем привет! Решил написать статью с практическими примерами использования Stream API. В данной статье не будет теории - только хардкор и практические примеры. Поехали!
Сразу хочу отметить: данная статья написана исключительно в целях демон... |
22.08.2022 | Spring Boot 3.0 — готовимся заранее | Здравствуй, читатель Хабра!
До выхода Spring Boot 3 осталось совсем немного - 3 месяца. Уже появляются статьи -
What’s New, It's time to get ready. Недавно JetBrains выпустила IDEA с поддержка Spring 6 и Spring Boot 3. Самое время потрениро... |
14.08.2022 | Сквозное и интеграционное тестирование просто, как юнит-тесты | Когда изменения затрагивают несколько микросервисов, возникает вопрос, как протестировать их в связке. Можно покрыть границы сервисов юнит тестами, а интеграцию проверить, развернув измененный код на тестовом окружении. У такого подхода две... |
21.07.2022 | Нагрузочный клиент по тестированию Кафка в Avro формате на Java | Современный Фреймворк Spring Boot позволяет писать очень многие вещи писать современным программистам в две-три строчки, просто подключив нужную зависимость, для этого нужно уметь хорошо ориентироваться в возможностях этого Фреймворка, но е... |