Slide 1

Slide 1 text

Libraryを作ると 云ふ開発手法

Slide 2

Slide 2 text

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

Slide 3

Slide 3 text

Libraryを作ると 云ふ開発手法

Slide 4

Slide 4 text

Libraryを使ふ

Slide 5

Slide 5 text

Libraryを使ふ Libararyを使はうとする時 =

Slide 6

Slide 6 text

Libraryを使ふ Libararyを使はうとする時 = この問題が、既知の問題ではないか? と感じた時 =

Slide 7

Slide 7 text

Libraryを使ふ Libararyを使はうとする時 = この問題が、既知の問題ではないか? と感じた時 = 「同じ問題」を感じた時

Slide 8

Slide 8 text

Libraryを使ふ Libararyを使はうとする時 = この問題が、既知の問題ではないか? と感じた時 = 「同じ問題」を感じた時 同じ問題 = 現状から切り離して反復する問題 = 他の状況でも起き得る問題

Slide 9

Slide 9 text

Libraryを選ぶ . . . .

Slide 10

Slide 10 text

Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ .

Slide 11

Slide 11 text

Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ . Interfaceの自然さ

Slide 12

Slide 12 text

Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ . Interfaceの自然さ 自然 =

Slide 13

Slide 13 text

Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ . Interfaceの自然さ 自然 = 「同じ問題」を感じるか

Slide 14

Slide 14 text

Libraryを使ふ Libraryが在った → ありがたう

Slide 15

Slide 15 text

Libraryを使ふ Libraryが在った → ありがたう Libraryが無かった → 独自実装

Slide 16

Slide 16 text

Libraryを使ふ Libraryが在った → ありがたう Libraryが無かった → 独自実装 Libraryが在ったが、ちと違ふ → . . .

Slide 17

Slide 17 text

Libraryを使ふ Libraryが在った → ありがたう Libraryが無かった → 独自実装 Libraryが在ったが、ちと違ふ → . Monkey patch . Fork . Libraryを直す (Pull Request)

Slide 18

Slide 18 text

Libraryを… Libraryが無かった → 独自実装

Slide 19

Slide 19 text

Libraryを… Libraryが無かった → 独自実装

Slide 20

Slide 20 text

Libraryを作る Libraryが無かった → 独自実装 Libraryを作る

Slide 21

Slide 21 text

Libraryを作る

Slide 22

Slide 22 text

Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。

Slide 23

Slide 23 text

Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。 しかし分離できる時がある = . .

Slide 24

Slide 24 text

Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。 しかし分離できる時がある = . 抽象化した対象 → を分離する .

Slide 25

Slide 25 text

Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。 しかし分離できる時がある = . 抽象化した対象 → を分離する . 抽象化の仕方 → を分離する

Slide 26

Slide 26 text

Libraryを作る 独自実装 →>→ Libraryを作る

Slide 27

Slide 27 text

Libraryを作る 独自実装 →>→ Libraryを作る > =

Slide 28

Slide 28 text

Libraryを作る 独自実装 →>→ Libraryを作る > = 分離が成され、一般性を得た時 =

Slide 29

Slide 29 text

Libraryを作る 独自実装 →>→ Libraryを作る > = 分離が成され、一般性を得た時 = 「同じ問題」を分離できた時

Slide 30

Slide 30 text

Libraryを作る 独自実装 →>→ Libraryを作る > = 分離が成され、一般性を得た時 = 「同じ問題」を分離できた時 同じ問題 = 現状から切り離して反復する問題 = 他の状況でも起き得る問題

Slide 31

Slide 31 text

Libraryを作る 「同じ問題」を分離する ←

Slide 32

Slide 32 text

Libraryを作る 「同じ問題」を分離する ← SOA的な考へ方をする 「同じ問題」を述べる = 概念、責務を述べる

Slide 33

Slide 33 text

Libraryを作る 「同じ問題」を分離する → . .

Slide 34

Slide 34 text

Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる .

Slide 35

Slide 35 text

Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる . 責務に固有の問題が混ざらない = maintainableになる

Slide 36

Slide 36 text

Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる . 責務に固有の問題が混ざらない = maintainableになる 複雑な問題を関心を中心に外のLibraryに分離する =

Slide 37

Slide 37 text

Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる . 責務に固有の問題が混ざらない = maintainableになる 複雑な問題を関心を中心に外のLibraryに分離する = micro serviceと同じ手法

Slide 38

Slide 38 text

Libraryを作ると → . 負債を溜めづらい (負債が小分けになる) . Systemを安定させ易い . 開発にrailを敷ける

Slide 39

Slide 39 text

Libraryを作ると → . 負債を溜めづらい (負債が小分けになる) . Systemを安定させ易い . 開発にrailを敷ける (〃l _ l)b