Akka RxJava Reactive ScalaJS Akka streams

Jan Ypma: Reactive User Interfaces

Udgivet d. 23. februar 2018 af Jan Ypma

Oplægget er optaget på Faglig Fredag hos Lund&Bendsen A/S, den 23/02-2018

Fornyeligt er vi udviklere ved at lære, hvordan vi kan bruge reactive principer for at få mere skalerbare of smidige løsninger. Med frameworks som Akka Streams eller RxJava programmerer man på en mere funktionel måde, som øger også testbarhed af parallel kode.

Men hvad med front-enden? Det viser sig at også user interfaces kan laves reactive, med stort set de samme fordeler som back-enden. Jeg har dog lært, at det er godt ar have en type-checker, når man bruger nogle lambdas for at gå fra Stream<T>, mellem Stream<List<U>>, via Stream<Map<K,U>> tilbage til en Stream<T> igen. Løsningen blevet fundet i ScalaJS, som gør det muligt at bruge et veletableret, typesikkert sprog, og køre det i webbrowseren (uden at ende som GWT…).

Hos Tradeshift er vi i gang med at udvikle en real-time UI for højsemantiske dokumenter (f.eks. faktura, ordre), hvor flere samtidigt kan sammenarbejde på det samme dokument. Vores prototype-arkitektur bruger ScalaJS med Outwatch frameworket.