Обновить
72.88

Kotlin *

Статически типизированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

JVM + Память + GC без боли: моя шпаргалка для собесов в Java. Часть 2

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров432

Всем привет!

Работая Senior Java Developer в одном из банков, я успел пройти уйму собеседований, столкнуться с десятками каверзных вопросов и понять, сколько усилий требует подготовка. И каждый раз убеждаюсь в одном: тема JVM, память и GC — одна из самых недооценённых и одновременно самых частых на Java-собесах. Многие знают об этом “что-то где-то слышал”, но как только разговор заходит про Heap, Metaspace, JIT, Safepoint или разные типы GC — начинаются проблемы.

Поэтому эта статья — вторая часть моей шпаргалки по подготовке к Java-собеседованиям. Здесь я собрал всё самое важное о работе JVM и управлении памятью простым, человеческим языком, без боли и академической зауми. Разберём архитектуру JVM, устройство памяти, JIT, GC, типы ссылок и самые частые вопросы, которые любят спрашивать на интервью.

В профиле уже есть первая часть для подготовки — Многопоточность без боли.

Читать далее

Новости

Многопоточность без боли: моя шпаргалка для собесов в Java

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8.8K

Всем привет!

Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.

Поэтому в этой статье я хочу помочь вам уверенно подготовиться к секции по concurrency: разберём ключевые термины, посмотрим, как это работает на практике, и дам несколько советов, которые реально помогают на собесах. Поехали!

Читать далее

Как не сойти с ума с Grafana Unified Alerting: настраиваем алерт и разбираем все грабли

Время на прочтение7 мин
Количество просмотров576

В какой‑то момент простого дашборда уже не хватает. Хочется, чтобы метрики не просто «где‑то красиво лежали», а сами приходили и били в лицо, когда что‑то пошло не так.

Разберёмся с Grafana Unified Alerting, expressions, темплейтами уведомлений и типичными ошибками, которые легко словить, если вы впервые лезете в алерты.

Читать далее

Spring-boot-starter для паттерна Transaction outbox Kafka

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.7K

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

В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter, который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.

Читать далее

Свой REST API сервер на Kotlin с базой данных и деплоем на Railway за 10 минут на Ktor

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.1K

В этой статье мы разберём, как написать собственный сервер на Kotlin, подключить к нему базу данных, создать пару эндпоинтов и всего за 5 минут задеплоить сервер вместе с базой. В итоге у нас получится полноценная связка сервер + БД, готовая к работе. В дальнейшем на её основе вы сможете создавать более сложные серверные решения.

Читать далее

Сравнение собеседований в 8 крупных технологических компаниях

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.9K

В новом переводе от команды Spring АйО Пунит Патвари недавно принял предложение о работе в Atlassian на должность ведущего инженера-программиста (Principal Software Engineer). За три месяца он прошёл более 60 собеседований в 11 компаниях, как он мне рассказал, и отказался ещё от трёх процессов после того, как согласился на предложение от Atlassian — включая собеседование в Meta*.

* Meta признана экстремистcкой организацией в России

Читать далее

Как ускорить WebView в Android и доказать это цифрами

Время на прочтение7 мин
Количество просмотров1.6K

Как приручить WebView: пререндерим экраны заранее (AndroidX WebKit prerenderUrlAsync), меряем не ощущения, а TTVR — время до визуальной готовности — лёгким offscreen-детектором, шлём метрики в Grafana. Внутри — когда и что пререндерить, таймауты/отмена, cookie-политика и готовые сниппеты. На проде — до 2.5× быстрее и меньше «белых экранов».

Читать далее

Как дефолтная пагинация в Spring сломала проект и как это починить

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.8K

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

Читать далее

Рецензия на книгу «Основы JetPack Compose: Разработка приложений для Android»

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.6K

За последние несколько лет Jetpack Compose стал не просто новым способом создания интерфейсов под Android, а фактически основным инструментом UI-разработки. Google активно развивает Compose как декларативный фреймворк, заменяющий устаревший XML-подход, а экосистема вокруг него — от Material Design 3 до Compose Multiplatform — превратилась в полноценную платформу для современной мобильной разработки. Теперь учебник по Jetpack Compose уровня монографии (около 700 стр.) доступен на русском языке. Перевод книги по версии 1.6 — удобная отправная точка для тех, кто делает первые шаги или развивает компетенции в Compose-разработке.

Читать далее

Подключаем LLMку в свой Java/Kotlin проект через Docker

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.8K

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

Мы будем использовать Java/Kotlin + Docker + Ollama.

Читать далее

OpenTelemetry — не то, чем кажется…

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.7K

Привет! Меня зовут — Евгений, работаю в финтехе и проектирую системы, которые обрабатывают миллионы запросов, интегрируются с десятками внешних сервисов и живут в Kubernetes. А еще я преподаю Java/Spring Boot и рассказываю студентам, как не наступать на чужие грабли, а создавать свои и прыгать на них.

Больше 10 лет в разработке — и за эти годы в череде проектов я видел одну и ту же боль: отсутствие системного подхода к наблюдаемости. Логи, метрики и трейсы появляются «по остаточному принципу»: что‑то добавили при отладке, что‑то прилетело из чужой либы, что‑то настроили на проде. Итог — инженеры часами разбирают простые инциденты, а продуктовые команды теряют скорость.

В статье поделюсь нашим опытом: как мы строим наблюдаемость в системах, почему OpenTelemetry — это больше чем стандарт и какими принципами мы руководствуемся.

Ну давай посмотрим что у тебя там...

Встречаем Spring AI Agents и Spring AI Bench

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

Java-разработчикам теперь доступен мощный инструментарий для работы с агентными ИИ-системами: Spring AI представила проекты Agents и Bench. В новом переводе от команды Spring АйО рассмотрим, как первый обеспечивает удобную абстракцию для работы с CLI ИИ-агентами, а второй — предлагает реалистичные бенчмарки для оценки их эффективности в задачах enterprise-разработки.

Читать далее

Любовь, смерть и жизненный цикл: считаем, сколько люди проводят времени в вашем Android-приложении

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров571

Приветствую всех заглянувших трудяг! Помните, как вы готовились к первым собеседованиям на должность Android-разработчика? Жизненный цикл, пересоздание Activity, коллбеки ЖЦ: все эти понятия хорошо знакомы каждому молодому специалисту в нашей с вами области. Однако одна из прилетевших от аналитиков задач на отправку событий, связанных с длительностью нахождения пользователя в приложении, ввела меня в ступор, заставила провести небольшое исследование, проявить чудеса ведения переговоров и узнать много интересных нюансов. Об этом увлекательном путешествии сегодня расскажу вам я, Александр Лебедь, Android-разработчик Core команды приложения WB Partners.

Читать далее

Ближайшие события

Как я создал тиндер для подбора подарков, не умея кодить

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров1.8K

Всем привет! Меня зовут Андрей. По профессии я занимаюсь стратегией и развитием нового бизнеса в российском телекоме. Но мне всегда была близка история создать что-то своё, полезное, красивое и технологичное. И недавно я это сделал, создав GIFTbase.

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

Читать далее

Что такое JOOQ и как его едят на примере Kotlin + Gradle + JOOQ

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров832

Всем привет, сегодня я бы хотел поговорить про JOOQ для чего, зачем и почему и немного сравнить его с Hibernate, Spring data JPA. Долгое время я работал только с Hibernate, Spring data JPA и думал, что лучше них не будет и конкурентов ТОЧНО НЕТ, пока не встретил JOOQ. Сегодня расскажу подробнее что за инструмент, как его лучше приготовить и когда выбрать.

Читать далее

Релиз Explyt Spring: SQL, Docker-Compose, Debugger

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.2K

Всем привет! На связи команда Explyt Spring. Недавно у нас вышел очередной релиз, который включает несколько важный обновлений: поддержа SQL, очередные улучшения для Spring Debugger, поддержка Spring пропертей для Docker-Compose файлов и многое другое. Если вам интересны подробности то добро пожаловать под кат!

Читать далее

DockerHub удаляет старые JDK теги — ваши пайплайны могут быть под угрозой

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.8K

Если вы используете openjdk:<tag> образы в CI/CD и пулите их с Docker Hub, Вам следует оперативно перепроверить свои пайплайны: мейнтейнеры DockerHub удалили ряд устаревших тегов без громких анонсов. Некоторые сборки уже не работают — пострадали сотни пользователей.

В данной новости, эксперт сообщества Spring АйО Михаил Поливаха рассказывает, что произошло, почему это проблема, и какие есть альтернативы.

Читать далее

MapStruct: как безобидный метод портит весь маппинг

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров3.9K

При работе с MapStruct возникает соблазн добавлять небольшие вспомогательные методы прямо в ваш mapper и вызывать их через expression. Однако если такой метод оперирует довольно общими типами (например, String -> String), MapStruct может обнаружить его и применить к другим полям того же типа — даже если вы этого не планировали.

Читать далее

Насколько Java быстрая?

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров14K

Некоторые считают Java раздутым монстром, а Rust — чемпионом производительности. Но что, если взглянуть на современную Java с Vector API и многопоточностью? 

В новом переводе от команды Spring АйО посмотрим на запуск масштабной симуляции частиц и сравним результаты. Правда ли, что бывалая Java всё ещё умеет удивлять? 

Сравнение performance-а языков всегда было холиварной темой. Рекомендуем расценивать статью как приглашение к конструктивной дискуссиии, а не как призыв к конкретному действию.

Читать далее

Кастомная сериализация с помощью kotlinx.serialization

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров693

Привет, Хабр! Меня зовут Антон Николаев, я senior android-разработчик в Okko, работаю в команде «Молодость» — занимаюсь мультипрофилем и всем, что связано с детским контентом.

Сегодня расскажу о JSON Schema и как мы используем эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как она упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство. В ней обсудим:

Что такое JSON Schema 

Читать далее
1
23 ...