Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Compile Time DIのススメ
Search
s10myk4
April 03, 2018
Programming
3
1.1k
Compile Time DIのススメ
s10myk4
April 03, 2018
Tweet
Share
More Decks by s10myk4
See All by s10myk4
新卒向けDDD(+ 要件定義/分析)研修資料
s10myk4
0
330
プロダクトオーナー向けユースケース駆動開発入門
s10myk4
0
370
ユースケース駆動開発入門 (理論・実践編)
s10myk4
10
4k
Scalaの線形化と抽象型メンバーの統一のジレンマ
s10myk4
3
1k
Other Decks in Programming
See All in Programming
CSC509 Lecture 13
javiergs
PRO
0
110
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
110
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Contemporary Test Cases
maaretp
0
140
CSC509 Lecture 11
javiergs
PRO
0
180
Outline View in SwiftUI
1024jp
1
330
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
120
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
ヤプリ新卒SREの オンボーディング
masaki12
0
130
Featured
See All Featured
Become a Pro
speakerdeck
PRO
25
5k
A designer walks into a library…
pauljervisheath
204
24k
Visualization
eitanlees
145
15k
Building Applications with DynamoDB
mza
90
6.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Six Lessons from altMBA
skipperchong
27
3.5k
Music & Morning Musume
bryan
46
6.2k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Navigating Team Friction
lara
183
14k
Facilitating Awesome Meetings
lara
50
6.1k
Transcript
$PNQJMFUJNF%*ͷεεϝ ࢢϲ୩(FFL˒/JHIU4DBMB.BUTVSJิܭը
ࣗݾհ w Լଜ๎೭ 4IJNPNVSB5PNPZVLJ w !TNZL w ηϓςʔχɾΦϦδφϧ w
ਓࣄؔ࿈ͷϓϩδΣΫτͰɺओʹΞʔΩςΫτͱ 10Λ݉
1MBZͷ%FGBVMU͔ͩΒ(VJDFͬͯͨਓʹબࢶͷͭ ʹͳͬͯΒ͑ͨΒ͍͍ ίϯηϓτ
ংষ 3VOUJNF%*ͱ.BOVBM%* .BD8JSFʹ͍ͭͯ %*ͷओཁͳέʔεͰͷ.BD8JSFͰͷྫ .BD8JSFͷσϝϦοτ
"QQMJDBUJPO-PBEFSͱ͍͏ଘࡏ ·ͱΊ ΞδΣϯμ
ͦͦڽͬͨ%*ख๏͕ॏཁͳͷͰͳ͘ɺ ίϯϙʔωϯτͷґଘؔͷཧͭͭ͠ɺґଘؔͷ ߏஙΛγϯϓϧʹ࣮ݱ͍ͨ͠ Ϟνϕʔγϣϯ
%*ʁ w ίϯϙʔωϯτؒͷؔΠϯλϑΣʔεΛ༻͍ͯ هड़͠ɺ۩ମతͳίϯϙʔωϯτΛࢦఆ͠ͳ͍ɻ ۩ମతʹͲͷίϯϙʔωϯτΛར༻͢Δ͔ผͷί ϯϙʔωϯτ֎෦ϑΝΠϧΛར༻͢Δ͜ͱͰɺ ίϯϙʔωϯτؒͷґଘؔΛബ͘͢Δ͜ͱ͕Ͱ͖ Δ 8JLJࢀর
1MBZ'8ͷ%*ࣄ w +43ʹج͍ͮͨ3VOUJNF%*ͱ$PNQJMFUJNF %*ͷ྆ํΛαϙʔτ w σϑΥϧτ(VJDF w جຊDPOTUSVDUPS*OKFDUJPO
%*ͷख๏ͷϝϦσϝ
3VOUJNF%*ͷར (VJDF w ϝϦοτ ϘΠϥʔϓϨʔτίʔυΛ͑Δ w σϝϦοτ DPNQJMF࣌ʹґଘؔͷߏஙΛݕূͰ͖ͳ͍ ΞϊςʔγϣϯIFMM طଘίʔυʹґଘ͕૿͑Δ
$PNQJMF5JNF%*ͷར w ϝϦοτ ܕ҆શ ίϯύΠϧ࣌ʹґଘ͕ؔຬͨ͞ΕΔ͜ͱΛݕূͰ͖Δ ϓϨʔϯͳ4DBMBͱίϯετϥΫλύϥϝʔλΛ͏͚ͩ ॊೈੑ͕ߴ͍ SVOUJNFͰͷSFqFDUJPO͕ඞཁͳ͍ͷͰɺ͔͔ᷮ͠Εͳ͍͕ى ಈ͕࣌ؒ͘ͳΔ
w σϝϦοτ ίʔυྔϘΠϥʔϓϨʔτ૿͑Δ ίϯύΠϧ͕࣌ؒ৳ͼΔ
$PNQJMF5JNF%*ͷީิ w 5IJO$BLF1BUUFSO ඪ४ͷݴޠػೳ͚ͩͰ࣮ݱͰ͖Δ͕ɺϚχϡΞϧͰґ ଘؔΛఆٛ͢Δͷਏ͍ɺϘΠϥʔϓϨʔτ͕૿͑Δ w 3FBEFS.POBE ఆٛͱ࣮ߦΛ͢Δ͜ͱͰ%*Λ࣮ݱ ґଘ͕ෳࡶʹͳΔͱѻ͍ʹ͍͘ w
BVUPXJSJOHCZNBDSPT .BD8JSF
"VUPXJSJOHʹΑΔ $PNQJMF5JNF%* w Լهͷ՝Λվળ w ϚχϡΞϧͰґଘؔΛఆٛ͢Δͷਏ͍ w ϘΠϥʔϓϨʔτ͕૿͑Δ
.BD8JSF
؆୯ͳྫ XJSFͯ͠Δͱ͜Ζ͕ϚΫϩͰԼهʹల։
͋Εɺɺ
ίϯύΠϧ࣌ʹґଘؔͷݕ ূͰ͖ͯɺɺ
ґଘؔΛϚΫϩ͕ղܾͯ͠ ͘Εͯɺɺ
.BD8JSF࠷ߴʘ ?Т? ʗ γϯϓϧʂγϡοͱͯ͠Δʂ
%*ͷओཁͳέʔεͰͷ NBDXJSFͷྫ Ұ෦(VJDFͰͷํ๏ͱൺֱ͠ͳ͕Βɺ%*Ͱͷओཁ ͳέʔεΛNBDXJSFͰͲΜͳײ͡Ͱ࣮ݱͰ͖Δ͔ ؆୯ͳྫΛڍ͛Δ
MB[ZWBMͰͷએݴ WBMͰఆٛ͢ΔͱΠϯελϯε͕ॳظԽ͞ΕΔલʹ ࢀর͠Α͏ͱ͢ΔͱOVMMʹͳΔ MB[ZWBMͰఆٛ͢ΔͱΦϯσϚϯυͰదͳॳظ ԽॱংΛࣗಈͰܭࢉ͞ΕΔ
͋Δܕʹରͯͭ͠ͷ࣮Λؔ࿈ ͚ͮΔ w (VJDF -JOLFECJOEJOH w .BD8JSF
͋Δܕʹ۩ମతͳΠϯελϯεΛੜ͠ɺ όΠϯυ͢Δ w (VJDF *OTUBODF#JOEJOHTPS1SPWJEFT.FUIPETPS 1SPWJEFS#JOEJOHT ΠϯελϯεੜͷෳࡶʹΑ͍͚ͬͯΒΕΔ ͭͷํ๏͕ఏڙ͞Ε͍ͯΔ
͋Δܕʹ۩ମతͳΠϯελϯεΛੜ͠ɺ όΠϯυ͢Δ w *OTUBODF#JOEJOHT w 1SPWJEFS#JOEJOHT
͋Δܕʹ۩ମతͳΠϯελϯεΛੜ͠ɺ όΠϯυ͢Δ w .BD8JSF'BDUPSZ.FUIPE
ܕύϥϝʔλΛͬͨ%* w (VJDF5ZQF-JUFSBM w .BD8JSF
ಉҰͷܕͰෳΠϯελϯε #FSSZ!!#MVFPS5BHHFE<#FSSZ #MVF> XJSF<#FSSZ>UBHHFE8JUI<#MVF>
4DPQF w (VJDF σϑΥϧτͰΛཁٻ͞ΕΔʹɺ৽͍͠Πϯελϯε࡞ !4JOHMFUPO !4FTTJPO4DPQFE !3FRVFTU4DPQFEͳͲͰΠ ϯελϯεͷϥΠϑλΠϜΛมߋͰ͖Δ w
.BD8JSF MB[ZWBMͰએݴγϯάϧτϯ EFGཁٻ͞ΕΔʹ৽͍͠ΠϯελϯεΛ࡞ͯ͠ฦ͢ 4DPQFUSBJUΛͬͯSFRVFTUTFTTJPOͷ༷ͳಠࣗͷ TDPQFΛఆٛͰ͖Δ
.PEVMFΛίϯύΫτʹอͭ
5FTUJOH جຊతʹDPOTUSVDUPS*OKFDUJPOͳͷͰɺ ίϯϙʔωϯτͷ୯ମςετͰɺ ؆୯ʹNPDLΛͤ͞Δ
5FTUJOH w ςετ࣌ʹςετ༻ͷ%#ʹΓସ͑ͨΓͰ͖Δ
.BD8JSFͦͷଞػೳ w 6TJOHJNQMJDJUQBSBNFUFST w .VMUJ8JSJOH w "LLBJOUFHSBUJPO w FUDʜ
.BD8JSFͷσϝϦοτ w ίϯύΠϧ͕࣌ؒ৳ͼΔ w FYQFSJNFOUBMͳػೳ NBDSPT ʹґଘͯ͠ ͍Δ
"QQMJDBUJPO-PBEFSͱ͍͏ଘࡏ
"QQMJDBUJPO-PBEFSͱ (VJDFͷ߹ɺ(VJDF"QQMJDBUJPO#VJMEFS͍ͬͯ͏ϔϧύʔ͕ ఏڙ͞Ε͍ͯͯSFGFSFODFDPOGʹඪ४Ͱઃఆ͞ΕͯͨͷͰ ಛ ʹҙࣝ͠ͳͯ͘ࡁΜͩ ΞϓϦέʔγϣϯࣗମͰߏஙͰ͖ͳ͍Α͏ͳίϯςΩετΛ༩ ͑ΒΕͯ ΞϓϦέʔγϣϯΛΠϯελϯεԽ͢Δׂ
"QQMJDBUJPO-PBEFSͰίϯϙʔωϯτͷґଘؔΛղܾͰ͖ ΔΑ͏ʹͯ͋͛͠Δඞཁ͕͋Δ
None
·ͱΊ .BD8JSFͰͷDPNQJMFUJNF%*ݒ೦͋Δͷͷɺ 5IJODBLFQBUUFSOͷσϝϦοτͰ͋ͬͨίʔυྔϘ ΠϥʔϓϨʔτ͕ۃྗগͳ͘ɺ$PNQJMFUJNF%*Λ࣮ ݱͰ͖Δͷͱͯྑ͍ ػೳॆ࣮͓ͯ͠Γɺ͍ํγϯϓϧͰ͋Δ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠