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.2k
Compile Time DIのススメ
s10myk4
April 03, 2018
Tweet
Share
More Decks by s10myk4
See All by s10myk4
新卒向けDDD(+ 要件定義/分析)研修資料
s10myk4
0
340
プロダクトオーナー向けユースケース駆動開発入門
s10myk4
0
380
ユースケース駆動開発入門 (理論・実践編)
s10myk4
10
4.1k
Scalaの線形化と抽象型メンバーの統一のジレンマ
s10myk4
3
1.1k
Other Decks in Programming
See All in Programming
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
370
ニーリーにおけるプロダクトエンジニア
nealle
0
100
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
560
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
290
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
150
Effect の双対、Coeffect
yukikurage
5
1.4k
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
100
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
660
関数型まつりレポート for JuliaTokai #22
antimon2
0
150
Team operations that are not burdened by SRE
kazatohiei
1
180
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
250
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
Featured
See All Featured
Music & Morning Musume
bryan
46
6.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Visualization
eitanlees
146
16k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Documentation Writing (for coders)
carmenintech
71
4.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
Statistics for Hackers
jakevdp
799
220k
4 Signs Your Business is Dying
shpigford
184
22k
Docker and Python
trallard
44
3.4k
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%*Λ࣮ ݱͰ͖Δͷͱͯྑ͍ ػೳॆ࣮͓ͯ͠Γɺ͍ํγϯϓϧͰ͋Δ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠