Slide 1

Slide 1 text

Tomoki Ota ʲGoݴޠʳΦϓγϣϯઃఆͷϕετϓϥΫςΟε

Slide 2

Slide 2 text

HTTPαʔόͷ࡞੒ 2

Slide 3

Slide 3 text

HTTPαʔόͷ࡞੒ 3

Slide 4

Slide 4 text

GinͷNew() 4

Slide 5

Slide 5 text

ᶃγϯϓϧͳΦϓγϣϯઃఆ ᶄCon f igߏ଄ମ ᶅBuilderύλʔϯ ᶆؔ਺Φϓγϣϯύλʔϯ ᶇDysfunctional Options Pattern ᶈ݁࿦ ΞδΣϯμ

Slide 6

Slide 6 text

γϯϓϧͳΦϓγϣϯઃఆํ๏

Slide 7

Slide 7 text

7 γϯϓϧͳઃఆํ๏

Slide 8

Slide 8 text

γϯϓϧͳઃఆํ๏ debugͷઃఆΛ௥Ճ͢Δ

Slide 9

Slide 9 text

HTTPαʔόͷ࡞੒ 9 ΫϥΠΞϯτଆͰҾ਺͕଍Γͳͯ͘յΕΔ

Slide 10

Slide 10 text

γϯϓϧͳઃఆํ๏

Slide 11

Slide 11 text

Con f igߏ଄ମ

Slide 12

Slide 12 text

Con f igߏ଄ମ

Slide 13

Slide 13 text

Con f igߏ଄ମ 13

Slide 14

Slide 14 text

Con f igߏ଄ମ 14

Slide 15

Slide 15 text

Con f igߏ଄ମ 15

Slide 16

Slide 16 text

ࢦఆ͠ͳ͔ͬͨύϥϝʔλʹ͸θϩ஋͕ೖΔ(ҙ ਤతʹ0Λ୅ೖͨ͠ͷ͔ɺະೖྗͳͷ͔ͷҧ͍͕ ෼͔Βͳ͍) Con f igߏ଄ମͷσϝϦοτ

Slide 17

Slide 17 text

ࢦఆ͠ͳ͔ͬͨύϥϝʔλʹ͸θϩ஋͕ೖΔ(ҙ ਤతʹ0Λ୅ೖͨ͠ͷ͔ɺະೖྗͳͷ͔ͷҧ͍͕ ෼͔Βͳ͍) Con f igߏ଄ମͷσϝϦοτ ϙΠϯλΛ࢖͏

Slide 18

Slide 18 text

Con f igߏ଄ମͷσϝϦοτ ϙΠϯλΛ࢖͏

Slide 19

Slide 19 text

Con f igߏ଄ମͷσϝϦοτ σϑΥϧτ஋Λ࢖͏৔߹͸ۭΛ౉͢ඞཁ͕͋Δ

Slide 20

Slide 20 text

Builderύλʔϯ

Slide 21

Slide 21 text

Builderύλʔϯͱ͸ʁ GoFͷσβΠϯύλʔϯͷ̍ͭ ॊೈੑͷߴ͍ղܾࡦΛఏڙ͠ɺՄಡੑΛߴΊΔ

Slide 22

Slide 22 text

Builderύλʔϯ 22

Slide 23

Slide 23 text

Builderύλʔϯ 23

Slide 24

Slide 24 text

Builderύλʔϯ 24

Slide 25

Slide 25 text

Builderύλʔϯ GOʹ͸Javaͷ@BuilderΑ͏ͳຐ๏͸ͳ͍ GoFͷσβΠϯύλʔϯͷ̍ͭͰ͋ΔBuilderύλʔϯ Λ༻͍Δ͜ͱͰɺॊೈੑͷߴ͍ղܾࡦΛఏڙ͞ΕΔɻ Builderύλʔϯͷॻ͖ํ΋ෳ਺͋Δɻ

Slide 26

Slide 26 text

Builderύλʔϯ 26

Slide 27

Slide 27 text

Builderύλʔϯ

Slide 28

Slide 28 text

BuilderύλʔϯͷσϝϦοτ Con f igߏ଄ମಉ༷ɺσϑΥϧτͷઃఆΛ࢖༻͍ͨ͠৔߹͸ ۭͷߏ଄ମΛ౉͢ඞཁ͕͋Γɺݟӫ͕͑ѱ͍

Slide 29

Slide 29 text

ؔ਺Φϓγϣϯύλʔϯ

Slide 30

Slide 30 text

Functional Optional Pattern ؔ਺Φϓγϣϯύλʔϯ͸Մม਺ݸҾ਺ʹґଘ ͢Δ ؔ਺Φϓγϣϯύλʔϯͱ͸ʁ

Slide 31

Slide 31 text

ؔ਺Φϓγϣϯύλʔϯͱ͸ʁ

Slide 32

Slide 32 text

ؔ਺Φϓγϣϯύλʔϯͱ͸ʁ

Slide 33

Slide 33 text

ؔ਺Φϓγϣϯύλʔϯͱ͸ʁ σϑΥϧτ஋Λઃఆ͍ͨ͠৔߹͸ઃఆ͢Δඞཁ͕ͳ͍

Slide 34

Slide 34 text

Dysfunctional Options Pattern

Slide 35

Slide 35 text

ؔ਺Φϓγϣϯύλʔϯ͸தؒ૚͕ଟ͘ɺෳࡶͰ ͋Δͱ͍͏͜ͱΛ໰୊ࢹͨ͠ύλʔϯ Dysfunctional Options Patternͱ͸ʁ

Slide 36

Slide 36 text

Dysfunctional Options Pattern

Slide 37

Slide 37 text

BulderύλʔϯͷҰͭ Dysfunctional Options Patternͱ͸ʁ

Slide 38

Slide 38 text

Dysfunctional Options Patternͱ͸ʁ ނʹɺσϑΥϧτ஋Λ࢖༻͍ͨ͠৔߹͸ɺۭͷߏ଄ମΛ౉͢ඞཁ͕͋Γ·͢ɻ ނʹɺσϑΥϧτ஋Λ࢖༻͍ͨ͠৔߹͸ɺۭͷߏ଄ମΛ౉͞ͳ͚Ε͹ͳΒͳ͍

Slide 39

Slide 39 text

݁࿦

Slide 40

Slide 40 text

GoͰҰ൪׳༻తͰ޷·ΕΔ΋ͷ͸ɺؔ਺Φϓγϣϯύλʔϯ Builderύλʔϯ͸࣮૷͠΍͍͕͢ɺσϑΥϧτ஋Λઃఆ͢Δ ͱ͖ʹɺJavaͱҧͬͯบ͕͋Δ ݁࿦

Slide 41

Slide 41 text

GoͰҰ൪׳༻తͰ޷·ΕΔ΋ͷ͸ɺؔ਺Φϓγϣϯύλʔϯɻ Builderύλʔϯ͸࣮૷͠΍͍͚͢ͲɺJavaͱҧ͍ɺগ͠บ͕͋Γ· ͢ɻ ݁࿦