Встреча JUG.ru c Романом Елизаровым - Kotlin: Асинхронное программирование с корутинами (часть 2)

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2017
  • Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
    Подробности и билеты: jrg.su/Ypf1HW
    - -
    . . . . Первая часть: • Встреча JUG.ru c Роман...
    Kotlin революционизирует асинхронное программирование. В версии 1.1 в языке появились корутины - это свежий, отличный от других языков подход к проблеме написания асинхронного кода. Мы посмотрим на этот механизм как сверху (чем он отличается от традиционных подходов таких как callbacks, futures, и async/await), так и изнутри - как всё это устроено.
    Кроме того, код на Kotlin можно компилировать под JVM и запускать бок о бок с Java кодом. Несмотря на то, что в Java не предполагается ничего для работы с асинхронностью на уровне языка, а все решения сосередоточены в библиотеках и подразумевают превращение любой нетривиальной асинхронной бизнес-логики в месиво замыкаканий и вызовов различных комбинаторов, корутины Котлина можно интегрировать и с асинхронным кодом на Java, что мы увидим на примерах.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 4

  • @dgvgfg
    @dgvgfg 6 ปีที่แล้ว

    Такой шаблон очень просто позволяет нам с любым сторонним фьюче заинтегрироваться.
    То есть просто поэтому у нас в самой библиотеке есть какие то интеграции из коробки.
    Ну как из стандартной библиотеки… в коде у нас есть модули которые интегрируют интегрируют её с популярными фьючерсами, а с компьютерами с jdk8, c guava’ой с project reactor’ом 1 и 2 версии более популярными библиотеками интеграцию мы сделали, а вот. При этом библиотека Open source поэтому есть какая-то библиотека про которую мы забыли, а вы её очень любите, поэтому А) вы её можете сами написать интеграцию, поэтому здесь 10 строчек кода, эта ваша приватная библиотека, а если какая то sorce библиотека там учат чат вы её видите то можете подключать в эту библиотеку и другие люди смогут воспользоваться, да. Хоть и десять строчек кода, но удобно написали dependence и всё, и оно работает. К тому же, там, эта интеграция легко пишется к плюс интеграция с какой нибудь другой библиотекой guava поэтому получается библиотека получается с вашей любимой фьючей, которой вы пользуетесь в своей legacy коде, вот. А ещё у нас, собственно, кроме усройств рутины всё это интегрировать осталось рутиной контекст. Мы видели его, вот в прошлой части что я могу сказать что ланчу ай, а что такое coroutine и что он в «кортюэйшене» cortiation в параметрах рутиный контекст.
    Крутиный контекст это такая штука которая позволяет нам в первую очередь, но не в последнию очередь контролировать на какой среде краутина посыпается потому что вот ка мы сделали пост например после этого у нас идёт локальный процессинг, я об этом уже говорил. И этот локальный процесс где будет вызван? А не понятно где потому что это будет зависить от того где call back будет вызван где-то там внутри. Потому что что у нас с салли происходит. Мы вот там где то внутри мы на самом деле ретрофитно делали вызов и сделали вейт на этом вызове, а ретрофит он свой call back вызвал на каком то потоке, который одному ретрофиту известен, что за потом который вызывает call back.
    Хахах.

  • @YanaBybina
    @YanaBybina 6 ปีที่แล้ว

    про "кишочки" всего этого дела?

    • @dgvgfg
      @dgvgfg 6 ปีที่แล้ว +1

      поток сознания.

    • @VladimirChaplits
      @VladimirChaplits 5 ปีที่แล้ว

      да, поток сознания у вас знатный получился.