Slide 1

Slide 1 text

http4scats-effect      ٩(๑^o^๑)۶

Slide 2

Slide 2 text

2 Hello!  ! !# Scala"  % (&)    ' $    ZOZO Tech  

Slide 3

Slide 3 text

 ●   ● cats effect    ● http4s   ● Tagless final   +..+♪ (●’∀’●)♪+..+ 3

Slide 4

Slide 4 text

    ●  ● dysangelist/scala_kansai_demo @github +..+♪(●’∀’●)♪+..+ 4

Slide 5

Slide 5 text

 1

Slide 6

Slide 6 text

Scala(/0#+  ● #+-7Java2.6,3" 8 ● '$% 7 14 8 ● 57&)*)!!8 ●   6

Slide 7

Slide 7 text

  ●    ●   ●   7

Slide 8

Slide 8 text

 01(* .)-4 ● *. #'+  ● %-!*./  ● &$,"3 2 8

Slide 9

Slide 9 text

Cats Effect 2

Slide 10

Slide 10 text

 Cats Effect ● 7 23Cats8.IO)%$: 1"' *!5/*&*+- ● 9ZIOHaskellIOMonix Task6 ● Type Level04(,#  10

Slide 11

Slide 11 text

! Future- ● Future#(Future **) ● &$ Futureside-effectful ● %()" ! ! ! ● + left identity ' , 11

Slide 12

Slide 12 text

http4s 3

Slide 13

Slide 13 text

http4s ● Fs2IO    http   (Framework  ● Service As KleisliServer As Stream 13

Slide 14

Slide 14 text

+< ● Play! $' !API-)#)%!!! ● Finagle – Twitter Future/1 ● Finch - ↑ :58Effect23  .*4 9; ● AkkaHTTP ← Spray,6. 7  ● Colossus ???? &(" < ● Chaos ??? 0< 14

Slide 15

Slide 15 text

Tagless final 4

Slide 16

Slide 16 text

Tagless Final ● $'%End Of The World  ● "   (Eff, Free ● ↑ !&#  16

Slide 17

Slide 17 text

 ● Principle of Least Power ●   ●     17

Slide 18

Slide 18 text

Application  5

Slide 19

Slide 19 text

-26*7 ● % $!& "'#5 345(+ 2  ● ),persistence.in memoryHashMap )0   8DB91/ '#  : https://github.com/dysangelist/scala_kansai_demo 19

Slide 20

Slide 20 text

  20 ●     

Slide 21

Slide 21 text

Algebra① 21 ●   %#)! '  ● Type "$&(

Slide 22

Slide 22 text

Algebra② 22

Slide 23

Slide 23 text

Algebra③ 23 ● *(Algebra'"$ &% #!+  ● - .Aggregate-DDD,  ) .

Slide 24

Slide 24 text

Algebra④ 24

Slide 25

Slide 25 text

Logic① 25 ● Logic, Algebra    

Slide 26

Slide 26 text

Logic② 26

Slide 27

Slide 27 text

 27

Slide 28

Slide 28 text

 ② 28 ● Service/Router Logic    

Slide 29

Slide 29 text

③ 29

Slide 30

Slide 30 text

 ④ 30 ●  !!

Slide 31

Slide 31 text

 31

Slide 32

Slide 32 text

Representation 32 ● Algebra    

Slide 33

Slide 33 text

Representation② 33 ●  InMemory      

Slide 34

Slide 34 text

Representation③ 34 ●  InMemory      

Slide 35

Slide 35 text

● HttpService[F]Kleisli[OptionT[F, ?], Request[F], Response[F]] alias ●  IntelliJcombineK    Service? 35

Slide 36

Slide 36 text

 36

Slide 37

Slide 37 text

4 37 ● FW%#%&(), 1.Separation of Concerns  ● "!'$  03/ ● http4sOpinionated 2*  ● +-

Slide 38

Slide 38 text

38 ~fin~ Any questions?