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
8.7k
14
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ちょうぜつ改め21世紀ふつうのソフトウェア設計
Forkwell Library #14 2023.1.25 のスライドです。
https://forkwell.connpass.com/event/271212/
Hisateru Tanaka
January 25, 2023
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
どうなる Remix 3
tanakahisateru
2
550
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
2
300
哲学史とモデリング
tanakahisateru
4
1k
オブジェクト指向宗教史
tanakahisateru
32
18k
ほげ言語にあってPHPにない機能
tanakahisateru
6
4k
君たちはどうプログラミングするか
tanakahisateru
16
3.2k
デバッグ用ロガーの注入どうする?
tanakahisateru
2
730
アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
tanakahisateru
25
10k
まんがのかきかた
tanakahisateru
8
780
Other Decks in Programming
See All in Programming
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.2k
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.7k
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
980
メールのエイリアス機能を履き違えない
isshinfunada
0
240
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
110
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
550
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
270
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.3k
How to Talk to Developers About Accessibility
jct
2
520
Building Applications with DynamoDB
mza
96
7.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Navigating Team Friction
lara
192
16k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
How to build a perfect <img>
jonoalderson
1
5.9k
Technical Leadership for Architectural Decision Making
baasie
3
490
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
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 ແͳਓΛ૬खʹࣝ֨ࠩΛചΔࣄʹ ͳͬͯ͠·͏ˠ"*ʹک͑ଓ͚Δ ͜͠ΜͳձࣾͩͬͨΒʜຊʹೖΓ͍ͨ
ੈلͷιϑτΣΞΤϯδχΞͱͯ͠ྑ͍ΩϟϦΞΛ ఏڙ