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.4k
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
2
400
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.3k
費用対効果の高いテストコードを書くために意識したこと.pdf
hotatekaoru
3
4.9k
新規プロジェクトのリードエンジニアになるために
hotatekaoru
6
2.7k
リファクタリングチャンスを探せ
hotatekaoru
2
490
Dependabotからの脱却
hotatekaoru
0
470
MobPro2Points
hotatekaoru
0
110
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
220
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.7k
Other Decks in Programming
See All in Programming
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
230
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
530
Serena MCPのすすめ
wadakatu
4
1k
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
2
880
What's new in Spring Modulith?
olivergierke
1
150
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
500
チームの境界をブチ抜いていけ
tokai235
0
180
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
220
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
250
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
430
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
140
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
830
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Building Adaptive Systems
keathley
44
2.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Embracing the Ebb and Flow
colly
88
4.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Balancing Empowerment & Direction
lara
4
690
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
35
6.1k
RailsConf 2023
tenderlove
30
1.2k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
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ୡਓʹֶͿιϑτΣΞͷߏͱઃܭ ࢀߟจݙ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠