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
ちょうぜつ改め21世紀ふつうのソフトウェア設計
Search
Hisateru Tanaka
January 25, 2023
Programming
14
8.6k
ちょうぜつ改め21世紀ふつうのソフトウェア設計
Forkwell Library #14 2023.1.25 のスライドです。
https://forkwell.connpass.com/event/271212/
Hisateru Tanaka
January 25, 2023
Tweet
Share
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
2
210
哲学史とモデリング
tanakahisateru
4
850
オブジェクト指向宗教史
tanakahisateru
32
17k
ほげ言語にあってPHPにない機能
tanakahisateru
6
3.4k
君たちはどうプログラミングするか
tanakahisateru
16
2.8k
デバッグ用ロガーの注入どうする?
tanakahisateru
2
640
アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
tanakahisateru
25
9.7k
まんがのかきかた
tanakahisateru
8
730
10秒で衝突するUUIDの作り方
tanakahisateru
40
41k
Other Decks in Programming
See All in Programming
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
150
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3k
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
4
1.3k
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
640
止められない医療アプリ、そっと Swift 6 へ
medley
1
120
複雑化したリポジトリをなんとかした話 pipenvからuvによるモノレポ構成への移行
satoshi256kbyte
1
780
AIで開発生産性を上げる個人とチームの取り組み
taniigo
0
130
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
490
Your Perfect Project Setup for Angular @BASTA! 2025 in Mainz
manfredsteyer
PRO
0
130
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
220
Le côté obscur des IA génératives
pascallemerrer
0
120
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
180
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Agile that works and the tools we love
rasmusluckow
331
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Done Done
chrislema
185
16k
For a Future-Friendly Web
brad_frost
180
9.9k
It's Worth the Effort
3n
187
28k
The Pragmatic Product Professional
lauravandoore
36
6.9k
The Cost Of JavaScript in 2023
addyosmani
53
9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Transcript
ͪΐ͏ͥͭվΊੈل;ͭ ͏ͷιϑτΣΞઃܭೖ
w ओʹ1)1Λ͓ͬͯࣄͯ͠·͢ w ͪΐ͏ͥͭΤϯδχΞΊΓʔͪ ΌΜ w ͷʹຊ͕ग़·ͨ͠ ాதͻͯ͞Δ
ੈلͷίϯϐϡʔλʔ Մಈ෦ͳ͠ܭࢉػͷੜ &/*"$
ੈلͷίϯϐϡʔλʔ τϥϯδελूੵԽˠιϑτΣΞͷෳࡶԽ 4ZTUFN
w ޙʹΥʔλʔϑΥʔϧͱ ݺΕΔΑ͏ʹͳͬͨͷ w ͏ਓݶΒΕΔˠΓͨ ͍͜ͱ͔͕ͨΕ͍ͯΔ w ओߴՁ͗͢Δϋʔυ ΣΞΛແବͳ͑͘Δ͔ w
ઃܭ༧ଌՄೳɻϓϩάϥ ϛϯάҎલʹਓ͕ؒۤ࿑͢ Δํ͕Α͍݁ՌΛੜΉ ࣌ͷ;ͭ͏ ΉΛ͑ͣ IUUQXXXTDGVTDFEVdDTDJMFDUVSFT-FDUVSFSPZDFQEG
w ࣮4ZTUFNͷ։ൃޙه ग़൛ w ϒϧοΫεͷ๏ଇʮޙఔͷ૿ һੜ࢈ੑΛԼ͛Δʯ w ιϑτΣΞʹରͯ͠ʮΞʔΩς Ϋνϟʯͱ͍͏ݴ༿ΛॳΊͯ༻
w ʮ֎Պखज़νʔϜʯͷൺᄻ w ͳͥ͜͏ͳΒͳ͔ͬͨͷ͔ ਓ݄ͷਆ ;ͭ͏ʹͳΔ͖ͩͬͨ͜ͱ
w ͲΕ͚ͩେ͖ͯ͘ڧ͍ͷΛ࡞ΕΔ͔ w ࡞ΔͨΊͷ৫ΛͲΕ͚ͩେ͖͘Ͱ͖Δ͔ w ৫ϐϥϛου֊ʹΑΔେنԽ w ্ͷΠϯςϦগͰࡁΉ w Լຌ༱ͳ࿑ಇऀΛޏ͏͖
w ࿑ಇऀϚχϡΞϧ௨Γਖ਼֬ʹಈ͘ػց Μ ͳʹ͔ົͩͧʜ ੈل·Ͱʹൃୡͨ͠ࢥ
ੈلͷίϯϐϡʔλʔ ύʔιφϧίϯϐϡʔλʔͷ͡·Γ "QQMF*
ੈلͷίϯϐϡʔλʔ શਓྨنͷύʔιφϧίϯϐϡʔλʔීٴ /&4
ϜʔΞͷ๏ଇ࢝·͍ͬͯͨ ܭࢉػͷूੵͰഒҎ্ʹ
;ͭ͏ͷײ͕֮มΘͬͨ ശϞϊͱίϯϐϡʔλʔͷҧ͍ ࢢൢιϑτΣΞ
w ߴߍੜͷύιίϯগ w ిλμ͕͚ϋοΧʔ w ΦϯϥΠϯͷύιίϯήʔϜͩͱ ࢥ͍ͬͯͨͷ͕/03"% Ξ ϝϦΧߤۭӉӴ࢘ྩ෦ ͷγ
εςϜͩͬͨ w "QQMF*͔Βͱܦͨͣʹɺ ͜Μͳөը͕ʮΘ͔Δʙʯͱ έΔ࣌ʹ 8BS(BNFT ύιίϯগWT֩ཧγεςϜ
ੈلͷίϯϐϡʔλʔ ύιίϯͱຊ֨తͳίϯϐϡʔλʔͷڥ͕ͳ͘ͳΔ 8JOEPXT
w 8JOEPXTରԠɺ1$"5ޓͷσό Πεɻཧ͕ΞʔΩςΫνϟʹґଘ w ػցͷݴޠͰϓϩάϥϛϯά͠ͳ͘ ͯΤΫηϧͰՁͳܭࢉ͕Ͱ͖Δ w ΤϯυϢʔβʔίϯϐϡʔςΟϯ ά8:4*8:(1MVH1MBZ w
ιϑτΣΞϋʔυΣΞʹର͠ ͯΧϦΧϦʹ࠷దԽ͢ΔΑΓɺແବ ͕͋ͬͯਓ͕͍ؒ͘͢ ͬͱΤΩαΠςΟϯάͳ࣌ ੈքιϑτΣΞͷ࣌
ͱ͜Ζ͕ιϑτΣΞ։ൃʜ ॏްͳϓϩδΣΫτཧɾϛυϧΣΞͷංେԽ ʮιϑτΣΞͷ࣌ʯͬͯͦ͏͍͏͜ͱͳΜʜ
w ਓͷࢥߟͭͶʹݱ࣮͔ΒԿ ͔ΕΔ w ถ܉͜Ε͕͍͍ͱݴͬͯͨ ͡Όͳ͍͔ w ύιίϯήʔϜػͳΜͯຊ ͷίϯϐϡʔλʔ͡Όͳ͍ Μ
w େاۀϚωʔ͕ܦࡁ্ࢧత ͳͷݱ࣮Ͱ͋ͬͨΑͶʜ લ࣌తͳࢥ͍ࠐΈ͕ͨ͠ʮ͋ͬͯ΄͍͠ܗʯ ͍·ͩ߹ͷྑ͔ͬͨϞσϧ ͑Β͍ ୭ͰͰ͖Δ ͣͳΜͩ ͜ͱʹͳͬͯΔ
w σβΠϯύλʔϯΦϒδΣΫτࢦͷ࠶ w &OUFSQSJTF+BWB#FBOTˠܰշͳ+BWB 10+0 w Φʔϓϯιʔε-".1 -JOVY"QBDIF.Z42-1)1
w ϙʔϧɾάϨΞϜʮϋοΧʔͱըՈʯz#FBUJOH5IF"WFSBHFTz w 91ΤΫετϦʔϜɾϓϩάϥϛϯά 5%%෮গਫ਼Ӷ w ΞδϟΠϧιϑτΣΞ։ൃએݴ ैདྷܕιϑτΣΞ։ൃͷΞϯνςʔθ ੈل͔Βੈل
ੈلͷίϯϐϡʔλʔ ମͷҰ෦ɾຊ࣭ΫϥυαʔϏε
ιϑτΣΞ։ൃͷൺॏ ʮϞϊͷѻ͍ʯ͕εΩϧɻ ͲΕ͚ͩଟ͘ͷఆܕతͳ ૢ࡞͕಄ʹೖ͍ͬͯΔ͔ɻ ʮͲΜͳαʔϏε͕ศར͔ʯ ͱ͍͏͑ͷͳ͍͕ ιϑτΣΞ։ൃͷओʹɻ ίϯϐϡʔλʔݸਓͰ͏ಓ۩ ઐΦϖϨʔλʔ͕ඞཁ ੈل
ੈل
͚ΕͲٕज़͘͠ͳ͍ͬͯΔͷͰ ΑΓෳࡶͰେ͖ͳߏΛͲ͏ͬͯ࡞Δͷ͔
ͦͦڊେϞϊϦε͕ ͏͓ͯ͠Δͷ͡Ό
w ʮΦϯαΠτސ٬ʯͱʮϖΞϓϩάϥϛϯάʯͷ݁ w ςετۦಈ։ൃ͕ݪଇ 91ϚωδϝϯτͰͳ͍ w 5%%҉ʹʮ୯ମςετՄೳͳཻͷղ͕લఏʯΛҙ ຯ͍ͯ͠Δˠ࠷ॳʹ࡞ΒΕͨͷ46OJU 4NBMMUBML༻
ͩΑ w ΦϒδΣΫτࢦͱͱʮখ͞ͳܭࢉػ͕ϝοηʔδΛհ͠ ͯωοτϫʔΫΛͨ͠࠶ؼతߏʯΈ͍ͨͳҙຯͩͬͨ w ࠓͰݴ͏ϚΠΫϩαʔϏε ଏʹݴ͏ϞδϡϥϞϊϦε 91 ݩΞδϟΠϧ
ΞδϟΠϧখنϓϩδΣΫ τ༻ͷํ๏ͱݴΘΕ͕ͨʜ
ׂɾ෮ɾ෦ςετɾࣗݾ݁ ΑΓεέʔϦϯά༨͕͋ΔͷͲͪΒͰ͠ΐ͏ ։ൃऀ͕ϢʔβʔͰ͋ΔΑ
ઃܭ༧ଌՄೳͳػցͷ͔Β ༧ଌෆೳͳਓͷʹͳ͍ͬͯΔ ͪͳΈʹ͜ΕͷϩΠεจͷ݁ͷਤͰ͢ IUUQXXXTDGVTDFEVdDTDJMFDUVSFT-FDUVSFSPZDFQEG
ϢʔβʔχʔζͷॊೈੑΛࢧ͑Δ ͔ͬ͠Γͨ͠ΞʔΩςΫνϟ
ιϑτΣΞઃܭࣗసंͷ྆ྠ ͲͪΒ͕͚ܽͯ͏·͘Βͳ͍ υϝΠϯϞσϧ গ͖ͮͭ͠Λม͑ΒΕΔ ΞʔΩςΫνϟ ࣗసंલʹਐΉ͔ΒΕͳ͍ ΠςϨʔγϣϯ υϝΠϯ ސ٬͕ຊʹཉ͔ͬͨ͠ͷ 🤔
֤ιϑτΣΞʹݻ༗ͷ ॏཁ͕ͩڞ௨ͨ͠ҰൠԽͰ͖ͳ͍ Ͳ͏ͬͯεΩϧΛ্ୡͤ͞Εʜ ˠ෮܇࿅͔͠ͳ͍ ཁ݅ఆٛʹख़࿅͕ඞཁ ϓϩδΣΫτͷதͰ෮Ͱ͢Α
ڞ௨ͨ͠جຊݪଇ͕͋ΔྖҬ ෮తͳ։ൃͷۦಈޮΛߴΊΔํ๏ ूத͖͢Λখ͘͞ด͡ΒΕΔ࡞Γ ߴʹςετۦಈΛճͤΔ ˠྑ͍ઃܭͷൃݟνϟϯεΛ૿ͯ͠ҭͯΔ
ઃܭೖ͗͜ग़ͤΓΌͳΜͱ͔ͳΔ ৄ͍ٕ͠๏ຊͷதͰʜ
ʮ·ͣΦϒδΣΫτࢦ ΛཧղͤΑʯ/( ਖ਼͍͠ํ๏͑͋͞Εԋ៷తʹਖ਼͍͠ࣄʹͳΔͷݬ ॊೈੑΛࢧ͑ΔݸʑͷΛ௨ͯ͡ઌਓͷҙਤΛೝࣝ͢͠ ʮΦϒδΣΫτࢦͷ׆༻ʯͬͯʜ ͲΜͳ͜ͱ͕ॻ͍ͯ͋Δຊͳͷʁ
w ͝ΖΞϥϯɾέΠ͕ݴ͍ग़ͨ͠Β͍͠ w 4JNVMBΛ͍ͳ͕Βࢥ͍͍ͭͯɺ4NBMMUBML ͰΞΠ σΞΛܗʹ͍ͯͬͨ͠ w ൴Ͱ͢ΒखΛಈ͔͠ͳ͕Β௫Μͩײ֮Λɺઆ໌͚ͩͰΘ͔ͬͨΑ͏ ͳؾʹͳΕΔͷͩΖ͏͔
ͦͷޙΑΓෳࡶͳࣄΛ๊͑ͨͷʹ w ؆୯ͳݴ༿ σʔλܕʹϝιου͕ੜ͍͑ͯΔͱศར ͰΘ͔ͬͨ ؾʹͤ͞ΔݴઆΛ৴͡ΒΕΔͩΖ͏͔ w ʮਓ݄ͷਆʯୈ̎൛ʙ ʹຊ֨తʹ࠶͞ Εɺ౫ଡ͞Εͣੈلʹੜ͖ͬͨϓϥΫςΟεͷ࣮ફ͕ઌ ΦϒδΣΫτࢦ͚ͩΘ͔Δͳ͍
τϨϯυٕज़㱠࿑ಇࢿ֨ ΦϒδΣΫτࢦͰ͖·͢ ࣄΛΒ͑Δ
࿑ಇࢿ֨ͱରՁˠਓʹಧ͚ͨՁ ੈل ੈل 💰 💰 = ϓϩάϥϛϯάݴޠ ϑϨʔϜϫʔΫ"1* ͔͍͍ͬ͜ίʔσΟϯά ͕ܾ͑·͍ͬͯΔ͜ͱ
͑ͷͳ͍ ݱ࣮తͳՌ ίίͰ
w 7JBXFC #"4&Έ͍ͨͳͷ Λ-JTQ Ͱॻ͍ͨϙʔϧɾάϨΞϜͷຊ w ·ͩ8FC͕ϒϧʔΦʔγϟϯͩͬ ͨ࣌ɺͣൈ͚ٕͨज़͕Ξυόϯ ςʔδʹͳͬͯڝ߹Λग़͠ൈ͚ͨ w
ੈք࠷৽ٕज़ͱ༏लͳΤϯδχΞ Λͧͬͯ͜ٻΊΔΑ͏ʹͳͬͨ w ຊ࣭తʹ͍͍͜ͱॻ͍ͯ͋Δ͚ Ͳɺ۩ମ͏લͷՁ؍ ੈل͔Βੈلͷγϑτظ
w (PݴޠͷίʔυͰ͢ w ͜Μͳίʔυهड़͕Ͱ͖Δ͜ͱΛ͝ଘͰ͔ͨ͠ʁ w ͜ͷߦ͍͍ͬͨԿΛ͍ͯ͠ΔͰ͠ΐ͏͔ w ࢲͲ͏ͬͯ͜ͷίʔυΛॻ͍ͨͰ͠ΐ͏͔ ಥવͰ͕͢ΫΠζͰ͢
ͨ͑͜"*ʹྻΛٯʹ͢Δํ๏Λฉ͍ͨ طͷΞΠσΞͳΒจ๏Τϥʔͷͳ͍ίʔυΛ͙͢ग़ͤΔ
ͬͱߴͳ͜ͱฉ͍ͯΈͨ ʮ%PDLFSͰ8PSE1SFTTΓ͍ͨʯ
͕͢͞ʹ͜ΕΒͳ͍ͩΖʜ 1ZUIPOͷϨτϩήʔϜΤϯδϯͩͥ ͍͍ͦͦ݁͜͜Ռग़ͯ͘͠Δ͡ΌͶʔ͔ʜ
͏͙͢͜Ε͕ʮී௨ͷ ͭΒʯʹͳΔΜͰ͠ΐ ୭ΑΓૣ͘࠷৽ٕज़ͷ͍ํΛϚελʔ͢Δ͚ͩͰɺ ͜Ε·ͰͷΞυόϯςʔδʹͳΒͳ͍ʜ ϋοΧʔͱըՈͷʮී௨ͷ্ʯผͷͱ͜Ζʹγϑτͨ͠
ϋοΧʔըՈʜ ಉ͡ඨͰڝ͍߹͏૬ख͡Όͳ͍Α͜Μͳͷ IUUQTXXXDIJDIJQVJDPN
ԼखͰ͍ͭ͜Β͕࡞Εͳ͍ ϢχʔΫͳՁΛ࡞ΕΔ͔͕ উෛͳͷͰ͢ ݴ͍༁
࠶ ࿑ಇࢿ֨ͱରՁˠਓʹಧ͚ͨՁ ී௨ ҎԼͷੈلత࿑ಇ WTී௨ ੈلͷৗࣝײ
ඞਢεΩϧ+BWB։ൃܦݧ ʢҎ্ʣ🤔 ͜͏͍͏ͷͬͯɺٕज़ͷ͍ํΛٻΊΒΕ͍ͯΔͷͰ Ͱʜ
ސ٬͕ຊʹཉ͔ͬͨ͠ਓࡐ
w ڞ௨ͷޠኮ͕ͳ͍ͷͰܦݧԿͱ ͍͏ݴ͍ํʹͳͬͯ͠·͏ w ʮͷܦݧʯͱݴͬͨͱ͖ຊ ʹٻΊΒΕ͍ͯΔͷࣈͦͷ ͷͰͳ͍ w ʮจ๏"1*ͷࣝྔʯͰͳ ͘ɺͦΕΛͬͨʮղܾͷۤ
࿑ޭମݧʯͷ΄͏͕ཉ͍͠ ސ٬ͷઆ໌ͨ͠εΩϧཁ݅
w ͱʮӦۀͷઆ໌ʯͷֆ w ݴΘΕͨ͜ͱΑΓʮ͍͢͝ʯΛ ग़͢ͷ͕ചΓࠐΈͩͱࢥ͍ͬͯΔ w ͚͢͝Ε͍͢͝΄Ͳɺ͓ۚΛͨ ͘͞ΜΒ͑Δʹ͕͍ͪͳ͍ͱ͍ ͬͨࡨ֮ w
૬खͷؾ࣋ͪΛߟ͑ͯΈ ͕ۚཉ͍͠ΤϯδχΞͷࣗݾΞϐʔϧ
w ຊૉʹ͜ΕΛࢥ͍͚Δਓ͕ ٻΊ͍ͯΔͷͩͱͨ͠Βʜ w ͢Ͱʹ৫ʮͪΐ͏Ͳ͍͍ιϑτ ΣΞʯΛΘ͔͍ͬͯΔ w ແବʹΦʔόʔεϖοΫ͞ΛΞϐͬ ͯͦΜͳਓࡐϚον͠ͳ͍ w
ʮ ݱͷ ;ͭ͏ʯΛͪΌΜͱͰ͖ Δਓࡐ͕͍͍ w ͜͏͍͏࠾༻͢ΔͳΒɺձࣾͱͯ͠ ͷͷͼ͠Ζ͋Γͦ͏ˠ༗ ސ٬͕ຊʹཉ͔ͬͨ͠ਓࡐ
ੈلͷ;ͭ͏ະຬ ·ͩ͜ͷײ֮ ੈلͷ;ͭ͏Ҏ্ ͬͪ͜ʹͳͬͯΔ ϨΠϠʔߴϨΠϠʔͱ͍͏Ͱͳ͍Ͱ͢ɻʮۂܳͦΕࣗମ͕ՁͰͳ͍ʯͷҙຯͰ͢
w ͠ϗϯτʹʮͰ͖Δਓ͕ଞʹ୭͍ͳ ͍͔Βʯͱ͍͏ཧ༝ͰɺݴΘΕͨͱ͓Γ ͷ࡞ۀΛͤ͞ΒΕΔࣄͩͬͨΒͲ͏͔ w ͍͘ΒεΩϧ͕͋ͬͯ͋·Γ׆͔ͤ ͣɺεϖοΫͷແବ w ༨࣮ͬͨྗཧղධՁ͞Εͣɺ۰ਾ
͑ஔ͖ɻΘ͔ͬͯΒ͑ͳ͍ݽಠײ w ͜ͷ࣌ͦΜͳΜ͡Όɺ͍͍͕࡞Ε ΔΘ͚ͳ͍ͷͰձࣾͷকདྷੑͳ͠ w ແͳਓΛ૬खʹࣝ֨ࠩΛചΔࣄʹ ͳͬͯ͠·͏ˠ"*ʹک͑ଓ͚Δ ͜͠ΜͳձࣾͩͬͨΒʜຊʹೖΓ͍ͨ
ੈلͷιϑτΣΞΤϯδχΞͱͯ͠ྑ͍ΩϟϦΞΛ ఏڙ