Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Libraryを作ると云ふ開発手法
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
さっちゃん
April 27, 2018
Programming
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Libraryを作ると云ふ開発手法
さっちゃん
April 27, 2018
Transcript
39 slides
Libraryを作ると 云ふ開発手法
.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)
Libraryを作ると 云ふ開発手法
Libraryを使ふ
Libraryを使ふ Libararyを使はうとする時 =
Libraryを使ふ Libararyを使はうとする時 = この問題が、既知の問題ではないか? と感じた時 =
Libraryを使ふ Libararyを使はうとする時 = この問題が、既知の問題ではないか? と感じた時 = 「同じ問題」を感じた時
Libraryを使ふ Libararyを使はうとする時 = この問題が、既知の問題ではないか? と感じた時 = 「同じ問題」を感じた時 同じ問題 = 現状から切り離して反復する問題 =
他の状況でも起き得る問題
Libraryを選ぶ . . . .
Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ
.
Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ
. Interfaceの自然さ
Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ
. Interfaceの自然さ 自然 =
Libraryを選ぶ . Documentの丁寧さ . Source codeのよさ . Support & Communityの盛んさと近さ
. Interfaceの自然さ 自然 = 「同じ問題」を感じるか
Libraryを使ふ Libraryが在った → ありがたう
Libraryを使ふ Libraryが在った → ありがたう Libraryが無かった → 独自実装
Libraryを使ふ Libraryが在った → ありがたう Libraryが無かった → 独自実装 Libraryが在ったが、ちと違ふ → .
. .
Libraryを使ふ Libraryが在った → ありがたう Libraryが無かった → 独自実装 Libraryが在ったが、ちと違ふ → .
Monkey patch . Fork . Libraryを直す (Pull Request)
Libraryを… Libraryが無かった → 独自実装
Libraryを… Libraryが無かった → 独自実装
Libraryを作る Libraryが無かった → 独自実装 Libraryを作る
Libraryを作る
Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。
Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。 しかし分離できる時がある = . .
Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。 しかし分離できる時がある = . 抽象化した対象 → を分離する .
Libraryを作る ServiceにはService固有の課題と、Service固有ではない課題が混ざってゐる。混ざって ゐるので分離は難しい。 しかし分離できる時がある = . 抽象化した対象 → を分離する .
抽象化の仕方 → を分離する
Libraryを作る 独自実装 →<?>→ Libraryを作る
Libraryを作る 独自実装 →<?>→ Libraryを作る <?> =
Libraryを作る 独自実装 →<?>→ Libraryを作る <?> = 分離が成され、一般性を得た時 =
Libraryを作る 独自実装 →<?>→ Libraryを作る <?> = 分離が成され、一般性を得た時 = 「同じ問題」を分離できた時
Libraryを作る 独自実装 →<?>→ Libraryを作る <?> = 分離が成され、一般性を得た時 = 「同じ問題」を分離できた時 同じ問題
= 現状から切り離して反復する問題 = 他の状況でも起き得る問題
Libraryを作る 「同じ問題」を分離する ←
Libraryを作る 「同じ問題」を分離する ← SOA的な考へ方をする 「同じ問題」を述べる = 概念、責務を述べる
Libraryを作る 「同じ問題」を分離する → . .
Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる .
Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる . 責務に固有の問題が混ざらない
= maintainableになる
Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる . 責務に固有の問題が混ざらない
= maintainableになる 複雑な問題を関心を中心に外のLibraryに分離する =
Libraryを作る 「同じ問題」を分離する → . 分離されたものはtestableになる ← 抽象化は複雑になり易い。責務をはっきり述べる 事で、仕様がわかり、何をtestするべきか述べ易くなる . 責務に固有の問題が混ざらない
= maintainableになる 複雑な問題を関心を中心に外のLibraryに分離する = micro serviceと同じ手法
Libraryを作ると → . 負債を溜めづらい (負債が小分けになる) . Systemを安定させ易い . 開発にrailを敷ける
Libraryを作ると → . 負債を溜めづらい (負債が小分けになる) . Systemを安定させ易い . 開発にrailを敷ける (〃l
_ l)b
More Decks by さっちゃん
See All by さっちゃん
敎へない敎師と、考へる機械
ne_sachirou
0
36
火星曆
ne_sachirou
0
69
みんなのオブザーバビリティプラットフォームを作ってるんだがパフォーマンスがやばい #mackerelio #srenext
ne_sachirou
0
1.8k
作ってよかったgraceful shutdownライブラリ #kyotogo
ne_sachirou
0
1.5k
path 依存型って何?
ne_sachirou
0
900
野生の onbording と onbording 設計 #kyototechtalk
ne_sachirou
0
790
メトリックはいかにして見え續ける樣になったか #devio2022
ne_sachirou
0
170
名實一致
ne_sachirou
0
810
まかれるあなとみあ ―Mackerel のしくみを理解する 30 分― @ Hatena Engineer Seminar #16
ne_sachirou
0
3.4k
Other Decks in Programming
See All in Programming
Crash Auto Pipelines
veronikapj
1
410
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
370
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
0
170
オーケストレーション記述言語 Katari
yukikurage
0
250
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.9k
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
180
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
Spec-driven Development with AI
simas
PRO
0
2.3k
ビジネスロジックを堅牢に~Scala 3のドメインプリミティブ~
j5ik2o
0
130
GraphQL の onError と Nullability のこれから
quramy
0
210
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
170
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.3k
Bash Introduction
62gerente
615
220k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The SEO Collaboration Effect
kristinabergwall1
1
620
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Leo the Paperboy
mayatellez
11
2.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
ラッコキーワード サービス紹介資料
rakko
5
5.8M
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
Highjacked: Video Game Concept Design
rkendrick25
PRO
2
570
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
470