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
7
28k
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.9k
Flutter/Dartと共に歩んだスタートアップの開発を振り返って得た、成功と失敗の教訓
yamarkz
5
3.2k
Smart Contract Design Pattern
yamarkz
4
2.9k
トークンの概要と開発観点から見たICO / Token and TokenSale
yamarkz
5
61k
Zilliqa Next Gen High Throughput Blockchain Platform
yamarkz
0
2.2k
詳解 Ethereum Transaction / detail ethereum transaction
yamarkz
5
2.8k
Proof of Stake Casper
yamarkz
8
13k
Blockchain R&D Introduction
yamarkz
2
51k
Bitcoin Improvement Flow
yamarkz
5
4.6k
Other Decks in Programming
See All in Programming
ソフトウェアテスト徹底指南書の紹介
goyoki
1
110
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
150
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
2
260
画像コンペでのベースラインモデルの育て方
tattaka
3
1.9k
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
210
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.6k
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
270
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
240
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
1k
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
580
私の後悔をAWS DMSで解決した話
hiramax
4
140
RDoc meets YARD
okuramasafumi
2
120
Featured
See All Featured
Visualization
eitanlees
147
16k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Statistics for Hackers
jakevdp
799
220k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Music & Morning Musume
bryan
46
6.7k
RailsConf 2023
tenderlove
30
1.2k
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ͷ࣮ύλʔϯΛద༻͢Δ͜ͱɺॎͷߏԽ είʔϓʹΑΔϩδοΫ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ