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
Bloc PatternにおけるBloc分割の方針と実践例 / Division plan a...
Search
yamarkz
November 07, 2019
Programming
28k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Bloc PatternにおけるBloc分割の方針と実践例 / Division plan and practical example in bloc pattern
Flutter Meetup Tokyo #12
yamarkz
November 07, 2019
More Decks by yamarkz
See All by yamarkz
ネットスーパーの買い物体験を支える工夫と決済機能実現の過程
yamarkz
0
2k
Flutter/Dartと共に歩んだスタートアップの開発を振り返って得た、成功と失敗の教訓
yamarkz
5
3.3k
Smart Contract Design Pattern
yamarkz
4
3k
トークンの概要と開発観点から見たICO / Token and TokenSale
yamarkz
5
62k
Zilliqa Next Gen High Throughput Blockchain Platform
yamarkz
0
2.4k
詳解 Ethereum Transaction / detail ethereum transaction
yamarkz
5
3k
Proof of Stake Casper
yamarkz
8
14k
Blockchain R&D Introduction
yamarkz
2
51k
Bitcoin Improvement Flow
yamarkz
5
4.7k
Other Decks in Programming
See All in Programming
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.1k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
150
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
930
GitHub Copilot CLIのいいところ
htkym
2
1.3k
Oxcを導入して開発体験が向上した話
yug1224
4
290
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
350
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
380
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
590
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
210k
The Invisible Side of Design
smashingmag
302
52k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
The untapped power of vector embeddings
frankvandijk
2
1.7k
Context Engineering - Making Every Token Count
addyosmani
9
940
ラッコキーワード サービス紹介資料
rakko
1
3.5M
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
150
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
130
Skip the Path - Find Your Career Trail
mkilby
1
140
How to Ace a Technical Interview
jacobian
281
24k
Transcript
,B[VLJ:BNBHVDIJZBNBSL[ 'MVUUFS.FFUVQ #MPD1BUUFSOʹ͓͚Δ#MPDׂͷํͱ࣮ફྫ (MPCBM#MPD-PDBM#MPD$PNQPOFOU#MPD5FNQMBUF#MPD
!ZBNBSL[,B[VLJ:BNBHVDIJ 4FSWFS.PCJMF"QQ&OHJOFFS!)PVTNBSU JOD
͢͜ͱ 'MVUUFSͰ։ൃ͢Δʹ͋ͨͬͯར༻ͨ͠#MPD1BUUFSOʹ͓͚Δɺ ࣮ύλʔϯͷಛͱྨɺͦͯ͠#MPDͷׂͰܾΊͨํΛհ͠·͢
ͷࡐΧϧ ɾ݄த०ʹ'MVUUFSͷΞϓϦΛϦϦʔε ϦϓϨΠε ɾ։ൃظؒि ɾ#MPD1BUUFSOͱ3Y%BSUΛ࠾༻ ɾ࡞ΒΕͨ#MPDͷݸ ɾϦϓϨΠεͷOPUFʹॻ͖·ͨ͠
ɾ݄த०ʹ'MVUUFSͷΞϓϦΛϦϦʔε ϦϓϨΠε ɾ։ൃظؒि ɾ#MPD1BUUFSOͱ3Y%BSUΛ࠾༻ ɾ࡞ΒΕͨ#MPDͷݸ ɾϦϓϨΠεͷOPUFʹॻ͖·ͨ͠ ͷࡐΧϧ ɾ࡞ΒΕͨ#MPDͷݸ ଟ͍ʁগͳ͍
͜ͷݸͷΈ͚ͱಛ͕ࠓճͷͷओͰ͢
#MPD1BUUFSOΛద༻ͨ͜͠ͱͰݟ͑ͨͭͷׂํ
ΞϓϦέʔγϣϯશମʹؔΘΔॲཧΛͭʹ·ͱΊΔ εΫϦʔϯ͚ͩͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ίϯϙʔωϯτͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ڞ௨Ͱར༻͢ΔॲཧΛͭʹ·ͱΊΔ #MPD1BUUFSOΛద༻ͨ͜͠ͱͰݟ͑ͨͭͷׂํ
ΞϓϦέʔγϣϯશମʹؔΘΔॲཧΛͭʹ·ͱΊΔ εΫϦʔϯ͚ͩͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ίϯϙʔωϯτͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ڞ௨Ͱར༻͢ΔॲཧΛͭʹ·ͱΊΔ #MPD1BUUFSOΛద༻ͨ͜͠ͱͰݟ͑ͨͭͷׂํ ΞϓϦέʔγϣϯશମʹ εΫϦʔϯ͚ͩͰ ίϯϙʔωϯτͰ ڞ௨Ͱ ํͷҧ͍είʔϓͷ͞
ΞϓϦέʔγϣϯશମʹؔΘΔॲཧΛͭʹ·ͱΊΔ εΫϦʔϯ͚ͩͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ίϯϙʔωϯτͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ڞ௨Ͱར༻͢ΔॲཧΛͭʹ·ͱΊΔ #MPD1BUUFSOΛద༻ͨ͜͠ͱͰݟ͑ͨͭͷׂํ ͳͥɺ͜ͷΈ͚͕ྑ͍ͷ͔ʁ
ͳͥɺ͜ͷΈ͚͕ྑ͍ͷ͔ʁ ͭͷओͳཧ༝ ΞϓϦɺεΫϦʔϯɺίϯϙʔωϯτͱ͍͏6*ߏΛ࣠ʹॲཧ͕·ͱ·ΔͨΊɺ ߏ͕୯७ͰΘ͔Γ͘͢ͳΔ ϑΝΠϧ૿͍͕͑͢ɺϑΝΠϧ͋ͨΓͷίʔυྔݮΔ είʔϓͷൣғ͕໌֬ʹఆ·ͬͨ#MPDΛ࡞ΔͨΊɺ#MPDࣗମ͕ૄ݁߹ʹͳΔɻ ݁Ռͱͯ͠ɺอकੑ͕ߴ͘ͳΓɺಡΈ͍͢ɺཧղ͍͢͠ɺมߋ͍͢͠ͱ͍ͬ ͨঢ়گʹͳΔ
#MPDͷ࣮ࣗମ͕ߏԽ͞ΕΔ͜ͱʹΑΓɺอकੑ্͕͕Δ
(MPCBM#MPD-PDBM#MPD$PNQPOFOU#MPD5FNQMBUF#MPD ׂํͷఆٛʹΑͬͯੜ·Εͨɺ#MPDͷྨ
(MPCBM#MPD ɾΞϓϦ୯ҐͰɺ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ FYೝূॲཧ ΠϕϯτετϦʔϜΛଞ#MPDʹ͢Δॲཧ -PDBM#MPD ɾεΫϦʔϯ୯ҐͰɺݶΒΕͨڱ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ FYඳը͢Δσʔλͷऔಘॲཧ ϦϩʔυͳͲͷը໘୯ҐͰߦΘΕΔॲཧ $PNQPOFOU#MPD
ɾίϯϙʔωϯτ୯ҐͰɺݶΒΕͨ෦ʹؔΘΔॲཧΛ·ͱΊΔ FYϢʔβʔΞΫγϣϯ͕ൃੜ͢Δॲཧ ͓ؾʹೖΓ আ 5FNQMBUF#MPD ɾڞ௨ͷॲཧ୯ҐͰɺݶΒΕͨڱ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ FYೝূॲཧ ྨࣅը໘ͷྨࣅॲཧ ׂํͷఆٛʹΑͬͯੜ·Εͨɺ#MPDͷྨ
(MPCBM#MPD ɾΞϓϦ୯ҐͰɺ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ FYೝূॲཧ ΠϕϯτετϦʔϜΛଞ#MPDʹ͢Δॲཧ -PDBM#MPD ɾεΫϦʔϯ୯ҐͰɺݶΒΕͨڱ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ FYඳը͢Δσʔλͷऔಘॲཧ ϦϩʔυͳͲͷը໘୯ҐͰߦΘΕΔॲཧ $PNQPOFOU#MPD
ɾίϯϙʔωϯτ୯ҐͰɺݶΒΕͨ෦ʹؔΘΔॲཧΛ·ͱΊΔ FYϢʔβʔΞΫγϣϯ͕ൃੜ͢Δॲཧ ͓ؾʹೖΓ আ 5FNQMBUF#MPD ɾڞ௨ͷॲཧ୯ҐͰɺݶΒΕͨڱ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ FYೝূॲཧ ྨࣅը໘ͷྨࣅॲཧ ׂํͷఆٛʹΑͬͯੜ·Εͨɺ#MPDͷྨ ΧϧΞϓϦͰͷ#MPDΛྨ͝ͱʹৼΓ͚Δͱ
(MPCBM#MPD ΞϓϦ୯ҐͰ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ "QQ 4DSFFO 4DSFFO 4DSFFO 4DSFFO #MPD
͓ؾʹೖΓը໘ ҟͳΔը໘ͷڞ௨ͷॲཧ πʔϧνοϓ Λɺ ಉҰͷ(MPCBM#MPDΛࢀর੍ͯ͠ޚ͍ͯ͠Δ (MPCBM#MPD ϗʔϜը໘ πʔϧνοϓͷදࣔ݅Λ੍ޚ͢Δ #MPDΛڞ௨Ͱࢀর
"QQ 4DSFFO 4DSFFO 4DSFFO 4DSFFO #MPD εΫϦʔϯ୯ҐͰݶΒΕͨڱ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ -PDBM#MPD
ϩάΠϯը໘ ɾαΠϯΠϯॲཧ ɾϩάΠϯॲཧ ɾ(PPHMFϩάΠϯॲཧ ɾ'BDFCPPLϩάΠϯॲཧ ɾϝʔϧΞυϨεͷόϦσʔτॲཧ ɾύεϫʔυͷόϦσʔτॲཧ ɾύεϫʔυͷද੍ࣔޚॲཧ ಛఆͷը໘ͷΈͰར༻͢Δॲཧ ϩάΠϯϩάΞτ
Λ੍ޚ͢Δ -PDBM#MPD
$PNQPOFOU#MPD ίϯϙʔωϯτ୯ҐͰ෦తʹؔΘΔॲཧΛ·ͱΊΔ 4DSFFO $PNQPOFOU $PNQPOFOU $PNQPOFOU $PNQPOFOU #MPD
͓ؾʹೖΓը໘ ϗʔϜը໘ $PNQPOFOU#MPD ҰݟҟͳΔ6*ߏ Χʔυܕ ϦετΞΠςϜܕ ʹݟ͑Δ
$PNQPOFOU#MPD $POE$BSE#MPD Λ࠶ར༻͍ͯ͠Δ ͔͠͠ɺഎޙͰར༻͍ͯ͠Δ#MPDಉҰͷͷ ڞ௨ॲཧͷ࠶ར༻ ϗʔϜը໘ ͓ؾʹೖΓը໘
5FNQMBUF#MPD 4DSFFO 5NQ #MPD #MPD #MPD 4DSFFO 4DSFFO ڞ௨ར༻͢Δॲཧ୯ҐͰڱ͍ൣғʹؔΘΔॲཧΛ·ͱΊΔ ܧঝ֦ͯ͠ு
ϓϨʔϯʹར༻
8FC7JFXͱͯ͠ͷجຊػೳಉ͡ͳͷͰɺಉҰͷ#MPDΛར༻͢Δ͕ɺ ֦ுػೳ͕ཉ͍͠߹ʹɺ#MPDࣗମΛܧঝͯ͠࠶ར༻ͭͭ͠ػೳՃ͢Δ #MPDΛܧঝ͠ɺ ػೳ֦ு͍ͯ͠Δ 1MBJOͳ#MPDΛ ͦͷ··ར༻͍ͯ͠Δ 5FNQMBUF#MPD ࣋ͪࠐΈը໘ αʔϏε֓ཁը໘
ΞϓϦέʔγϣϯશମʹؔΘΔॲཧΛͭʹ·ͱΊΔ εΫϦʔϯ͚ͩͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ίϯϙʔωϯτͰར༻͢ΔॲཧΛͭʹ·ͱΊΔ ڞ௨ར༻͢ΔॲཧΛͭʹ·ͱΊΔ #MPD1BUUFSOΛద༻ͨ͜͠ͱͰݟ͑ͨͭͷׂํ
l࡞ΒΕͨ#MPDͷݸzଟ͍ গͳ͍ʁ
l࡞ΒΕͨ#MPDͷݸzଟ͍ গͳ͍ʁ ݸਓతʹɺ͜Μͳͷ͔ͳͱ͍͏ײ͡ɻ ࠓͷͱ͜Ζ։ൃӡ༻తʹಛʹෆ߹Λײͯ͡ͳ͍Ͱ͕͢ɺ ͔ͨ͠͠Βকདྷతʹɺ՝ʹײ͡Δ͜ͱ͕ग़Δ͔ʜ
·ͱΊ ɾҰॏʹ#MPD1BUUFSOͱݴ͑Ͳɺѻ͍ํ༷ʑଘࡏ͢Δ ɾ(MPCBM -PDBM $PNQPOFOU 5FNQMBUFͦΕͧΕͷ͍ํΛݟۃΊͯѻ͏ ɾείʔϓͷ໌֬ԽɺߏԽʹΑΓɺอकੑͷߴ͍ΞϓϦέʔγϣϯ։ൃ͕ՄೳʹͳΔ #MPD1BUUFSOࣗମͷద༻ΛԣͷߏԽ 6*ͱϩδοΫͷ ͩͱ͢ΔͳΒɺ
#MPDͷ࣮ύλʔϯΛద༻͢Δ͜ͱɺॎͷߏԽ είʔϓʹΑΔϩδοΫ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ