Рубрика «java» - 106

Привет! Представляю вам перевод статьи автора Paulo Sato на тему использования Kotlin Coroutines вместо RxJava в своих Android проектах.

RxJava как базука, большинство приложений не использует и половины её огневой мощи. В статье пойдет речь о том, как заменить её корутинами (сопрограммами) Kotlin.

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

Большинство использует RxJava только для того, чтобы контролировать потоки и для предотвращения callback hell (если вы не знаете, что это такое, считайте себя счастливчиком и вот почему). Дело в том, что мы должны иметь ввиду, что реальная мощь RxJava — это реактивное программирование и backpressure. Если вы используете её для контроля асинхронных запросов, вы используете базуку, чтобы убить паука. Она будет делать свою работу, но это перебор.

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

Но… что такое корутины?

Корутин — это способ обработки конкурентных задач в потоке. Поток будет работать пока не остановлен и контекст будет меняться для каждого корутина без создания нового потока.
Корутины в Kotlin всё еще являются эксперементальными, но они вошли в Kotlin 1.3, так что я написал ниже новый класс UseCase (для clean architecture), использующий их. В этом примере, вызов корутин инкапсулирован в одном файле. Таким образом, другие слои не будут зависеть от выполняемых сопрограмм, обеспечивая более разъединенную архитектуру.
Читать полностью »

Если хочешь в чем-то разобраться — учись сразу у лучших. Сегодня на мои вопросы отвечает бог корутин и concurrency, Рома elizarov Елизаров. Мы поговорили не только о Kotlin, как вы могли бы подумать, но ещё и о куче смежных тем:

  • Golang и горутины;
  • JavaScript и его применимость для серьезных проектов;
  • Java и Project Loom;
  • олимпиадное программирование на Kotlin;
  • как правильно обучаться программированию;
  • и другие волнующие вещи.

«Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin - 1
Читать полностью »

Ad Exchange в рамках Real-Time Bidding (RTB) — одно из AdTech-решений, видоизменяющих рынок онлайн-рекламы. Его основная функция — стыковка большого количества SSP и DSP, которые не имеют прямой интеграции между собой, а также перепродажа разнообразного рекламного трафика между ними.

Благодаря заказу для рынка США мы с головой погрузились в специфику построения платформы Ad Exchange. И в этой статье представляем некоторые идеи и результаты.

image
Читать полностью »

Всем привет!

Делимся с вами очередным открытым уроком, который прошёл у нас в рамках курса «Разработчик Java». На нём преподаватель курса, Владимир Сонькин, рассказывал про асинхронное программирование почему оно позволяет делать код быстрым и эффективным, не используя сложные технологии распараллеливания. Также показывал примеры применения асинхронности для построения процессов обработки данных в бизнес-приложениях.

Курс «Разработка на Java» от Mail.Ru Group на канале Технострим - 1

Этой весной мы выложили на канале Технострим запись курса по Java. Уже несколько семестров подряд он читается в рамках образовательного проекта Техносфера, реализуемого компанией Mail.Ru Group совместно с МГУ им. М. В. Ломоносова. Курс включает все темы, необходимые начинающему разработчику в мире Java. Авторы не углубляются в детали синтаксиса, а сразу берутся за практические задачи: разработку игры с консольным интерфейсом и функционального чата. В конце курса разбираются частые вопросы из собеседований на позиции junior и middle Java-developer.

Записи лекций и материалы курса бесплатны и доступны всем желающим.

Большинство домашних заданий можно выполнить и проверить в репозитории курса.
Читать полностью »

Красивый и привлекательный UI — это важно. Поэтому для Android существует огромное количество библиотек для красивого отображения элементов дизайна. Часто в приложении требуется показать поле с числом или какой-либо счетчик. Например, счетчик количества выделенных элементов списка или сумму расходов за месяц. Конечно, такая задача легко решается с помощью обычного TextView, но можно ее решить элегантно и еще анимацию изменения числа добавить:

demo

На YouTube доступно Demo-видео.

В статье пойдет рассказ о том, как все это реализовать.

Читать полностью »

image

Часто приложения развиваются посредством множества небольших улучшений, но наступает момент, когда множество частностей выстраивается в цельную картину, реализация которой требует качественных и масштабных изменений. И здесь только одной хорошей идеи недостаточно. Не менее важны организационная и техническая составляющие вопроса. Как подготовиться и осуществить архитектурные изменения в работающей системе? Мы хотим поговорить о глобальном рефакторинге, повышении производительности систем, оптимизации кода, подходах работы с базами данных и многих других вещах.
Читать полностью »

в 4:27, , рубрики: freemarker, html, java

Apache FreeMarker — это механизм шаблонов: библиотека Java для генерации текстового вывода (HTML-страницы, xml, файлы конфигурации, исходный код и.т.д. На вход подается шаблон, например html в котором есть специальные выражения, подготавливаются данные соответствующие этим выражением, а Freemarker динамически вставляет эти данные и получается динамически заполненный документ.
image
Читать полностью »

В данной статье я собрал полезные советы по использованию REST-assured, одной из самых распространенных Java-библиотек для автоматизации тестирования REST-API.
Все примеры жизненные, они собраны из моей практики проведения code-review в более чем 50 проектах с автотестами.
Читать полностью »

Мысль перевести фронт на какой-либо js фреймворк появилась одновременно с возможностью писать React на Kotlin. И я решил попробовать. Основная проблема: мало материалов и примеров (постараюсь эту ситуацию поправить). Зато у меня полноценная типизация, безбоязненный рефакторинг, все возможности Kotlin, а главное, общий код для бека на JVM и фронта на Javascript.

В этой статье будем писать страницу на Javasript + React параллельно с её аналогом на Kotlin + React. Чтобы сравнение было честным, я добавил в Javasript типизацию.

Kotlin + React vs Javasript + React - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js