Обновить
59.49

Kotlin *

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

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

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

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

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

Читать далее

Новости

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

За кулисами асинхронности: корутины, горутины и правда между ними

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

Асинхронность — слово, от которого у разработчиков дергается глаз и теплеет сердце. Корутины, горутины, event loop, трэдпулы — за этими терминами скрывается целая философия, меняющая взгляд на то, как писать высоконагруженные системы.

Привет, Хабр! Меня зовут Дмитрий Буров и я Golang-разработчик, а также лидер Go-сообщества в Lamoda Tech. В IT свитчнулся из военного дирижера. В коммерческой  разработке — более 10 лет, начинал как фуллстек-разработчик на стеке JS, PHP, CSS, а последние шесть пишу только на Go. В этой статье по мотивам моего доклада для GolangConf расскажу про асинхронность и её роль в современных высоконагруженных системах. Разберём исторический аспект, концепцию и реализацию корутин в разных языках, эволюцию асинхронных подходов, сравним корутины и горутины, выясним, зачем Go добавил в рантайм пакет coro и чем это может обернуться.

Читать далее

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

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

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

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

Читать далее

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

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

Всем привет, сегодня я бы хотел поговорить про 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.7K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Что такое JSON Schema 

Читать далее

Final должен быть значением по умолчанию для Java-классов

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

А что, если вам сказали бы, что класс без final — это ошибка проектирования? Что возможность наследования должна быть исключением, а не правилом? В новом переводе от команды Spring АйО автор предлагает радикальную идею: все классы должны быть final по умолчанию.

⚠️ Статья была написана ещё до появления Kotlin`а. Цель перевода данной статьи – поднять запылившийся на полке вопрос в дизайне API: "Нужно ли оставлять API открытым по-умолчанию для внешнего расширения?"

Читать далее

Ошибки, которые инженеры совершают при код-ревью

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

Код-ревью стало ключевым этапом в разработке: генерация кода с помощью LLM упростилась, а вот проверка его качества по-прежнему требует инженерной экспертизы.

В новом переводе от команды Spring АйО эксперты сообщества подробно и на собственном опыте рассказали про нюансы код-ревью.

Читать далее

Исследуем SharedFlow: emit vs tryEmit, как использовать replay и bufferCapacity

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

Всем привет! На связи Александр Гирев, Mobile Lead в команде ценообразования портала для продавцов в Wildberries. Однажды на собеседовании мы обсуждали с кандидатом кусочек кода, связанный с Kotlin Flow. Кандидату нужно было найти причину бага. И при помощи нейросети или своих глубоких познаний наш визави стал говорить о синхронности и асинхронности emit и tryEmit, которые используются для передачи новой порции данных в SharedFlow.

К сути проблемы его размышления не относились, однако я получил сигнал, что здорово было бы поглубже разобраться, как это работает. В статье разберём разницу между emit() и tryEmit(), для каких случаев подходят эти операторы, а также обсудим влияние параметров replay и bufferCapacity на работу MutableSharedFlow

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