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 and practical example in bloc pattern
Search
yamarkz
November 07, 2019
Programming
7
27k
Bloc PatternにおけるBloc分割の方針と実践例 / Division plan and practical example in bloc pattern
Flutter Meetup Tokyo #12
yamarkz
November 07, 2019
Tweet
Share
More Decks by yamarkz
See All by yamarkz
ネットスーパーの買い物体験を支える工夫と決済機能実現の過程
yamarkz
0
1.7k
Flutter/Dartと共に歩んだスタートアップの開発を振り返って得た、成功と失敗の教訓
yamarkz
5
3.1k
Smart Contract Design Pattern
yamarkz
4
2.7k
トークンの概要と開発観点から見たICO / Token and TokenSale
yamarkz
5
61k
Zilliqa Next Gen High Throughput Blockchain Platform
yamarkz
0
2.1k
詳解 Ethereum Transaction / detail ethereum transaction
yamarkz
5
2.6k
Proof of Stake Casper
yamarkz
8
13k
Blockchain R&D Introduction
yamarkz
2
50k
Bitcoin Improvement Flow
yamarkz
5
4.4k
Other Decks in Programming
See All in Programming
【Go言語】ジェネリクス
tomo1227
0
170
CSC307 Lecture 10
javiergs
PRO
0
310
Product Management LT会_クアンド新家
shinshin
0
230
SDCon2024: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
cer
PRO
0
780
[After Kotlin Fest 2024 LT Night @ Sansan] もっともっとKotlinを好きになる!K2 Compiler Pluginで遊んでみよう!
kitakkun
2
260
CSC307 Lecture 11
javiergs
PRO
0
240
Trial
cairolibrary720
1
130
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.3k
わかりやすい正解を捨てて、コトに向き合う - スクラムフェス金沢2024 スポンサーセッション
yusukekokubo
0
170
Activities at Cairo Library
cairolibrary720
0
1.2k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
13
430
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
How to Think Like a Performance Engineer
csswizardry
4
590
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
Scaling GitHub
holman
458
140k
GraphQLとの向き合い方2022年版
quramy
36
13k
What's in a price? How to price your products and services
michaelherold
239
11k
Speed Design
sergeychernyshev
9
270
How To Stay Up To Date on Web Technology
chriscoyier
784
250k
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Facilitating Awesome Meetings
lara
46
5.8k
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ͷ࣮ύλʔϯΛద༻͢Δ͜ͱɺॎͷߏԽ είʔϓʹΑΔϩδοΫ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ