Как стать автором
Обновить
27.44
Рейтинг

Kotlin *

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

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

Настраиваем память JVM-приложения в Kubernetes

Блог компании Домклик Программирование *Java *Kotlin *Kubernetes *

Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на  использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.

 

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 742
Комментарии 0

Новости

Неочевидное про Fragment API. Часть 3. Навигация

Блог компании TINKOFF Разработка мобильных приложений *Разработка под Android *Kotlin *

Всем привет! На связи Максим Бредихин, Android-разработчик в Тинькофф. А это — третья статья об интересных моментах из Fragment API, о которых вы, возможно, не знали.

Наливайте чай, садитесь поудобнее и приятного чтения!

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 228
Комментарии 0

Kotlin. Автоматизация тестирования (Часть 3). Расширения Kotest и Spring Test

Блог компании Мир Plat.Form (НСПК) Тестирование веб-сервисов *Kotlin *
Tutorial

Kotest


Продолжаем автоматизировать функциональные тесты на Kotlin и знакомиться с возможностями фреймворка Kotest


Расскажу про расширения Kotest:


  • Что это такое
  • Как расширения помогают писать тесты
  • Реализацию запуска расширений в Kotest
  • Некоторые встроенные расширения
  • Про расширение для Spring
  • Углублюсь в интеграцию Kotest и Spring Boot Test
  • Сравню с Junit5
  • И на закуску добавлю отчеты Allure

⚠️Будет много кода, внутренностей и примеров.

Все части руководства:


Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 321
Комментарии 0

Классы значения в Kotlin: прощайте псевдонимы типов?

Программирование *Совершенный код *Проектирование и рефакторинг *ООП *Kotlin *
Перевод

С выходом Kotlin 1.5.0, классы значения (известные ранее как inline классы) наконец-таки стабильны и были освобождены от необходимости в аннотации @OptIn. Было много нового в релизе, что также создало много путаницы, так как теперь нам доступны три очень похожих инструмента: typealias, классы данных (data class) и классы значения (value class). Так какой же нам использовать теперь? Можно ли выбросить сразу псевдонимы типов и классы данных и заменить их на классы значения?

Ответы в статье
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.8K
Комментарии 8

Безопасный Spring REST с применением Spring Security и OAuth2

Блог компании Southbridge Java *API *Kotlin *
Перевод

В этой статье мы продемонстрируем пример настройки Spring Security + OAuth2  для защиты конечных точек REST API на фреймворке Spring Boot. Клиенты и учетные данные пользователей будут храниться в реляционной базе данных (для баз данных H2 и PostgreSQL подготовлены примеры конфигураций).

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2K
Комментарии 4

Неочевидное про Fragment API. Часть 2. (Не) создаем инстанс

Блог компании TINKOFF Разработка мобильных приложений *Разработка под Android *Kotlin *

Всем привет! Меня зовут Максим Бредихин, я Android-разработчик в Тинькофф. А это — вторая статья серии об интересных моментах из Fragment API, о которых вы, возможно, не знали.

Готовьте вкусности, сегодня я расскажу, как (не) создавать новые инстансы фрагментов.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 1.7K
Комментарии 1

Telegram Bot на Kotlin: Дратути

Kotlin *
Tutorial

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

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 3.5K
Комментарии 5

Почему вам следует полностью переходить на Kotlin

Блог компании OTUS Программирование *Kotlin *
Перевод

Пришло время начать использовать современный язык программирования

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

Читать далее
Всего голосов 58: ↑35 и ↓23 +12
Просмотры 22K
Комментарии 59

Почему исключения в Kotlin Coroutines это сложно и как с этим жить?

Разработка мобильных приложений *Разработка под Android *Kotlin *
Перевод

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

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 3.3K
Комментарии 6

Как подружить Svelte и Spring Boot

Java *Kotlin *SvelteJS *
Из песочницы

Эта статья рассчитана на Spring Boot разработчиков, желающих пощупать мир современного фронтенда. Я потратил некоторое количество времени на поиск наиболее приличного фреймворка и мой выбор пал на Svelte. Почему именно он, а не React или Vue? Лучше всего на этот вопрос ответит главная страница фреймворка, а я выделю главные его особенности.

Читать далее
Всего голосов 9: ↑5 и ↓4 +1
Просмотры 3.1K
Комментарии 8

Готовим Window Inset под соусом Jetpack Compose и щепоткой View

Блог компании KTS Разработка мобильных приложений *Разработка под Android *Kotlin *Дизайн мобильных приложений *

Обожаю запах свежей мобильной разработки по утрам, дням и вечерам 🍕📱

Вот только почему, почему ещё не все используют режим edge2edge? Разве для того я покупал огромный безрамочный телефон, чтобы смотреть на траурные черные полоски с кнопками?!

К сожалению, сейчас все еще встречаются Android-приложения, которые не поддерживают edge-to-edge. Складывается ощущение, что разработчики либо не знают об insets, либо просто не умеют их готовить. На самом деле реализовать edge-to-edge не сложно, а благодаря этой статье вы сможете разобраться с insets в разы быстрее.

Сегодня я надену специальный мобильный фартук и расскажу, что такое режим edge-to-edge в мобильных приложениях и как работать с insets в Android. А ещё мы разберём примеры обработки insets не только во view, но и в compose. Если статьи о работе с insets в view еще можно найти на просторах интернета, то информацию про работу с ними в compose можно найти только в официальной документации.

Все примеры из статьи можно посмотреть в этом репозитории.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 2.3K
Комментарии 0

Неочевидное про Fragment API. Часть 1. Транзакции

Блог компании TINKOFF Разработка мобильных приложений *Разработка под Android *Kotlin *

Всем привет! Меня зовут Максим Бредихин, я Android-разработчик в Тинькофф. В этой серии статей я расскажу об интересных моментах из Fragment API, о которых вы могли не знать. Материал будет полезен как начинающим разработчикам, так и закаленным в боях с багами девелоперам.

Усаживайтесь поудобнее, мы начинаем!

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 3.5K
Комментарии 3

Документация в Kotlin-коде и CI/CD

Блог компании OTUS Kotlin *Подготовка технической документации *

Всем, кто создавал библиотеки или сервисы с публичным API хорошо знакома боль, когда документация отстает от изменений в коде и рутинный процесс обновления документации на сайте становится настолько неинтересным, что про него просто забывают. Можно ли как-то автоматизировать генерацию технической документации (а в идеале еще и создание руководства пользователя с возможностью навигации и красивыми картинками)? В этой статье мы обсудим возможности Dokka (Kotlin-инструмента для создания документации) и подходы к генерации артефактов документации с использованием плагинов Gradle.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 2.3K
Комментарии 0

Spring Boot @ConfigurationProperties и коллекции

Java *Kotlin *
Из песочницы

Дано:

Сервис на spring boot(2.6.4) + kotlin(1.5.31) по выгрузке произвольного количества отчётов по крону. Каждый отчет имеет свои настройки. Для конфигурирования списка свойств отчётов используется собственно список. Для инжекта в приложение используется data class с аннотацией @ConfigurationProperties, где одно из свойств - список data class.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 2.9K
Комментарии 2

Опыт перехода на MVI в Android на базе собственного решения

Блог компании Юла Программирование *Разработка мобильных приложений *Разработка под Android *Kotlin *

В команде Android мы активно применяем MVI для проектирования взаимодействия состояния экрана и бизнес-логики. В этой статье мы хотим рассказать о собственной MVI-библиотеке – Reduktor и об опыте внедрения и использования. Статья будет полезна всем, кто хочет познакомиться с Redux-like MVI.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 2.1K
Комментарии 0

rate limiter (sliding window)

Java *Алгоритмы *Kotlin *Микросервисы *

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

1) хранить историю во внешнем источнике данных, как redis. Для вычисления возможности отправить запрос, нужно каждый раз ходить в этот источник данных, что может быть непозволительно в некоторых сферах (так как существенно увеличивается время обработки запроса)

2) не париться с limiter и анализировать ответ от внешнего источника данных и на основе его ответов, принимать решение когда и сколько запросов можно отправить (но такие ответы есть не у каждого сервиса и существует вероятность, что будут отправлены лишние запросы, что может привести к бану)

3) хранить историю запросов локально, но использовать алгоритм leaked bucket, но это не позволяет накидать несколько запросов и ждать

4) хранить историю запросов локально, но использовать алгоритм sliding window, можно накидать запросов и ждать какое-то известное время

О реализации sliding window для java пойдет речь в этой статье.

Читать далее
Всего голосов 20: ↑4 и ↓16 -12
Просмотры 2.9K
Комментарии 18

Легкая автоматизация кроссплатформенных тестов с Kotlin DSL

Блог компании Мир Plat.Form (НСПК) Тестирование мобильных приложений *Kotlin *

Привет!

Я - Урманчеев Станислав, QA Automation Engineer на проекте «Лояльность» в Mир Plat.Form (НСПК). Хочу поделиться с читателями Хабра нашим опытом в создании и развитии фреймворка для автоматизации тестов на Appium.

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

Дисклеймер: о Kotlin dsl есть подробная статья на Хабре и документация на Kotlinlang.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1K
Комментарии 7

Danger. Автоматизируем ревью на CI и пишем свой плагин

Блог компании Lamoda Программирование *Разработка мобильных приложений *Разработка под Android *Kotlin *
Tutorial

Привет, я Татьяна Родионова, Android-разработчица в Lamoda. Как-то раз передо мной появилась задача упростить ревью пул-реквестов с помощью Danger. Я решила добавить автоматическую проверку код стайла, используя ktlint. Но оказалось, что Danger не поддерживает такое решение, поэтому я добавила такую проверку сама :) 

Моя статья поможет разобраться в том, как настроить Danger и как заставить его выполнять задачи немного сложнее тех, которые есть в официальном туториале.

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 1.6K
Комментарии 4

Парсим строки с SMT-решателем

Программирование *Алгоритмы *Математика *Kotlin *

Этот пост о том, как можно решить задачу разбора строки по контектстно-свободной грамматике с помощью SMT-решателя. Здесь будет введение в тему, описание принципов работы и ссылка на github с работающей программой.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 2K
Комментарии 9

PerfOps — быстрее и дешевле через сервисный подход

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Тестирование IT-систем *Тестирование веб-сервисов *Kotlin *

В самом начале у нас в Самокате была задача — внедрить практику нагрузочного тестирования на каждый релиз, чтобы минимизировать проблемы с производительностью на проде. А еще сделать это не потратив все деньги мира, ну и желательно внедрить это не за пятилетку. И вот где-то тут начинается немного магии Поэтому давайте оденем поварские колпаки, возьмем котел и попробуем приготовить PerfOps-инженера который должен нас спасти.

Меня зовут Кирилл Юрков, я SRE-тимлид Samokat.tech. Сегодня поговорим про нагрузочное тестирование. Про то, как мы решали обозначенную проблему, какие грабли нам попались, и какие трудности удалось преодолеть.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2.6K
Комментарии 9

Вклад авторов