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
開発者だけでソフトウェア設計をしてはいけない理由
Search
mather
October 11, 2016
Technology
0
590
開発者だけでソフトウェア設計をしてはいけない理由
過去の設計・開発を振り返りながらソフトウェア設計を開発者だけで行ってはいけない理由を説明します。
mather
October 11, 2016
Tweet
Share
More Decks by mather
See All by mather
SolidjsでLeacTion!を作り直しました / Rebuilt LeacTion! in Solid.js
mather
0
280
Webフレームワークの功罪 / Advantages and considerable point of Web Frameworks
mather
0
390
LeacTion!のアップデートとプチ勉強会へのいざない / Updates of LeacTion and Petit Meetup
mather
0
430
LeacTion!について / About LeacTion!
mather
0
310
Rubyでワンライナー / One-liner on Ruby
mather
0
430
認知と思考パターン / Cognition and Pattern
mather
1
260
「モデル」を考える / Think about "model"
mather
0
370
Shall we make a speech?
mather
0
220
Elmでライフゲーム / LifeGame in Elm
mather
1
980
Other Decks in Technology
See All in Technology
KMP with Crashlytics
sansantech
PRO
0
240
DMMブックスへのTipKit導入
ttyi2
1
110
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
170
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
120
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
230
メールヘッダーを見てみよう
hinono
0
110
【Oracle Cloud ウェビナー】2025年のセキュリティ脅威を読み解く:リスクに備えるためのレジリエンスとデータ保護
oracle4engineer
PRO
1
100
Building Scalable Backend Services with Firebase
wisdommatt
0
110
20250116_自部署内でAmazon Nova体験会をやってみた話
riz3f7
1
100
Unsafe.BitCast のすゝめ。
nenonaninu
0
200
商品レコメンドでのexplicit negative feedbackの活用
alpicola
2
370
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
140
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Mobile First: as difficult as doing things right
swwweet
222
9k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Code Review Best Practice
trishagee
65
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
YesSQL, Process and Tooling at Scale
rocio
170
14k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Designing for humans not robots
tammielis
250
25k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Transcript
։ൃऀ͚ͩͰ ιϑτΣΞઃܭΛ ͍͚ͯ͠ͳ͍ ཧ༝ ೆभιϑτΣΞઃܭLabo vol.1 #ddd_labo ܂ാӳࢿ
ࣗݾհ • גࣜձࣾΞϥλφ • 2લ·Ͱ౦ژͷձࣾͰۈ • ݩֶઐ߈ʢʣ • ͖ͳݴޠɿHaskellͱ͔Scalaͱ͔ •
झຯɿεΩϡʔόμΠϏϯάɺΧϝϥ
μΠόʔؒɹืूதʂ
͓͜ͱΘΓ • աڈͷιϑτΣΞઃܭɾ։ൃͷܦݧஊ • ࣦഊͷࣄྫ͔Βֶͼ͍ͨ • ※͋͘·ͰݸਓͷײͰ͢
Agenda • എܠ • ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ • Կ͕ى͔ͬͨ͜ʁ • Կ͔ʁͲ͏͢ΕվળͰ͖ͨͩΖ͏͔ʁ •
υϝΠϯۦಈઃܭͷಓ
Agenda • എܠ • ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ • Կ͕ى͔ͬͨ͜ʁ • Կ͔ʁͲ͏͢ΕվળͰ͖ͨͩΖ͏͔ʁ •
υϝΠϯۦಈઃܭͷಓ
എܠ ͱ͋Δձࣾ ϚʔέςΟϯάπʔϧ (ASP)
ϚʔέςΟϯάπʔϧʁ
طଘϓϩμΫτͷঢ়ଶ • ॏͳΔཁٻΛগͣͭ͠Ճ࣮ͯ͠ϦϦʔε • طଘػೳͷվमσάϨ͕ාͯ͘Ͱ͖ͳ͍ • ΄΅ಉ͡ػೳΛίϐϖͯᷖ͠ճίʔυͷྔ࢈ • εύήςΟίʔυ ƅшƅ)řŵŖ
• ֦ுੑͷݶք͕དྷ͍ͯΔ…ʂ
എܠ 2ձࣾͬͱ͍ͨ͠ɻ ɹιϑτΣΞ։ൃࠓޙͲ͏͢ΕΑ͍͔ʁ ᶃগͣͭ͠ϦϑΝΫλϦϯά͢Δɻ ᶄ࣍ظόʔδϣϯͷ։ൃɾҠߦΛݕ౼͢Δɻ ᶅͲ͏ʹͳΒͳ͍ɻݱ࣮ඇͰ͋Δɻ
എܠ ᶃճؼςετ͕ͳ͘ɺ༷ʹ͍ͭͯѲͰ͖ͯ ͍Δਓ͕͍ͳ͍ͨΊɺϦϑΝΫλϦϯάͷਖ਼͠ ͞Λ୲อͰ͖ͳ͍ɻ ᶄಉ͘͡ϝϯόʔ͕༷ʹ͍ͭͯ໌Δ͘ͳ͍ɻ ߋʹɺઐ༻γεςϜΧελϚΠζΛՃ͍͑ͯ Δސ٬ଘࡏ͢ΔͨΊɺҠߦ͕Ͱ͖ͳ͍Մೳੑ ͕ߴ͍ɻ
͑ᶅ ͑ᶅ ͑ᶅ
δϦශϓϩμΫτ ͋Δ͋Δ
͜͜Ͱ੨ఱͷᯡᯧ
ͬͺΓ ࣍ظόʔδϣϯΛ࡞ͬͯ Ṣճ͢Δͧʂʂʂ by Ғ͍ਓ at ࣾһ૯ձ
࣍ظόʔδϣϯͷ։ൃ ͦΜͳ͜ΜͳͰ ϓϩδΣΫτԽ͞Εͨ ಥવ
Agenda • എܠ • ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ • Կ͕ى͔ͬͨ͜ʁ • Կ͔ʁͲ͏͢ΕվળͰ͖ͨͩΖ͏͔ʁ •
υϝΠϯۦಈઃܭͷಓ
ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ ཁ݅ఆ͔ٛΒड͚ೖΕςετ·Ͱ։ൃͰߦ͏׳ྫ վળཁ όάใࠂ ཁ݅ఆٛ ઃܭ ࣮ ςετ ӡ༻
ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ ෦ߏ։ൃऀ͔͠ཧղͰ͖ͳ͍(?)
ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ ৽͍ٕ͠ज़࠷৽൛ͷػೳΛऔΓೖΕ͍ͨ 7 or 8 (6EOL)
ཁ͢Δʹ
։ൃ෦͚ͩͰ ։ൃ͍ͯ͠Δͱ͍͏ ࣗෛ
Agenda • എܠ • ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ • Կ͕ى͔ͬͨ͜ʁ • Կ͔ʁͲ͏͢ΕվળͰ͖ͨͩΖ͏͔ʁ •
υϝΠϯۦಈઃܭͷಓ
Կ͕ى͔ͬͨ͜ʁ • ΩοΫΦϑ&։ൃ߹॓ • ཁ݅Λूதతʹٞʢͨͭ͠Γʣ • ཉ͍͠ػೳɾ͢ػೳɾফ͖͢ػೳΛ ։ൃऀࢹͰग़͚ͨͩͩͬͨ͠ • େ෩࿊ෑΛ͕͛ͨ̎ϲ݄ޙʹফ͑ͨ
Կ͕ى͔ͬͨ͜ʁ • ͍͟։ൃελʔτͨ͠ͷͷ… • ·ͣಈ͘ͷΛ࡞ͬͯ։ൃͯ͠·͢Ξϐʔϧ • Ͱɺ୭ʹݟͤΕ͍͍ʁ • ͲΜͳػೳ͕ඞཁ͔୭͕ܾΊΔʁ •
ϓϩμΫτΦʔφʔͷ࣮࣭తෆࡏ
Կ͕ى͔ͬͨ͜ʁ • ୭ͬͯ͘Εͳ͍ͷͰখنҊ݅ʹೖ(!) • ϕʔλ൛ͷͣͩͬͨͷʹ̍ܖ • ͳ่͠͠తʹػೳ֬ఆ͠ɺϦϑΝΫλෆೳʹ • ύονΞοϓσʔτͷ࢝·Γ •
ڧͳطࢹײ
Կ͕ى͔ͬͨ͜ʁ • ӦۀʮͰɺطଘͷػೳA͑·͔͢ʁʯ • ൚༻ੑΛҙࣝͯ͠εϦϜʹղ͍ͯͨ͠ • Έ߹ΘͤΕಉ͜͡ͱ࣮ݱͰ͖Δͣʁ • Ӧۀʮ͔Βͳ͍ʯʮސ٬ʹઆ໌Ͱ͖ͳ͍ʯ •
Ӧۀ͚આ໌ॻΛ࡞Δඞཁ͋Γʁ
Կ͕ى͔ͬͨ͜ʁ • چόʔδϣϯ͔Βͷސ٬ͷҠߦՄೳ͔ʁ • ։ൃऀʮچver.ͷσʔλߏͷΛղܾ ͢ΔͷͰ͋ΔͨΊҠߦۃΊͯࠔʯ • ӦۀʮεϜʔζʹҠߦͰ͖ͳ͍ͱചΕͳ͍ʯ • Ғ͍ਓʮҠߦඞਢɻͳΜͱ͔ͤΑɻʯ
Ͳ͏ͯ͜͠͏ͳͬͨʁʁʁ
Agenda • എܠ • ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ • Կ͕ى͔ͬͨ͜ʁ • Կ͔ʁͲ͏͢ΕվળͰ͖ͨͩΖ͏͔ʁ •
υϝΠϯۦಈઃܭͷಓ
ސ٬ͷۀͰ͏ͨΊͷπʔϧ։ൃ ͳͷʹ ސ٬ۀΛ͍ͬͯΔϝϯόʔ͕͍ͳ͍··ઃܭ ར༻ঢ়گΛ͖ͪΜͱѲ͠ ࣮ࡍͷސ٬ۀΛΔϝϯόʔͱ ϢʔεέʔεΛ࡞Δ͖
ސ٬ۀଟذʹΘͨΔͷͨΊ ࢥ͍ͭ͘৭ʑͳύλʔϯʹରԠͰ͖ΔΑ͏ʹ ֦ுੑͱ൚༻ੑΛॏࢹͯ͠͠·ͬͨ Ϣʔεέʔεʹݟ߹͏࠷খͷߏ͔Β࢝ΊΔ͖ ͍͔ͭ͘ͷέʔεʹର͢Δ࣮Λ ͋ͱͰϦϑΝΫλ͢Εྑ͍
࠷খߏͷཁ͕݅Θ͔Βͳ͍ ෆཁͳͷΛΈࠐΜͰͳ͍͔ఆͰ͖ͳ͍ ۀΛཧղ͍ͯ͠Δ εςʔΫϗϧμʔΛཱͯΔ͖
چver.ͷػೳ໊ϫʔΫϑϩʔΛ ҙࣝͯ͠͠·͏͜ͱͰ ಉ͡ػೳΛম͖͠Ͱ࡞ͬͯ͠·͏ چver.ͷ׳शతͳࣾ༻ޠΛཧ ຊདྷͷۀʹඞཁͳ༻ޠΛ͏
࣍ظόʔδϣϯͱฉ͍ͯಥͬΔΞϗʢࣗʣ ̍ਓͰScala, AkkaͰ෦తͳػೳΛ࣮ ؔܕActorϞσϧͷฒߦੑʹϋϚΔ ͱΓ͋͑ͣམͪண͚ ࣗҎ֎ͰอकՄೳͳݴޠΛબͿ͖ ʢͱ͍͑ݸਓతʹྑ͍ܦݧʣ
Agenda • എܠ • ͳͥ։ൃऀ͚ͩͰઃܭͨ͠ͷ͔ʁ • Կ͕ى͔ͬͨ͜ʁ • Կ͔ʁͲ͏͢ΕվળͰ͖ͨͩΖ͏͔ʁ •
υϝΠϯۦಈઃܭͷಓ
ͷυϝΠϯۦಈઃܭͷಓ • ʮ༻ޠཧʯΛ͍ͨ͠ɺͱ͍͏ཉٻ͔Β • ΩʔϫʔυʮϢϏΩλεݴޠʯ͔ΒDDD • ۀʹԊͬͯιϑτΣΞΛ։ൃ͢Δ֓೦ʹ ಉҙ • ݱࡏͷ։ൃͷ͕ஈʑݟ͑ͯ͘Δ
υϝΠϯۦಈઃܭͷಓ • ސ٬ͷۀΛΔਓΛҾ͖ࠐΉ ʢυϝΠϯΤΩεύʔτʣ • ۀͷ֓೦Λదʹදݱ͢Δݴ༿Λߏங͢Δ ʢϢϏΩλεݴޠʣ • ϓϩμΫτͷଟ༷ԽͱίϯςΩετͷղ
ํ๏Ͱͳ͍υϝΠϯۦಈઃܭ • ։ൃͰؕΓ͕ͪͳΛ໌֬ʹ͢ΔͨΊͷ ࢥߟํ๏ͷҰͭ • ͷલͷ࣮ࣗͷ୲ྖҬ͚ͩʹಛԽ͠ ͨ࠷খྖҬͰकΓʹೖ͍͚ͬͯͳ͍ • ۀʹଈͨ͠ʮՁͷ͋ΔϓϩμΫτʯΛಧ ͚ΔͨΊͷ࠷దͳߏΛߟ͑Δ͖
·ͱΊ
Β ୭ͷՁͷͨΊʹ ιϑτΣΞΛઃܭ͠ ։ൃ͢Δͷ͔
ࠓҰ ͍ͦ͏
None