$30 off During Our Annual Pro Sale. View Details »

Fat Modelに対処する
6つのリファクタリングパターン

Kaoru Hotate
September 15, 2019

Fat Modelに対処する
6つのリファクタリングパターン

2019/09/15 大阪Ruby会議02 登壇資料 https://regional.rubykaigi.org/osaka02/
Fat Modelに対処する
6つのリファクタリングパターン

Kaoru Hotate

September 15, 2019
Tweet

More Decks by Kaoru Hotate

Other Decks in Programming

Transcript

  1. 'BU.PEFMʹରॲ͢Δ
    ͭͷϦϑΝΫλϦϯάύλʔϯ
    ,BPSV)PUBUF!QVSVOLBPSV
    .FE1FFS3VCZPO3BJMT&OHJOFFS
    େࡕ3VCZ,BJHJ
    PTSL

    View Slide

  2. อཱ֜ ,BPSV)PUBUF

    !QVSVOLBPSV

    ੜ·ΕͯॳΊͯ
    େࡕʹདྷ·ͨ͠ʂ
    ࣗݾ঺հ

    View Slide

  3. 'BU.PEFMͱ͸
    DMBTT"SUJDMF"QQMJDBUJPO3FDPSE
    ͨ͘͞Μͷؔ࿈෇͚
    IBT@NBOZDPNNFOUT
    CFMPOHT@UPDBUFHPSZ

    ͨ͘͞Μͷείʔϓ
    TDPQFQVCMJTIFE \
    ^

    ͨ͘͞Μͷϝιου
    EFGQVCMJTIFE
    FOE
    FOE

    View Slide

  4. "QQMJDBUJPO3FDPSEΛܧঝͨ͠Ϋϥε͕
    ศརϝιουूʹͳΔ
    'BU.PEFMͰਏ͍͜ͱ
    मਖ਼ൣғͷಛఆʹ͕͔͔࣌ؒΔ
    ςετ͕ॻ͖ͮΒ͍
    ͓·͡ͳ͍͕ॻ͔Ε͍ͯΔ

    SVCPDPQEJTBCMF

    View Slide

  5. 'BU.PEFMʹͳͬͯ͠·͏
    ٕज़తͳ໰୊
    ࣌ؒɾ޻਺ͷ໰୊
    'BU.PEFMͰ΋Α͍
    :"(/*ɾ,*44
    'BU$POUSPMMFSʹൺ΂ͨΒ༏ઌ౓͕௿͘ͳΔ
    'BU.PEFM͕ى͖Δɾ์ஔ͞ΕΔཧ༝

    View Slide

  6. 'BU.PEFMʹͳͬͯ͠·͏
    ٕज़తͳ໰୊
    ࣌ؒɾ޻਺ͷ໰୊
    ύλʔϯԽɾٕज़ྗͷ޲্
    'BU.PEFMͰ΋Α͍
    :"(/*ɾ,*44
    'BU$POUSPMMFSʹൺ΂ͨΒ༏ઌ౓͕௿͘ͳΔ
    ϦϑΝΫλϦϯάͷश׳
    'BU.PEFMΛى͜͞ͳ͍ͨΊʹ͸ʁ

    View Slide

  7. ໰୊ΛఆܕԽͯ͠ଊ͑ΒΕΔ
    ղܾࡦΛ٬؍తʹൺֱͰ͖Δ
    ϝϯόʔͷڞ௨ݴޠͱͳΔ
    ύλʔϯԽͷϝϦοτ
    ʮJ04ΞϓϦઃܭύλʔϯʯୈষઃܭ͢Δͱ͍͏͜ͱΑΓ

    View Slide

  8. ϋϯϚʔఝප

    ϋϯϚʔͷ࢖͍ํΛ֮͑ͨΒɺશ෦ఝʹݟ͑Δ
    ύλʔϯԽͷσϝϦοτɾ஫ҙ఺

    View Slide

  9. ۜͷ஄ؙͰ͸ͳ͍
    ଞͷύλʔϯ΋͋Δ͸ͣ
    ࠙਌ձ΍5XJUUFSͰڞ༗ͯ͠΋Β͑Δͱخ͍͠ʂ
    ࠓ೔࿩͢͜ͱ͸ਖ਼ղͰ͸ͳ͍Ͱ͢

    View Slide

  10. ύλʔϯԽͷલʹɾɾɾ

    View Slide

  11. 'BU.PEFM΁ͷҙࣝͷ౷Ұ
    νʔϜͰཧ࿦ʹ͍ͭͯษڧ
    ໋໊ϧʔϧͷ࡞੒
    ύλʔϯԽͷલʹνʔϜͰ΍ͬͨ͜ͱ

    View Slide

  12. όάΛੜΈ΍͍͢ɾςετ͕ॻ͖ͮΒ͍৔߹ͷΈղফ͢Δ
    ʢඞཁ͕ͳ͚Ε͹ϦϑΝΫλϦϯάΛ͠ͳ͍ʣ
    'BU.PEFM΁ͷҙࣝͷ౷Ұ
    طଘͷίʔυʹରͯ͠मਖ਼͢Δ৔߹͸
    ϦϑΝΫλϦϯά΋ҰॹʹͰ͖ͳ͍͔ߟ͑ͯݟੵ΋Γ͢Δ

    View Slide

  13. νʔϜͰཧ࿦ʹ͍ͭͯษڧ
    ΦϒδΣΫτࢦ޲ઃܭʹ͍ͭͯ
    ॻ੶ΛಡΜͰཧղΛਂΊΔ

    View Slide

  14. ॲཧΛ੾Γग़͢͜ͱʹͳΔΫϥεΛ෼ྨ͠ɺ
    ಛఆͷ໋໊ɾωʔϜεϖʔεʹͳΔΑ͏ϧʔϧΛ࡞੒
    ໋໊ϧʔϧͷ࡞੒
    αʔϏεͷํ޲ʹΑͬͯมΘΔՄೳੑ΋͋ΔͨΊɺ
    ԾͰܾΊΔ͘Β͍ͷҐஔ͚ͮ

    View Slide

  15. $PMMFDUPS0CKFDUΛ࢖͏
    7BMVF0CKFDUΛ࢖͏
    1PMJDZ0CKFDUΛ࢖͏
    2VFSZ#VJMEFSΛ࢖͏
    7BMJEBUPS$MBTTΛ࢖͏
    ΦϒδΣΫτΛ૿΍ͯ͠ΦϒδΣΫτ಺ͷ෼ذΛݮΒ͢
    ϦϑΝΫλϦϯάύλʔϯ

    View Slide

  16. $PMMFDUPS0CKFDUΛ࢖͏
    1

    View Slide

  17. ϦϑΝΫλϦϯάલͷίʔυྫʢهࣄͷҰཡը໘ʣ
    $PMMFDUPS0CKFDU
    DMBTT"SUJDMFT$POUSPMMFS"QQMJDBUJPO$POUSPMMFS
    EFGJOEFY
    !BSUJDMFT"SUJDMFQVCMJTIFE


    QBHF QBSBNT<QBHF>
    QFS

    FOE
    FOE
    GJMUFSFE@CZ@DBUFHPSZ QBSBNT<DBUFHPSZ>

    PSEFSFE@CZ QBSBNT<PSEFS>

    View Slide

  18. DMBTT"SUJDMF"QQMJDBUJPO3FDPSE
    CFMPOHT@UPDBUFHPSZ
    TDPQFGJMUFSFE@CZ@DBUFHPSZ DBUFHPSZ
    \
    JGDBUFHPSZ
    KPJOT DBUFHPSZ
    NFSHF $BUFHPSZXIFSF OBNFDBUFHPSZ


    FOE
    ^
    FOE
    ϦϑΝΫλϦϯάલͷίʔυྫʢهࣄΫϥεʣ
    $PMMFDUPS0CKFDU

    View Slide

  19. ݱঢ়ͷ໰୊఺
    $PMMFDUPS0CKFDU
    ݕࡧ৚͕݅૿͑Δͨͼʹ.PEFMʹTDPQFΛ௥Ճ
    ෳ਺ͷը໘͔Βผͷ৚݅ʹΑΔݕࡧ͕͋Δ৔߹ɺ
    ͭͷ.PEFMʹશͯهࡌ͢Δ
    ଠΓ΍͍͢ମ࣭Ͱ͢

    View Slide

  20. $PMMFDUPS0CKFDUΛ࢖͏
    1

    View Slide

  21. ϦϑΝΫλϦϯάલ
    $PMMFDUPS0CKFDU
    "SUJDMFT$POUSPMMFS
    "SUJDMF
    "SUJDMFT$POUSPMMFS
    "SUJDMF'JMUFSJOH
    "SUJDMFT$PMMFDUPS
    "SUJDMF0SEFSJOH
    ϦϑΝΫλϦϯάޙ
    ϑΟϧλϦϯάΛ୲౰ ιʔτΛ୲౰

    View Slide

  22. "SUJDMFT$POUSPMMFS"SUJDMFT$PMMFDUPS"SUJDMF'JMUFSJOH
    $PMMFDUPS0CKFDU
    DMBTT"SUJDMFT$POUSPMMFS"QQMJDBUJPO$POUSPMMFS
    EFGJOEFY
    !BSUJDMFT"SUJDMFT$PMMFDUPSOFX QBSBNTQBSBNT
    DBMM
    FOE
    FOE

    View Slide

  23. 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

    View Slide

  24. 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

    View Slide

  25. վળ݁Ռ
    $PMMFDUPS0CKFDU
    ݕࡧ৚͕݅૿͑ͯ΋ݕࡧ৚݅Λ؅ཧ͢Δ
    'JMUFSJOHΫϥεʹίʔυΛ૿΍͢
    4Λ࣮ݱ
    ෳ਺ͷը໘͔Βผͷ৚݅ʹΑΔݕࡧ͕͋Δ৔߹ɺ
    ͦΕͧΕຖͷը໘༻ͷ$PMMFDUPSɾ'JMUFSJOHΫϥεʹ࣮૷
    *Λ࣮ݱ

    View Slide

  26. 7BMVF0CKFDUΛ࢖͏
    2

    View Slide

  27. DMBTT"DDPVOU"QQMJDBUJPO3FDPSE
    EFGUFM
    KPJO

    FOE

    EFGUFM@XJUI@IZQIFO
    KPJO

    FOE

    EFGUFM@XJUI@IZQIFO@DPOWFSUFE@GVMM@XJEUI
    KPJO
    US ̌̕

    FOE
    FOE
    ϦϑΝΫλϦϯάલͷίʔυྫ
    7BMVF0CKFDU

    View Slide

  28. ݱঢ়ͷ໰୊఺
    7BMVF0CKFDU
    UFM͸ɺ൚༻తʹ࢖ΘΕΔ಺༰ͳͷͰɺՕॴʹ·ͱΊ͍ͨ
    ݱ࣮ੈքͰ͸ɺGBY΋ඞཁͩͬͨ

    View Slide

  29. मਖ਼ํ๏
    7BMVF0CKFDU
    DPODFSOʹ੾Γग़͢
    IFMQFSʹ੾Γग़͢
    NPEFMʹ੾Γग़͢

    View Slide

  30. IFMQFSΑΓ͸NPEFMʹ੾Γग़͍ͨ͠
    7BMVF0CKFDU
    DMBTT"DDPVOU"QQMJDBUJPO3FDPSE
    7"-*%@5&-@-&/(5)< >
    WBMJEBUFGPSNBU@UFM@OVNCFS

    EFGGPSNBU@UFM@OVNCFS
    UFMKPJO

    7"-*%@5&-@-&/(5)JODMVEF UFMMFOHUI
    FOE
    FOE

    View Slide

  31. 7BMVF0CKFDUΛ࢖͏
    2

    View Slide

  32. DMBTT5FM
    BUUS@BDDFTTPSOVNCFS

    EFGJOJUJBMJ[F BSFB@DPEF DJUZ@DPEF EJSFDUPSZ@DPEF

    !OVNCFSKPJO

    FOE
    FOE
    ి࿩൪߸ΫϥεΛ࡞੒
    7BMVF0CKFDU

    View Slide

  33. DMBTT"DDPVOU"QQMJDBUJPO3FDPSE
    DPNQPTFE@PGUFM
    DMBTT@OBNF5FM
    NBQQJOH<
    <UFM DJUZ@DPEF> <UFM BSFB@DPEF>
    >
    WBMJEBUFGPSNBU@UFM@OVNCFS

    EFGGPSNBU@UFM@OVNCFS
    7"-*%@5&-@-&/(5)JODMVEF UFMOVNCFSMFOHUI
    FOE
    FOE
    7BMVF0CKFDU
    DPNQPTFE@PGΛ࢖ͬͯ7BMVF0CKFDUΛݺͼग़͢

    View Slide

  34. DPNQPTFE@PGUFM DMBTT@OBNF5FM NBQQJOH<<UFM DJUZ@DPEF>ʜ>
    EFGUFM
    5FMOFX DJUZ@DPEFUFM ʜ

    FOE
    7BMVF0CKFDU
    DPNQPTFE@PGͱ͸

    View Slide

  35. 1PMJDZ0CKFDUΛ࢖͏
    3

    View Slide

  36. DMBTT"SUJDMF"QQMJDBUJPO3FDPSE
    EFGFEJUJOH
    EFMFUFE
    QVCMJTIFE@BUCMBOL ccQVCMJTIFE@BU%BUF5JNFOPX

    FOE

    EFGXBJU@SFWJFX
    EFMFUFEQVCMJTIFE@BUQVCMJTIFE@BU%BUF5JNFOPX
    SFWJFXFE
    FOE

    EFGQVCMJTIFE
    FOE
    ϦϑΝΫλϦϯάલͷίʔυྫ
    1PMJDZ0CKFDU

    View Slide

  37. ݱঢ়ͷ໰୊఺
    1PMJDZ0CKFDU
    ϏδωεϩδοΫ͕"3Λܧঝͨ͠Ϋϥεʹॻ͔Ε͍ͯΔ
    ݟ௨͕͠ѱ͘ͳΔ

    View Slide

  38. 1PMJDZ0CKFDUΛ࢖͏
    3

    View Slide

  39. DMBTT"SUJDMF1PMJDZ
    EFGJOJUJBMJ[F BSUJDMF

    !BSUJDMFBSUJDMF
    FOE

    EFGFEJUJOH
    !BSUJDMFEFMFUFE
    !BSUJDMFQVCMJTIFE@BUCMBOL cc
    !BSUJDMFQVCMJTIFE@BU%BUF5JNFOPX

    FOE
    FOE
    ෳ਺Ϩίʔυͷ7BMJEBUJPO΋੾Γग़ͤΔ
    1PMJDZ0CKFDU

    View Slide

  40. 2VFSZ#VJMEFSʹ੾Γग़͢
    4

    View Slide

  41. DMBTT"SUJDMF"QQMJDBUJPO3FDPSE
    TDPQFTDPQF@CZ@NBOZ@DPOEJUJPO@DPMVNOT QBSBNT
    \
    XIFSF ৚݅"

    PS
    XIFSF ৚݅#

    XIFSFOPU ৚݅$



    ^
    FOE
    ϦϑΝΫλϦϯάલͷίʔυྫ
    2VFSZ#VJMEFS

    View Slide

  42. ݱঢ়ͷ໰୊఺
    2VFSZ#VJMEFS
    TDPQFͷݟ௨͕͠ѱ͍
    TDPQFͷதͰɺ3FMBUJPO$IBJO͍ͯ͠ΔՕॴΛ
    ৼΔ෣͍͝ͱʹॲཧΛ෼͚͍ͨ

    ผͷTDPQFʹ੾Γग़͢ͱɺେྔͷTDPQF͕Ͱ͖Δ

    View Slide

  43. 2VFSZ#VJMEFSʹ੾Γग़͢
    4

    View Slide

  44. 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
    ͜͜͸ద੾ͳϝιου໊ʹ͢Δ

    View Slide

  45. DMBTT"SUJDMF"QQMJDBUJPO3FDPSE
    TDPQFTDPQF@CZ@NBOZ@DPOEJUJPO@DPMVNOT QBSBNT
    \
    "SUJDMF)PHF2VFSZ#VJMEFSOFX QBSBNTQBSBNT
    DBMM
    ^
    FOE
    "SUJDMF"SUJDMF)PHF2VFSZ#VJMEFS
    2VFSZ#VJMEFS

    View Slide

  46. 7BMJEBUPS$MBTTΛ࢖͏
    5

    View Slide

  47. 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

    View Slide

  48. ݱঢ়ͷ໰୊఺
    7BMJEBUPS$MBTT
    ֤Ϋϥεͷதʹॻ͘ͱɺڞ௨ԽͰ͖ͳ͍
    7BMJEBUJPOࣗମͷॲཧ͕ଟ͍ͱɺ
    .PEFMͷݟ௨͕͠ѱ͘ͳΔ

    View Slide

  49. 7BMJEBUPS$MBTTΛ࢖͏
    5

    View Slide

  50. 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

    View Slide

  51. 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

    View Slide

  52. ΦϒδΣΫτΛ૿΍ͯ͠
    ΦϒδΣΫτ಺ͷ෼ذΛݮΒ͢
    6

    View Slide

  53. DMBTT"SUJDMF$SFBUPS
    FOVNCZ<VTFS BENJO>

    EFGTBWF QBSBNT CZCZ

    BSUJDMF"SUJDMFOFX QBSBNT

    BSUJDMFTBWF
    Ϣʔβʔ͕࡞੒ͨ͠৔߹ɺطಡऀ؅ཧςʔϒϧʹ*/4&35͢Δ
    BSUJDMFWJFXFSTDSFBUF VTFSBSUJDMFPXOFS
    JGCZVTFS
    FOE
    FOE
    ϦϑΝΫλϦϯάલͷίʔυྫ
    ΦϒδΣΫτΛ૿΍ͯ͠෼ذΛݮΒ͢

    View Slide

  54. ݱঢ়ͷ໰୊఺
    ΦϒδΣΫτΛ૿΍ͯ͠෼ذΛݮΒ͢
    FOVNCZ\VTFS BENJO^ͷ߲໨͕૿͑ͨ࣌ʹɺ
    ʮ˓˓ͷ͚࣮࣌ͩߦʯͷ෼ذ͕૿͑Δ
    ͦͷ෼ςετ΋૿͑Δ

    View Slide

  55. ΦϒδΣΫτΛ૿΍ͯ͠
    ΦϒδΣΫτ಺ͷ෼ذΛݮΒ͢
    6

    View Slide

  56. DMBTT"SUJDMF$SFBUPS
    FOVNCZ<VTFS BENJO>

    EFGTBWF QBSBNT CZCZ

    BSUJDMF"SUJDMFOFX QBSBNT

    BSUJDMFTBWF
    Ϣʔβʔ͕࡞੒ͨ͠৔߹ɺطಡऀ؅ཧςʔϒϧʹ*/4&35͢Δ
    BSUJDMFWJFXFSTDSFBUF VTFSBSUJDMFPXOFS
    JGCZVTFS
    FOE
    FOE
    ϦϑΝΫλϦϯάલͷίʔυྫ
    ΦϒδΣΫτΛ૿΍ͯ͠෼ذΛݮΒ͢
    FOVNͷΞΠςϜ਺͚ͩ
    ΫϥεΛ࡞Δ

    View Slide

  57. DMBTT"SUJDMF$SFBUPS#Z6TFS
    EFGTBWF QBSBNT

    TBWF@CZ@VTFSͷ಺༰͕ೖΔ
    FOE
    FOE
    6TFS͕هࣄΛ࡞੒͢Δ$SFBUPSΫϥε
    ΦϒδΣΫτΛ૿΍ͯ͠෼ذΛݮΒ͢

    View Slide

  58. मਖ਼݁Ռ
    ΦϒδΣΫτΛ૿΍ͯ͠෼ذΛݮΒ͢
    ʮ˓˓ͷ͚࣮࣌ͩߦʯͷ෼ذ͕૿͑Δ
    ͦͷ෼ςετ΋૿͑Δ

    ʮ˓˓ͷ͚࣮࣌ͩߦʯͷ˓˓͝ͱʹΫϥε͕࡞ΒΕΔ
    ෼ذ͕গͳ͍ͷͰɺςετίʔυͷ਺΋ݮΔ
    40-*%ݪଇͷ4ͱ0Λ࣮ݱ

    View Slide

  59. ·ͱΊʢ͕࣌ؒ͋Ε͹ɾɾɾʣ

    View Slide

  60. w ύλʔϯԽ͢ΔϝϦοτ
    w ύλʔϯͷదԠલʹνʔϜͰ΍Δ΂͖͜ͱ
    w ύλʔϯͷ঺հ
    ·ͱΊ

    View Slide

  61. ໰୊ΛఆܕԽͯ͠ଊ͑ΒΕΔ
    ղܾࡦΛ٬؍తʹൺֱͰ͖Δ
    ϝϯόʔͷڞ௨ݴޠͱͳΔ
    ύλʔϯԽͷϝϦοτ
    ʮJ04ΞϓϦઃܭύλʔϯʯୈষઃܭ͢Δͱ͍͏͜ͱΑΓ

    View Slide

  62. 'BU.PEFM΁ͷҙࣝͷ౷Ұ
    νʔϜͰཧ࿦ʹ͍ͭͯษڧ
    ໋໊ϧʔϧͷ࡞੒
    ύλʔϯͷదԠલʹνʔϜͰ΍Δ΂͖͜ͱ

    View Slide

  63. $PMMFDUPS0CKFDUΛ࢖͏
    7BMVF0CKFDUΛ࢖͏
    1PMJDZ0CKFDUΛ࢖͏
    2VFSZ#VJMEFSΛ࢖͏
    7BMJEBUPS$MBTTΛ࢖͏
    ΦϒδΣΫτΛ૿΍ͯ͠ΦϒδΣΫτ಺ͷ෼ذΛݮΒ͢
    ϦϑΝΫλϦϯάύλʔϯ

    View Slide

  64. 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ୡਓʹֶͿιϑτ΢ΣΞͷߏ଄ͱઃܭ
    ࢀߟจݙ

    View Slide

  65. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide