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 148 ● 57&)*)!!8 ● 6

Slide 7

Slide 7 text

● ● ● 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Cats Effect 2

Slide 10

Slide 10 text

Cats Effect ● 723Cats8.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?