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
Fat Modelに対処する 6つのリファクタリングパターン
Search
Kaoru Hotate
September 15, 2019
Programming
13
4.2k
Fat Modelに対処する 6つのリファクタリングパターン
2019/09/15 大阪Ruby会議02 登壇資料
https://regional.rubykaigi.org/osaka02/
Fat Modelに対処する 6つのリファクタリングパターン
Kaoru Hotate
September 15, 2019
Tweet
Share
More Decks by Kaoru Hotate
See All by Kaoru Hotate
20240607_人を動かし続ける力_ピープルマネジメントへの内発的動機づけの工夫
hotatekaoru
1
380
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.3k
費用対効果の高いテストコードを書くために意識したこと.pdf
hotatekaoru
3
4.8k
新規プロジェクトのリードエンジニアになるために
hotatekaoru
6
2.6k
リファクタリングチャンスを探せ
hotatekaoru
2
450
Dependabotからの脱却
hotatekaoru
0
440
MobPro2Points
hotatekaoru
0
110
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
210
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.6k
Other Decks in Programming
See All in Programming
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
120
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
4.7k
2025-04-25 GitHub Copilot Agent ライブデモ(スクリプト)
goataka
0
100
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-analysis-and-skill-up
minodriven
8
1.9k
VitestのIn-Source Testingが便利
taro28
8
2.4k
SwiftDataのカスタムデータストアを試してみた
1mash0
0
140
Fiber Scheduler vs. General-Purpose Parallel Client
hayaokimura
1
280
API for docs
soutaro
3
1.6k
2ヶ月で生産性2倍、お買い物アプリ「カウシェ」4チーム同時改善の取り組み
ike002jp
1
110
カオスに立ち向かう小規模チームの装備の選択〜フルスタックTSという装備の強み _ 弱み〜/Choosing equipment for a small team facing chaos ~ Strengths and weaknesses of full-stack TS~
bitkey
1
130
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
110
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
150
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Documentation Writing (for coders)
carmenintech
69
4.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
820
The Invisible Side of Design
smashingmag
299
50k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.7k
Adopting Sorbet at Scale
ufuk
76
9.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Designing Experiences People Love
moore
142
24k
YesSQL, Process and Tooling at Scale
rocio
172
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
590
Transcript
'BU.PEFMʹରॲ͢Δ ͭͷϦϑΝΫλϦϯάύλʔϯ ,BPSV)PUBUF!QVSVOLBPSV .FE1FFS3VCZPO3BJMT&OHJOFFS େࡕ3VCZ,BJHJ PTSL
อཱ֜ ,BPSV)PUBUF !QVSVOLBPSV ੜ·ΕͯॳΊͯ େࡕʹདྷ·ͨ͠ʂ ࣗݾհ
'BU.PEFMͱ DMBTT"SUJDMF"QQMJDBUJPO3FDPSE ͨ͘͞Μͷؔ࿈͚ IBT@NBOZDPNNFOUT CFMPOHT@UPDBUFHPSZ ͨ͘͞Μͷείʔϓ TDPQFQVCMJTIFE \ ^
ͨ͘͞Μͷϝιου EFGQVCMJTIFE FOE FOE
"QQMJDBUJPO3FDPSEΛܧঝͨ͠Ϋϥε͕ ศརϝιουूʹͳΔ 'BU.PEFMͰਏ͍͜ͱ मਖ਼ൣғͷಛఆʹ͕͔͔࣌ؒΔ ςετ͕ॻ͖ͮΒ͍ ͓·͡ͳ͍͕ॻ͔Ε͍ͯΔ SVCPDPQEJTBCMF
'BU.PEFMʹͳͬͯ͠·͏ ٕज़తͳ ࣌ؒɾͷ 'BU.PEFMͰΑ͍ :"(/*ɾ,*44 'BU$POUSPMMFSʹൺͨΒ༏ઌ͕͘ͳΔ 'BU.PEFM͕ى͖Δɾ์ஔ͞ΕΔཧ༝
'BU.PEFMʹͳͬͯ͠·͏ ٕज़తͳ ࣌ؒɾͷ ύλʔϯԽɾٕज़ྗͷ্ 'BU.PEFMͰΑ͍ :"(/*ɾ,*44 'BU$POUSPMMFSʹൺͨΒ༏ઌ͕͘ͳΔ ϦϑΝΫλϦϯάͷश׳ 'BU.PEFMΛى͜͞ͳ͍ͨΊʹʁ
ΛఆܕԽͯ͠ଊ͑ΒΕΔ ղܾࡦΛ٬؍తʹൺֱͰ͖Δ ϝϯόʔͷڞ௨ݴޠͱͳΔ ύλʔϯԽͷϝϦοτ ʮJ04ΞϓϦઃܭύλʔϯʯୈষઃܭ͢Δͱ͍͏͜ͱΑΓ
ϋϯϚʔఝප ϋϯϚʔͷ͍ํΛ֮͑ͨΒɺશ෦ఝʹݟ͑Δ ύλʔϯԽͷσϝϦοτɾҙ
ۜͷؙͰͳ͍ ଞͷύλʔϯ͋Δͣ ࠙ձ5XJUUFSͰڞ༗ͯ͠Β͑Δͱخ͍͠ʂ ࠓ͢͜ͱਖ਼ղͰͳ͍Ͱ͢
ύλʔϯԽͷલʹɾɾɾ
'BU.PEFMͷҙࣝͷ౷Ұ νʔϜͰཧʹ͍ͭͯษڧ ໋໊ϧʔϧͷ࡞ ύλʔϯԽͷલʹνʔϜͰͬͨ͜ͱ
όάΛੜΈ͍͢ɾςετ͕ॻ͖ͮΒ͍߹ͷΈղফ͢Δ ʢඞཁ͕ͳ͚ΕϦϑΝΫλϦϯάΛ͠ͳ͍ʣ 'BU.PEFMͷҙࣝͷ౷Ұ طଘͷίʔυʹରͯ͠मਖ਼͢Δ߹ ϦϑΝΫλϦϯάҰॹʹͰ͖ͳ͍͔ߟ͑ͯݟੵΓ͢Δ
νʔϜͰཧʹ͍ͭͯษڧ ΦϒδΣΫτࢦઃܭʹ͍ͭͯ ॻ੶ΛಡΜͰཧղΛਂΊΔ
ॲཧΛΓग़͢͜ͱʹͳΔΫϥεΛྨ͠ɺ ಛఆͷ໋໊ɾωʔϜεϖʔεʹͳΔΑ͏ϧʔϧΛ࡞ ໋໊ϧʔϧͷ࡞ αʔϏεͷํʹΑͬͯมΘΔՄೳੑ͋ΔͨΊɺ ԾͰܾΊΔ͘Β͍ͷҐஔ͚ͮ
$PMMFDUPS0CKFDUΛ͏ 7BMVF0CKFDUΛ͏ 1PMJDZ0CKFDUΛ͏ 2VFSZ#VJMEFSΛ͏ 7BMJEBUPS$MBTTΛ͏ ΦϒδΣΫτΛ૿ͯ͠ΦϒδΣΫτͷذΛݮΒ͢ ϦϑΝΫλϦϯάύλʔϯ
$PMMFDUPS0CKFDUΛ͏ 1
ϦϑΝΫλϦϯάલͷίʔυྫʢهࣄͷҰཡը໘ʣ $PMMFDUPS0CKFDU DMBTT"SUJDMFT$POUSPMMFS"QQMJDBUJPO$POUSPMMFS EFGJOEFY !BSUJDMFT"SUJDMFQVCMJTIFE QBHF QBSBNT<QBHF> QFS
FOE FOE GJMUFSFE@CZ@DBUFHPSZ QBSBNT<DBUFHPSZ> PSEFSFE@CZ QBSBNT<PSEFS>
DMBTT"SUJDMF"QQMJDBUJPO3FDPSE CFMPOHT@UPDBUFHPSZ TDPQFGJMUFSFE@CZ@DBUFHPSZ DBUFHPSZ \ JGDBUFHPSZ KPJOT DBUFHPSZ NFSHF
$BUFHPSZXIFSF OBNFDBUFHPSZ FOE ^ FOE ϦϑΝΫλϦϯάલͷίʔυྫʢهࣄΫϥεʣ $PMMFDUPS0CKFDU
ݱঢ়ͷ $PMMFDUPS0CKFDU ݕࡧ͕݅૿͑Δͨͼʹ.PEFMʹTDPQFΛՃ ෳͷը໘͔Βผͷ݅ʹΑΔݕࡧ͕͋Δ߹ɺ ͭͷ.PEFMʹશͯهࡌ͢Δ ଠΓ͍͢ମ࣭Ͱ͢
$PMMFDUPS0CKFDUΛ͏ 1
ϦϑΝΫλϦϯάલ $PMMFDUPS0CKFDU "SUJDMFT$POUSPMMFS "SUJDMF "SUJDMFT$POUSPMMFS "SUJDMF'JMUFSJOH "SUJDMFT$PMMFDUPS "SUJDMF0SEFSJOH ϦϑΝΫλϦϯάޙ ϑΟϧλϦϯάΛ୲
ιʔτΛ୲
"SUJDMFT$POUSPMMFS"SUJDMFT$PMMFDUPS"SUJDMF'JMUFSJOH $PMMFDUPS0CKFDU DMBTT"SUJDMFT$POUSPMMFS"QQMJDBUJPO$POUSPMMFS EFGJOEFY !BSUJDMFT"SUJDMFT$PMMFDUPSOFX QBSBNTQBSBNT DBMM FOE FOE
DMBTT"SUJDMFT$PMMFDUPS EFGJOJUJBMJ[F QBSBNT !QBSBNTQBSBNT FOE EFGDBMM BSUJDMFT"SUJDMFQVCMJTIFE BSUJDMFTGJMUFSJOHDBMM
BSUJDMFT BSUJDMFTPSEFSJOHDBMM BSUJDMFT BSUJDMFTQBHF QBSBNT<QBHF> QFS FOE "SUJDMFT$POUSPMMFS"SUJDMFT$PMMFDUPS"SUJDMF'JMUFSJOH $PMMFDUPS0CKFDU QSJWBUF BUUS@SFBEFSQBSBNT EFGGJMUFSJOH "SUJDMF'JMUFSJOHOFX QBSBNTQFSNJU DBUFHPSZ FOE
DMBTT"SUJDMF'JMUFSJOH JODMVEF"DUJWF.PEFM.PEFM BUUS@BDDFTTPSDBUFHPSZ WBMJEBUFTDBUFHPSZ TPNFUIJOH@SVMF EFGDBMM SFTPVSDFT SFUVSOSFTPVSDFTJGDBUFHPSZCMBOL
KPJOT DBUFHPSZ NFSHF $BUFHPSZXIFSF OBNFDBUFHPSZ FOE FOE "SUJDMFT$POUSPMMFS"SUJDMFT$PMMFDUPS"SUJDMF'JMUFSJOH $PMMFDUPS0CKFDU
վળ݁Ռ $PMMFDUPS0CKFDU ݕࡧ͕݅૿͑ͯݕࡧ݅Λཧ͢Δ 'JMUFSJOHΫϥεʹίʔυΛ૿͢ 4Λ࣮ݱ ෳͷը໘͔Βผͷ݅ʹΑΔݕࡧ͕͋Δ߹ɺ ͦΕͧΕຖͷը໘༻ͷ$PMMFDUPSɾ'JMUFSJOHΫϥεʹ࣮ *Λ࣮ݱ
7BMVF0CKFDUΛ͏ 2
DMBTT"DDPVOU"QQMJDBUJPO3FDPSE EFGUFM <UFM UFM UFM>KPJO FOE EFGUFM@XJUI@IZQIFO
<UFM UFM UFM>KPJO FOE EFGUFM@XJUI@IZQIFO@DPOWFSUFE@GVMM@XJEUI <UFM UFM UFM>KPJO US ̌̕ FOE FOE ϦϑΝΫλϦϯάલͷίʔυྫ 7BMVF0CKFDU
ݱঢ়ͷ 7BMVF0CKFDU UFMɺ൚༻తʹΘΕΔ༰ͳͷͰɺՕॴʹ·ͱΊ͍ͨ ݱ࣮ੈքͰɺGBYඞཁͩͬͨ
मਖ਼ํ๏ 7BMVF0CKFDU DPODFSOʹΓग़͢ IFMQFSʹΓग़͢ NPEFMʹΓग़͢
IFMQFSΑΓNPEFMʹΓग़͍ͨ͠ 7BMVF0CKFDU DMBTT"DDPVOU"QQMJDBUJPO3FDPSE 7"-*%@5&-@-&/(5)< > WBMJEBUFGPSNBU@UFM@OVNCFS EFGGPSNBU@UFM@OVNCFS UFM<UFM UFM
UFM>KPJO 7"-*%@5&-@-&/(5)JODMVEF UFMMFOHUI FOE FOE
7BMVF0CKFDUΛ͏ 2
DMBTT5FM BUUS@BDDFTTPSOVNCFS EFGJOJUJBMJ[F BSFB@DPEF DJUZ@DPEF EJSFDUPSZ@DPEF !OVNCFS<BSFB@DPEF DJUZ@DPEF
EJSFDUPSZ@DPEF>KPJO FOE FOE ి൪߸ΫϥεΛ࡞ 7BMVF0CKFDU
DMBTT"DDPVOU"QQMJDBUJPO3FDPSE DPNQPTFE@PGUFM DMBTT@OBNF5FM NBQQJOH< <UFM DJUZ@DPEF> <UFM BSFB@DPEF>
<bUFM EJSFDUPSZ@DPEF> > WBMJEBUFGPSNBU@UFM@OVNCFS EFGGPSNBU@UFM@OVNCFS 7"-*%@5&-@-&/(5)JODMVEF UFMOVNCFSMFOHUI FOE FOE 7BMVF0CKFDU DPNQPTFE@PGΛͬͯ7BMVF0CKFDUΛݺͼग़͢
DPNQPTFE@PGUFM DMBTT@OBNF5FM NBQQJOH<<UFM DJUZ@DPEF>ʜ> EFGUFM 5FMOFX DJUZ@DPEFUFM ʜ FOE
7BMVF0CKFDU DPNQPTFE@PGͱ
1PMJDZ0CKFDUΛ͏ 3
DMBTT"SUJDMF"QQMJDBUJPO3FDPSE EFGFEJUJOH EFMFUFE QVCMJTIFE@BUCMBOL ccQVCMJTIFE@BU%BUF5JNFOPX FOE
EFGXBJU@SFWJFX EFMFUFEQVCMJTIFE@BUQVCMJTIFE@BU%BUF5JNFOPX SFWJFXFE FOE EFGQVCMJTIFE FOE ϦϑΝΫλϦϯάલͷίʔυྫ 1PMJDZ0CKFDU
ݱঢ়ͷ 1PMJDZ0CKFDU ϏδωεϩδοΫ͕"3Λܧঝͨ͠Ϋϥεʹॻ͔Ε͍ͯΔ ݟ௨͕͠ѱ͘ͳΔ
1PMJDZ0CKFDUΛ͏ 3
DMBTT"SUJDMF1PMJDZ EFGJOJUJBMJ[F BSUJDMF !BSUJDMFBSUJDMF FOE EFGFEJUJOH !BSUJDMFEFMFUFE
!BSUJDMFQVCMJTIFE@BUCMBOL cc !BSUJDMFQVCMJTIFE@BU%BUF5JNFOPX FOE FOE ෳϨίʔυͷ7BMJEBUJPOΓग़ͤΔ 1PMJDZ0CKFDU
2VFSZ#VJMEFSʹΓग़͢ 4
DMBTT"SUJDMF"QQMJDBUJPO3FDPSE TDPQFTDPQF@CZ@NBOZ@DPOEJUJPO@DPMVNOT QBSBNT \ XIFSF ݅" PS
XIFSF ݅# XIFSFOPU ݅$ ^ FOE ϦϑΝΫλϦϯάલͷίʔυྫ 2VFSZ#VJMEFS
ݱঢ়ͷ 2VFSZ#VJMEFS TDPQFͷݟ௨͕͠ѱ͍ TDPQFͷதͰɺ3FMBUJPO$IBJO͍ͯ͠ΔՕॴΛ ৼΔ͍͝ͱʹॲཧΛ͚͍ͨ ผͷTDPQFʹΓग़͢ͱɺେྔͷTDPQF͕Ͱ͖Δ
2VFSZ#VJMEFSʹΓग़͢ 4
DMBTT"SUJDMF)PHF2VFSZ#VJMEFS EFGJOJUJBMJ[F QBSBNT !QBSBNTQBSBNT FOE EFGDBMM GPS@DPOEJUJPO@B PS
GPS@DPOEJUJPO@C@D FOE FOE "SUJDMF"SUJDMF)PHF2VFSZ#VJMEFS 2VFSZ#VJMEFS QSJWBUF EFGGPS@DPOEJUJPO@B "SUJDMFXIFSF ݅" FOE EFGGPS@DPOEJUJPO@C@D "SUJDMFXIFSF ݅# XIFSFOPU ݅$ FOE ͜͜దͳϝιου໊ʹ͢Δ
DMBTT"SUJDMF"QQMJDBUJPO3FDPSE TDPQFTDPQF@CZ@NBOZ@DPOEJUJPO@DPMVNOT QBSBNT \ "SUJDMF)PHF2VFSZ#VJMEFSOFX QBSBNTQBSBNT DBMM ^ FOE
"SUJDMF"SUJDMF)PHF2VFSZ#VJMEFS 2VFSZ#VJMEFS
7BMJEBUPS$MBTTΛ͏ 5
DMBTT6TFS"QQMJDBUJPO3FDPSE WBMJEBUFLBOB@OBNF@TIPVME@POMZ@LBUBLBOB QSJWBUF EFGLBOB@OBNF@TIPVME@POMZ@LBUBLBOB SFUVSOJGLBOB@OBNFNBUDI ,"5","/"@3&(&9 FSSPSTBEE LBOB@OBNF
͕ෆਖ਼ͳܗࣜͰ͢ FOE FOE ϦϑΝΫλϦϯάલͷίʔυྫ 7BMJEBUPS$MBTT
ݱঢ়ͷ 7BMJEBUPS$MBTT ֤Ϋϥεͷதʹॻ͘ͱɺڞ௨ԽͰ͖ͳ͍ 7BMJEBUJPOࣗମͷॲཧ͕ଟ͍ͱɺ .PEFMͷݟ௨͕͠ѱ͘ͳΔ
7BMJEBUPS$MBTTΛ͏ 5
DMBTT6TFS"QQMJDBUJPO3FDPSE WBMJEBUFTLBOB@OBNF LBUBLBOBUSVF FOE DMBTT,BUBLBOB7BMJEBUPS"DUJWF.PEFM&BDI7BMJEBUPS EFGWBMJEBUF@FBDI SFDPSE BUUSJCVUF WBMVF
SFUVSOJGWBMVFNBUDI ,"5","/"@3&(&9 SFDPSEFSSPSTBEE LBOB@OBNF ͕ෆਖ਼ͳܗࣜͰ͢ FOE FOE ,BUBLBOB7BMJEBUPSΫϥεʹΓग़͢ 7BMJEBUPS$MBTT
DMBTT6TFS"QQMJDBUJPO3FDPSE WBMJEBUFT@XJUI%BUF7BMJEBUPS FOE DMBTT%BUF7BMJEBUPS"DUJWF.PEFM7BMJEBUPS EFGWBMJEBUF SFDPSE EBUF%BUFQBSTF SFDPSEZFBS
SFDPSENPOUI SFDPSEEBZ SFTDVF"SHVNFOU&SSPS SFDPSEFSSPSTBEE CBTF ͕ਖ਼͋͘͠Γ·ͤΜ FOE FOE ෳଐੑͷ7BMJEBUJPOΓग़ͤΔ 7BMJEBUPS$MBTT
ΦϒδΣΫτΛ૿ͯ͠ ΦϒδΣΫτͷذΛݮΒ͢ 6
DMBTT"SUJDMF$SFBUPS FOVNCZ<VTFS BENJO> EFGTBWF QBSBNT CZCZ BSUJDMF"SUJDMFOFX QBSBNT
BSUJDMFTBWF Ϣʔβʔ͕࡞ͨ͠߹ɺطಡऀཧςʔϒϧʹ*/4&35͢Δ BSUJDMFWJFXFSTDSFBUF VTFSBSUJDMFPXOFS JGCZVTFS FOE FOE ϦϑΝΫλϦϯάલͷίʔυྫ ΦϒδΣΫτΛ૿ͯ͠ذΛݮΒ͢
ݱঢ়ͷ ΦϒδΣΫτΛ૿ͯ͠ذΛݮΒ͢ FOVNCZ\VTFS BENJO^ͷ߲͕૿͑ͨ࣌ʹɺ ʮ˓˓ͷ͚࣮࣌ͩߦʯͷذ͕૿͑Δ ͦͷςετ૿͑Δ
ΦϒδΣΫτΛ૿ͯ͠ ΦϒδΣΫτͷذΛݮΒ͢ 6
DMBTT"SUJDMF$SFBUPS FOVNCZ<VTFS BENJO> EFGTBWF QBSBNT CZCZ BSUJDMF"SUJDMFOFX QBSBNT
BSUJDMFTBWF Ϣʔβʔ͕࡞ͨ͠߹ɺطಡऀཧςʔϒϧʹ*/4&35͢Δ BSUJDMFWJFXFSTDSFBUF VTFSBSUJDMFPXOFS JGCZVTFS FOE FOE ϦϑΝΫλϦϯάલͷίʔυྫ ΦϒδΣΫτΛ૿ͯ͠ذΛݮΒ͢ FOVNͷΞΠςϜ͚ͩ ΫϥεΛ࡞Δ
DMBTT"SUJDMF$SFBUPS#Z6TFS EFGTBWF QBSBNT TBWF@CZ@VTFSͷ༰͕ೖΔ FOE FOE 6TFS͕هࣄΛ࡞͢Δ$SFBUPSΫϥε ΦϒδΣΫτΛ૿ͯ͠ذΛݮΒ͢
मਖ਼݁Ռ ΦϒδΣΫτΛ૿ͯ͠ذΛݮΒ͢ ʮ˓˓ͷ͚࣮࣌ͩߦʯͷذ͕૿͑Δ ͦͷςετ૿͑Δ ʮ˓˓ͷ͚࣮࣌ͩߦʯͷ˓˓͝ͱʹΫϥε͕࡞ΒΕΔ ذ͕গͳ͍ͷͰɺςετίʔυͷݮΔ 40-*%ݪଇͷ4ͱ0Λ࣮ݱ
·ͱΊʢ͕࣌ؒ͋Εɾɾɾʣ
w ύλʔϯԽ͢ΔϝϦοτ w ύλʔϯͷదԠલʹνʔϜͰΔ͖͜ͱ w ύλʔϯͷհ ·ͱΊ
ΛఆܕԽͯ͠ଊ͑ΒΕΔ ղܾࡦΛ٬؍తʹൺֱͰ͖Δ ϝϯόʔͷڞ௨ݴޠͱͳΔ ύλʔϯԽͷϝϦοτ ʮJ04ΞϓϦઃܭύλʔϯʯୈষઃܭ͢Δͱ͍͏͜ͱΑΓ
'BU.PEFMͷҙࣝͷ౷Ұ νʔϜͰཧʹ͍ͭͯษڧ ໋໊ϧʔϧͷ࡞ ύλʔϯͷదԠલʹνʔϜͰΔ͖͜ͱ
$PMMFDUPS0CKFDUΛ͏ 7BMVF0CKFDUΛ͏ 1PMJDZ0CKFDUΛ͏ 2VFSZ#VJMEFSΛ͏ 7BMJEBUPS$MBTTΛ͏ ΦϒδΣΫτΛ૿ͯ͠ΦϒδΣΫτͷذΛݮΒ͢ ϦϑΝΫλϦϯάύλʔϯ
w 1BUUFSOTUP3FGBDUPS'BU"DUJWF3FDPSE.PEFMT IUUQTDPEFDMJNBUFDPNCMPHXBZTUPEFDPNQPTFGBUBDUJWFSFDPSE NPEFMT w 3BJMTͷϑΝοτϞσϧʹରॲ͢ΔલʹಡΜͰ΄͍͠هࣄ IUUQTRJJUBDPNLMSJVUTBJUFNTEGDDBG w 3BJMTͰͬͯ͠·͍͕ͪͳอकੑΛԼ͛ͯ͠·͏ίʔυͱͦͷղܾࡦ IUUQTRJJUBDPNTIVOIJLJUBJUFNTGECEDFDGD
w J04ΞϓϦઃܭύλʔϯೖ IUUQTQFBLTDDCPPLTJ04@BSDIJUFDUVSF w 4BOEJ.FU[ΦϒδΣΫτࢦઃܭ࣮ફΨΠυd3VCZͰΘ͔ΔਐԽ͚ͭͮ͠Δॊೈ ͳΞϓϦέʔγϣϯͷҭͯํ w 3PCFSU$.BSUJO$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτΣΞͷߏͱઃܭ ࢀߟจݙ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠