Обновить
81.81

Kotlin *

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

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

Spring Data Ahead of Time репозитории

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

Команда Spring АйО перевела статью про новую версию AOT-репозиториев, которые позволяют генерировать реализацию методов запросов на этапе сборки. Это ускоряет запуск приложений, снижает потребление памяти и делает поведение репозиториев более прозрачным для разработчиков.

Читать далее

Книга: «Kotlin. Паттерны проектирования и лучшие практики, 3-е издание»

Время на прочтение13 мин
Количество просмотров4.7K
Привет, Хаброжители!

Издательство Sprint book представляет третье издание книги «Kotlin. Паттерны проектирования и лучшие практики» от Алексея Сошина — опытного архитектора ПО и эксперта в Kotlin. Это руководство станет незаменимым помощником для разработчиков, которые хотят не только изучить классические и современные паттерны проектирования, но и научиться применять их в реальных проектах на Kotlin.

Книга охватывает все ключевые аспекты языка, начиная с базового синтаксиса и заканчивая продвинутыми концепциями, такими как структурированная конкурентность, контекстные приемники и реактивное программирование. Особое внимание уделено актуальным обновлениям Kotlin, включая версии 1.6 и 2.0, а также популярным библиотекам, таким как Arrow, Ktor и Vert.x.
Читать дальше →

Один assert на тест. А может быть, нет?

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

Команда Spring АйО перевела статью эксперта Михаила Поливахи о том, почему правило о единственном assert'е на тест иногда можно и нужно нарушать.

Читать далее

Создание кастомного тултипа Jetpack Compose

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

Привет, Хабр! Меня зовут Альберт, я Android-разработчик в команде интеграции рассрочки в приложении Wildberries.

В этой статье мы напишем простенькую реализацию тултипов на Jetpack Compose своими руками.

Читать далее

FCM для Android и Backend на Kotlin

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

Как доставлять информацию на устройства через Google-сервисы или как удаленно заставить приложение отправить уведомление пользователю?

Читать далее

Двоичная Java: CDS, CRaC и AOT для ускорения запуска и прогрева JVM

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

Это текстовая версия доклада с HighLoad++ 2024, с которым выступал один из наших бывших девелопер-адвокатов @RustamKuramshin Также есть отдельная запись доклада, сделанная силами участников программного комитета HighLoad++.

Читать далее

Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping

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

За последнее время Jetpack Compose и его кроссплатформенный собрат Compose Multiplatform прошел большой путь от ранних альфа релизов и скептического отношения комьюнити до статуса главного UI-фреймфорка под Android и production-ready состояния на iOS.

Тем не менее одна из важных тем, касающихся runtime-производительности фреймворка, все еще остается полной темных пятен, и это тема stability. Как ни странно, ведь на эту тему сделано множество статей и докладов. Проблема заключается в том, что стремительное развитие фреймворка очень быстро делает эти статьи, доклады и даже документацию устаревшими, а новые посты на эту тему вторят старым, дальше распространяя ложную информацию о том, как работает рекомпозиция, пропускаемость (skippability) и перезапускаемость (restartability).

Использование LLM для получения актуальной информации не очень поможет. Простой пример - спросим у ChatGPT, будет ли перезапущена Composable функция, если она имеет нестабильные аргументы, и получим неправильный ответ:

Читать далее

Сегодня — Java 30 лет: ретроспектива выдающейся экосистемы разработки

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

Сегодня Java исполняется 30. Три десятилетия — это эпоха. За это время технологии успели смениться кардинально, а некоторые модные языки — появиться, поиграть мускулами и тихо исчезнуть. А Java по-прежнему тут. Она не просто "ещё жива" — она стабильно занимает лидирующие места в рейтингах, используется в крупнейших корпорациях и продолжает эволюционировать. Как так получилось?

В этой статье я расскажу, почему Java прожила 30 лет и всё ещё чувствует себя уверенно: как она развивалась, как решаются проблемы производительности JVM, и почему на неё до сих пор делают ставку разработчики, архитекторы и CTO.

Предаться воспоминаниям

Стратегическое партнёрство Kotlin и Spring

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

Команда Spring АйО перевела новость о стратегическом партнёрстве Kotlin и Spring. Полная null-безопасность, официальные обучающие материалы, мощная рефлексия и выразительный DSL — звучит многообещающе.

Читать далее

Интеграционное тестирование в Spring Boot: SourceCraft + Amplicode + Docker Compose Starter в деле

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

Когда одних юнит-тестов уже недостаточно, на сцену выходят интеграционные. В этой статье от команды Amplicode мы покажем, как протестировать REST API в Spring Boot с использованием современного стека: генерация тестов через Amplicode, автоматический запуск окружения с помощью Docker Compose Starter и поддержки со стороны LLM-инструментов от Яндекса.

Читать далее

Управление транзакциями в Spring: подробно о @Transactional

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

Команда Spring АйО перевела статью об использовании аннотации @Transactional для управления транзакциями в Spring и в различных фреймворках экосистемы Spring, а также о ее интеграции с Hibernate. После прочтения данной статьи вы будете гораздо лучше понимать основы работы с этой аннотацией, а также механизмы, которые работают под капотом при ее использовании.

Читать далее

Что нового в Amplicode 2025.1

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

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

* Поиск по эндпоинтам 

* Улучшенный HTTP Client 

* Editor Inlay  

* Улучшенная генерация Docker-файлов 

* Интеграция с DBeaver  

* Spring Boot Initializer 

Читать далее

Что нового в Hibernate 7.0

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

Команда Spring АйО перевела статью про новые функции и возможности, добавленные в Hibernate ORM версии 7.0 : новая лицензия Apache 2.0, переход на Jakarta Persistence 3.2 и Java 17, замена HCANN на Hibernate Models, а также множество улучшений для работы с JSON, XML, enum, soft-delete и запросами.

Добавлено экспериментальное API для batch-операций, Set-returning functions и удобный доступ к кэшу первого уровня.

Читать далее

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

Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть вторая. Альтернативы

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

В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным.

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

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

Это будут jOOQ и Exposed.

Читать далее

Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам

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

Я уверен, вы слышали про Robolectric, но использовали ли хоть раз для UI‑тестирования или screenshot-тестирования? Да, у библиотеки неоднозначная репутация в Android-комьюнити. Возможно, вы будете в восторге, когда её устройство перестанет быть для вас загадкой.

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

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

Читать далее

Контракты в Kotlin или как заключить сделку с совестью

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

Всем привет, меня зовут Иван, я Android-разработчик и сегодня мы с вами поговорим об контрактах. Я попробую рассказать и показать примеры для работы с API

Читать далее

Что нового в IntelliJ IDEA 2025.1

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

Недавно вышла новая версия IntelliJ IDEA 2025.1, в которой появилось довольно много новых фич. Команда Amplicode подготовила обзор основных возможностей IDE.

Читать далее

KStorage — единый подход к key-value хранилищам на Kotlin Multiplatform

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

Типобезопасное Key-Value хранилище для Kotlin Multiplatform. Единый API без боли, бойлерплейта и потери рассудка

Прочитать и убрать бойлерплейт из проекта

Что вы знаете о Яве?

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

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

Читать далее

Как я ушёл с Kotlin (Spring Boot) на Go (Gin) и сделал AI-чат с WebSocket и GPT-4

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

Меня зовут Артём, я занимаюсь коммерческой разработкой с 2019 года. Последние несколько лет я активно использовал Spring Boot для создания backend-сервисов на Java и Kotlin.

Но в какой-то момент захотелось попробовать что-то новое. Не потому что Spring надоел, а просто чтобы выйти из зоны комфорта и узнать, как чувствует себя проект на другом языке. Я решил: возьму уже начатый pet-проект, перепишу его на Go — и посмотрю, как изменится подход, скорость разработки, ощущения.

Читать далее