Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Peacock#01 ソフトウェアアーキテクチャ的発想
Search
kinocoboy
November 30, 2021
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Peacock#01 ソフトウェアアーキテクチャ的発想
kinocoboy
November 30, 2021
More Decks by kinocoboy
See All by kinocoboy
その「common」ディレクトリ、腐っていませんか?
kinocoboy2
1
160
フロントエンドにおける「型」の責任分解に対する1つのアプローチ
kinocoboy2
5
2.4k
メタファーの使い方
kinocoboy2
0
500
LLMとPlaywright/reg-suitを活用した jQueryリファクタリングの実際
kinocoboy2
5
1.5k
UIパフォーマンス最適化: AIを活用して100倍の速度向上を実現した事例
kinocoboy2
2
1.2k
【ScrumFestNiigata2024】a11yを起点とした組織横断を完了するためにアジャイルチームにとって大切だったこと100選
kinocoboy2
0
790
JSConfjp2023 Storybook駆動開発の再現性と効率化
kinocoboy2
2
4.3k
新卒だったころの僕へ向けて
kinocoboy2
0
260
スクラムマスターを目指すためにギャルになってみた話
kinocoboy2
10
12k
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
ラッコキーワード サービス紹介資料
rakko
5
5.6M
Amusing Abliteration
ianozsvald
1
370
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
750
How STYLIGHT went responsive
nonsquared
100
6.3k
Done Done
chrislema
187
17k
The untapped power of vector embeddings
frankvandijk
2
2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
290
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Transcript
Peacock #01 ߈͑!! ιϑτΣΞΞʔΩςΫνϟతൃ
Self Introduction Hiroki.Kinoshita Peacock Engineer Group ( PEG ) Organizer
גࣜձࣾKUNO ਂֶशͱCloudΛۦ͢ΔDXਪਐاۀ Front Engineer / Designer Twitter: @kinocoboy2 Blog: Baboblog
Peacock Engineer Group ͷհ
Peacock Engineer Group • PEG ͷ త • ҬձࣾɾࣾձਓɾֶੜͳͲͷ֞ࠜΛӽ͑ͯɺ ࣗ༝ʹָٕ͘͠ज़ྗΛߴΊ߹͑ΔίϛϡχςΟ
ʹ!! • PEG ͕औΓѻ͏ςʔϚ • ʮ໌͔Β͑ΔTipsʯ • ӡӦελοϑਵ࣌ืूத!
Πϕϯτͷָ͠Έํ • Twitter ͱSpecialChat Λۦ • #PEACOCK • ͲΜͲΜᄁ͍͍͖ͯ·͠ΐʔ •
࣭ɺTwitter Ͱ͍͍͠ɺSpecialChat ͷ νϟοτཝ͔ΒͰOKͰ͢ɻ • ΦϯϥΠϯͳͷͰੵۃతʹͬͯΈ·͠ΐʔ • ࠙ձ༗ࢤͰߦ͍·͢ɻ • SpecialChat ͷ Ͱߦ͍·͢ɻ • ৭ʑަྲྀ͠·͠ΐʔ
߈͑!! ιϑτΣΞΞʔΩςΫνϟతൃ
PMBOK ୈࣣ൛
PMBOKͷվఆ PMBOK(ϐϯϘοΫ)ͱɺ ੈքதͷϓϩϚωͷ࣮Ո͔ΒҙݟΛूΊͯϓϩδΣΫτϚωδϝϯ τʹ͍ͭͯࣝମܥԽ͍ͯ͠Δް͍ຊɻ ࠷ۙɺ݁ߏۀք͕͟Θͭ͘มԽ͕!!
ʮՌͷఏڙʯ͔ΒʮՁͷఏڙʯ
ʮՌͷఏڙʯ͔ΒʮՁͷఏڙʯ ੈքతʹҊ݅ਐߦɺΥʔλʔϑΥʔϧܕ։ൃ͔ΒΞδϟΠϧ։ൃ ͷϐϘοτ͕ߦΘΕ༷ͨࢠɻ ͞ΒʹɺʮՁΛఏڙ͢ΔʯͨΊʹʮՁΛݟग़͞ͳ͚ΕͳΒͳ ͍ʯͱ͍͏͠͞ൃੜ͖ͯͨ͠ɻ
ՁΛݟग़ͨ͢Ίͷํ๏ ͦͷͨΊʹɺDDD(υϝΠϯۦಈઃܭ) ϞσϦϯάɾϢʔβʔετʔ ϦʔϚοϐϯάͳͲͷཁ݅ΛநԽͯ͠ཧ͢Δख๏͕Ұؾʹීٴ͠ ͍ͯΔɻ ͔͠͠ɺ͜ͷख๏֮͑Ε͙͢ʹॱԠͰ͖Δ͔ͱݴ͏ͱNOͩɻ
ՁఏڙܕͷਐΊํՁͷ୳ࡧʹɺࢼߦࡨޡ͠ͳ͕ΒϢʔβʔώ ΞϦϯάΛ܁Γฦ͢ඞཁ͕͋Δɻ ͦͷεϐʔυ͕͘ɺैདྷͷΥʔλʔϑΥʔϧܕʹ׳Ε͍ͯΔ ߹ɺϐϘοτʢେʹࣺͯͯɾ·ͨੜ͔ͯ͠ʣ͕͍͠ɻ ͳ͙ͥ͢ॱԠͰ͖ͳ͍ͷ͔
େͳ։ൃΛߦ͑ΔΑ͏ʹͳΔͨΊʹɺҎԼख๏͕༗ޮʹͳΔ - ෦తͳ҆શੑΛৗʹ୲อ͠ଓ͚Δςετۦಈઃܭ - ׂΛ໌֬ʹͯ͠ਐΊΔΠϕϯτۦಈઃܭɾΫϦʔϯΞʔΩςΫνϟ ͜ΕΛ࢝ΊΔͨΊʹɺൣғͷղϊϋ͕͍Δɻ େʹࣺͯͨΓɾੜ͔ͨ͠Γ͢ΔͨΊʹ
ٯʹ
ςετۦಈઃܭɾΠϕϯτۦಈઃܭɾΫϦʔϯΞʔΩςΫνϟͷೖΓ ޱʹཱͭ͜ͱ͕Ͱ͖Δɻ ͦͯ͜͠ΕΒΛར༻Ͱ͖ΔΑ͏ʹͳͬͯ͘ΔͱɺDDDϞσϦϯάͳ Ͳͷૉૣ͍ϐϘοτ͕ཁٻ͞ΕΔઃܭख๏ͰॊೈʹରԠͰ͖ΔΑ͏ ʹͳͬͯ͘Δɻ ࠓճɺൣғͷղʹྗ͍͖͍ͯͨ͠ͱࢥ͏ɻ ൣғͷղ͕Ͱ͖ΔΑ͏ʹͳΕ
ྫ • ൣғͷղΛΒͣ • ಈ͘ͷ͚ͩΛࢦͨ͠ͷͰςετ࣮ࡍʹಈ͔ ͯ͠ΈͨΓ͢Δײ͡ • ͔֬ʹಈ͕͘… • શͯ
main ʹ٧ΊࠐΜͰ͍ΔͷͰɺͲ͔͜Ͱτϥ ϒϧ͕ى͖ͨΒ main શମΛ debug ͠ͳ͚Ε … • Main ͷ ςετͬͯ݁ہԿΛνΣοΫ͢Ε… ͱ͋ΔώϤίʔυ🐥
ώϤίʔυͷղʹɺDI(Dependency Injection)ͷߟ͑ํ͕͑ ͦ͏ͩɻ DIͱɺʮґଘΦϒδΣΫτΛೖʯͱݺΕΔσβΠϯύλʔϯͷ ࣄɻ ͜ΕΛͬͯώϤίʔυΛόϥ͍ͯ͜͠͏ ղʹ
ྫ • ·ͣҰ൪ͪ͝Ό͍͍ͭͯΔdatabase ૄ௨पΓ͔Βɻ • Main Λಈ͔͢ͱ͖ɺdatabase instance ·Ͱཱͪ ্͔͛ͯΒquery
Λൃߦ͢ΔΈʹͳ͍ͬͯ Δɻ • ·ͣ query ͷ෦ͷൣғΛ֎ͯ͠ΈΔɻ • Query Λ࣮ߦ͢ΔͨΊʹɺ database instance ͱ query param ͕͋ΕղͰ͖ΔͷͰɺ model ͱ͍͏ྖҬΛ࡞ͬͯDBͱΓͱΓΛͤ͞ ͨɻ • ͜ΕʹΑͬͯɺDBपΓͰτϥϒϧ͕ى͖ͨ Βɺmodel ͚ͩΛݟΕྑ͘ͳͬͨ ͱ͋ΔώϤίʔυ🐥
ྫ • ࣍ʹmain Λىಈ͢Δͨͼʹຖճ database instance up ͍ͯ͠Δ෦ΛΊΑ͏ɻ • Main
Λಈ͔ͨ͢Ίʹɺ model ͕ඞཁͰ͋Γɺ model database instance Λཉ͕͠ΔͳΒɺ main ʹ database instance Λ֎͔Β༩͑ͯ͋͛ Εྑ͍ɻ • ͜ͷରԠͰɺdatabase instance γεςϜͰ୯ ҰͰ͋Δܗ͕ଋ͞ΕΔɻ͜Εsingleton ͱ͍͏ σβΠϯύλʔϯɻ • Main ͷςετΛ͢Δͱ͖ɺ database instance ͱ query parameter ΛೖΕͨΒಈ࡞֬ೝ͕औΕΔΑ ͏ʹͳͬͨɻ ͱ͋ΔώϤίʔυ🐥
ྫ • ࣍ʹbusiness logic Λmain ͔Β͠Α͏ɻ • ͜Εͷʹɺ query ͷ
result ͕͋Εlogic ճͤͦ͏ͩɻ • Main ؔͰͳ͘ɺ logic function ͱͯ͠ߟ͑ Δɻ • Logic Λͤ͞Δ͜ͱͰɺ main ͷಈ࡞֬ೝ Ͱඞཁͳ͜ͱ param parse ͱ param validate ͷΈ͞Ε͍ͯΔɻ • Logic model result ͕͋Εɺ୯ମͰςε τͰ͖Δ͔Βͩɻ ͱ͋ΔώϤίʔυ🐥
ᶃ ղʹɺDIԽ͕༗ޮɻ ᶄ DIʮґଘΦϒδΣΫτೖʯͱ͍͏σβΠϯύλʔϯɻ ᶅ ґଘΦϒδΣΫτΛೖΕΔͨΊʹɺin, out Λཧ͠Α͏ɻ ᶆ γεςϜͰ୯ҰͰ͋Δ͜ͱΛकΓ͍ͨͳΒɺsingleton
ͱ͍͏σβ Πϯύλʔϯ༗ޮ ᶇ ͜ͷݟɺϞμϯͳઃܭΛਐΊΔͨΊͷجૅͰ͋Δɻ ·ͱΊ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ιϑτΣΞΞʔΩςΫνϟʮతʯൃ
࣭ٙԠ