ScalazでウェブアプリもCHA-LA HEAD-CHA-LA

ScalazでウェブアプリもCHA-LA HEAD-CHA-LA

2016/12/02に開催された「Better Javaの一歩先へ! Scalaリファクタリング入門」で使用された発表資料です。

4e1f5a8e5bdb0fffe48d0224144faf1f?s=128

Tatsuya Iwamatsu

December 02, 2016
Tweet

Transcript

  1.  גࣜձࣾϏζϦʔν )3.04ࣄۀ෦ؠদཽ໵

  2. ࣗݾ঺հ ؠদཽ໵ גࣜձࣾϏζϦʔν)3.04ࣄۀ෦ αʔόαΠυΤϯδχΞ ೥݄৽ଔೖࣾ தֶ೥ͷՆٳΈ͸υϥΰϯϘʔϧ;%7%#PYͰ શ࿩ શ࿩ ࢹௌ͢Δࣄʹඅ΍͍ͯ͠·ͨ͠ ීஈ͸"UPNͰ4DBMBΛॻ͘ࣄʹΑΓ

    ઓಆྗΛߴΊ͍ͯ·͢
  3. ࣗݾ঺հ ࠓ೔͸ຊۀͷ࿩͕Ͱ͖Δ ͪΐͬͱલʹνʔϜͰͷ$IBU0QTͷऔΓ૊ΈΛ঺հͯ͠·ͨ͠ IUUQTTQFBLFSEFDLDPNJXBNBUTVXPGBMTFDIBUPQTKJOCVEFTVHPDIBTIPVLVEBTBJ

  4. )3.04ͷ͝঺հ ਓ޻஌ೳºϏοάσʔλͰاۀܦӦΛม͑Δ

  5. )3.04࠾༻؅ཧ ແବΛͳ͘͠ɺޮ཰Λ্͛Δ ٻਓ࡞੒ Ԡืऀ؅ཧ ίϛϡχέʔγϣϯ ਐḿ؅ཧ ΞφϦςΟΫε

  6. )3.04࠾༻؅ཧ ٕज़ελοΫ ٻਓ࡞੒ Ԡืऀ؅ཧ ίϛϡχέʔγϣϯ ਐḿ؅ཧ ΞφϦςΟΫε 4DBMB 1ZUIPO 3FBDU

    4MJDL 4DBMB[ /HJOY &MBTUJDTFBSDI 3FEJT "OTJCMF -BNCEB 4MBDL $IBU0QT  .BDLFSFM 'MVFOUE (JU)VC $POqVFODF 5ZQFTDSJQU 1MBZGSBNFXPSL "OHVMBS 4DBMJLF+%#$ "LLB .Z42- .FNDBDIFE %PDLFS $MPVE'SPOU +FOLJOT /FX3FMJD 4FOUSZ ,JCBOB +*3" (PPHMF%SJWF
  7. )3.04࠾༻؅ཧ ͝ڵຯ͕͋Δํ͸ͥͻʂ ٻਓ࡞੒ Ԡืऀ؅ཧ ίϛϡχέʔγϣϯ ਐḿ؅ཧ ΞφϦςΟΫε 8F`SF)JSJOH

  8. ๭4DBMB[ίϛολʔ͕ʜ

  9. ͜ͷࢿྉͷλʔήοτ ɾ4DBMB͸ͳΜͱͳ͘࢖͑Δਓ ɾ΋͏ͪΐͬͱ4DBMBΒ͍͠هड़͕͍ͨ͠ਓ ɾ4DBMB[͸Α͘෼͔Βͳ͍ਓ ɾ%#;͸Α͘෼͔Δਓ

  10. 4DBMB[ͱ͸ 4DBMBͰؔ਺ܕϓϩάϥϛϯάΛ Ͱ͖ΔΑ͏ʹ͢ΔͨΊͷϥΠϒϥϦ 4DBMBΛΑΓศརʹѻ͑ΔΑ͏ʹ͢Δػೳ͕ଟ਺ؚ·Ε͍ͯΔͷͰɺ ؆୯ͳ෦෼Λ࢖͏͚ͩͰ΋ΑΓศརͳهड़͕Ͱ͖ΔΑ͏ʹͳΓ·͢

  11. ࠓ೔ͷ໨త ΢ΣϒΞϓϦΛ࡞Δͱ͖ͷ 4DBMBΒ͍࣮͠૷Λ஌Δ ͳͥ4DBMB[͕࢖ΘΕΔͷ͔ Ͳ͏΍ͬͯ࢖͑͹ศརͳͷ͔஌Δ ˞ʮവ਺͕ʯͱ͔ʮݍ࿦ʯͱ͔ʮ਺ֶతʹʯͱ͍ͬͨ࿩͸ׂѪ ɹڍಈ͔Βཧղ͍͖ͯ͠·͠ΐ͏ ʊਓਓਓਓʊ ʼɹमߦɹʻ ʉ:?:?:ʉ

    ʊਓਓਓਓਓʊ ʼɹߴॏྗɹʻ ʉ:?:?:?:ʉ ʊਓਓਓਓਓਓਓʊ ʼɹṫࢮʹͳΔɹʻ ʉ:?:?:?:?:?:ʉ %#;ΛབྷΊͳ͕Β໘ന͓͔֮͑͘͠·͠ΐ͏ʂ
  12. ຎᨈෆࢥٞؔ਺ܕΞυϕϯνϟʔ ແҹ࣌୅ͷ஥ؒͨͪΛ͓ܰ͘͞Β͍ 0QUJPO $PMMFDUJPO 'VUVSF &JUIFS

  13. ແҹ࣌୅ͷ஥ؒͨͪ 0QUJPO ʮଘࡏ͠ͳ͍͔΋͠Εͳ͍ʯ͸ࢸΔॴͰൃੜ

  14. ແҹ࣌୅ͷ஥ؒͨͪ DBTFDMBTT-PHJO  FNBJM4USJOH  QBTTXPSE4USJOH  MPHJO'PSN0QU0QUJPO<-PHJO> MPHJO'PSN0QUNBUDI\ DBTF4PNF

    MPHJO'PSN  ϩάΠϯॲཧ DBTF@ 501ϖʔδʹ໭͢ ^ ΫϥΠΞϯτ͔Βͷύϥϝʔλ͕ଘࡏ͠ͳ͍͔΋
  15. ແҹ࣌୅ͷ஥ؒͨͪ DBTFDMBTT6TFS OBNF4USJOH  EFGpOE6TFS FNBJM4USJOH QBTTXPSE4USJOH 0QUJPO<6TFS> Ϣʔβ͕ଘࡏ͢Δ৔߹͸໊લΛऔಘɺଘࡏ͠ͳ͍৔߹͸Կ΋͠ͳ͍ WBMVTFS/BNF0QUpOE6TFS

    FNBJM QBTTXPSE NBQ @OBNF %#͔Βऔಘͨ͠஋͕ଘࡏ͠ͳ͍͔΋
  16. ແҹ࣌୅ͷ஥ؒͨͪ $PMMFDUJPO ͍͍ͩͨίϨΫγϣϯͷૢ࡞ʹਚ͖Δ

  17. ແҹ࣌୅ͷ஥ؒͨͪ 3%#͔Βऔಘ͢Ε͹େମ$PMMFDUJPO࢖༻ස౓ߴ ίϝϯτҰཡΛऔಘ EFGpOE$PNNFOUT 4FR<$PNNFOU> ϢʔβҰཡΛऔಘ EFGpOE6TFST 4FR<6TFS> ࢦఆͨ͠ϢʔβΛऔಘ EFGpOE6TFS

    VTFS*E-POH 0QUJPO<6TFS>\ TRMlTFMFDU GSPNVTFSMJNJUXIFSFVTFS*EVTSF*Ez IFBE0QUJPO ^
  18. ແҹ࣌୅ͷ஥ؒͨͪ ͋ΒΏΔૢ࡞͕͜ͳͤΔٕͷσύʔτ 4FR       

    HSPVQ#Z @ ح਺ɺۮ਺Ͱάϧʔϓ෼͚ qBU.BQ\ϦετΛ৞ΈࠐΈ DBTF @ MJTU MJTUNBQ @UP4USJOH จࣈྻͷϦετ΁ม׵ ^ NL4USJOH <  l>z ϦετΛจࣈྻ݁߹ <>
  19. ແҹ࣌୅ͷ஥ؒͨͪ 'VUVSF ॲཧΛޙճ͠ɻΧδϡΞϧʹϚϧνεϨουॲཧ

  20. ແҹ࣌୅ͷ஥ؒͨͪ ൺֱత࣌ؒͷ͔͔Δॲཧ͸/PO#MPDLJOHʹ ͜ͷॲཧ͸ผεϨουͰ࣮ߦ͞ΕΔ WBMVTFS''VUVSF<0QUJPO<6TFS>> SECpOE6TFS#Z/BNF lؠদཽ໵z  WBMMPHT''VUVSF<4FR<-PH>> LWTHFU-PHT 

    ࣮ߦॲཧ݁ՌΛ଴ͨͳ͍ MPHT'GPSFBDI MPHQSJOUMO MPH  ࣮ߦॲཧ݁ՌΛ଴ͭ WBMVTFS/BNF0QU0QUJPO<4USJOH> "XBJUSFTVMU VTFS' %VSBUJPO*OG NBQ @VTFS/BNF
  21. ແҹ࣌୅ͷ஥ؒͨͪ ੒ޭ΋͘͠͸ࣦഊͷঢ়ଶΛ࣋ͭ͜ͱ͕Ͱ͖Δ 'VUVSFBQQMZ 'VUVSFTVDDFTTGVM NBQ @  WBMG'VUVSF<*OU>'VUVSFTVDDFTTGVM  

    GBJMFE͕࣋ͯΔͷ͸5ISPXBCMFͷΈ WBMG'VUVSF<*OU>'VUVSFGBJMFE OFX&SSPS  GGPSFBDI FQSJOUMO F QSJOUMO͸࣮ߦ͞Εͳ͍ GPO$PNQMFUF\ DBTF4VDDFTT O ͪ͜Β͸࣮ߦ͞Εͳ͍ DBTF'BJMVSF F ͪ͜Β͸࣮ߦ͞ΕΔ ^
  22. ແҹ࣌୅ͷ஥ؒͨͪ &JUIFS ೋ௨Γͷ஋Λ࣋ͯΔ

  23. ແҹ࣌୅ͷ஥ؒͨͪ TFBMFEUSBJUͰΤϥʔΛ༻ҙ͢Δͱ໢ཏੑ͕ߴ·Δ Ϣʔβؔ܎Ͱى͜Γ͏ΔΤϥʔΛఆٛ TFBMFEUSBJU6TFS&SSPS\WBMVTFS*E-POH^ DBTFDMBTT6TFS/PU'PVOE VTFS*E-POH FYUFOET6TFS&SSPS DBTFDMBTT6TFS5PP:PVOH VTFS*E-POH FYUFOET6TFS&SSPS

    DBTFDMBTT6TFS5PP0ME VTFS*E-POH FYUFOET6TFS&SSPS
  24. ແҹ࣌୅ͷ஥ؒͨͪ TFBMFEUSBJUͰΤϥʔΛ༻ҙ͢Δͱ໢ཏੑ͕ߴ·Δ ϢʔβʹԿ͔͢Δϝιου EFGYYY6TFS VTFS*E-POH &JUIFS<6TFS&SSPS 3FTVMU> 8BSOJOHͰߟྀ࿙Εʹؾ͚ͮΔ YYY6TFSGPME \

    DBTF6TFS5PP:PVOH VTFS*E   DBTF6TFS5PP0ME VTFS*E   ^  SFTVMU 
  25. ͦΕͧΕ͸ศར͕ͩʜ ͜͏͍͏ͱ͖Ͳ͏͢Δʁ ᶃ4FR<0QUJPO<*OU>>Λ4FR<*OU>ʹ͍ͨ͠ʂ ᶄ0QUJPO<4FR<*OU>>Λ4FR<*OU>ʹ͍ͨ͠ʂ ᶆ'VUVSF<4FR<*OU>>ͱ4FR<'VUVSF<*OU>>Λ߹Θͤͯ ɹ'VUVSF<4FR<*OU>>ʹ͍ͨ͠ʂ ᶅ0QUJPO<*OU>ͱ0QUJPO<*OU>Λ଍͠߹Θͤͯ ɹ0QUJPO<*OU>ʹ͍ͨ͠ʂ ᶇ&JUIFS<&SSPS *OU>ͱ&JUIFS<&SSPS

    *OU>Λ଍͠߹Θͤͯ ɹ&JUIFS<&SSPS *OU>ʹ͍ͨ͠ʂ ᶇ'VUVSF<&JUIFS<&SSPS *OU>>ͱ'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹΛ߹Θͤͯ'VUVSF<&JUIFS<&SSPS *OU>>ʹ͍ͨ͠ʂ
  26. ͦΕͧΕ͸ศར͕ͩʜ ͜͏͍͏ͱ͖Ͳ͏͢Δʁ ᶃ4FR<0QUJPO<*OU>>Λ4FR<*OU>ʹ͍ͨ͠ʂ ᶄ0QUJPO<4FR<*OU>>Λ4FR<*OU>ʹ͍ͨ͠ʂ ᶆ'VUVSF<4FR<*OU>>ͱ4FR<'VUVSF<*OU>>Λ߹Θͤͯ ɹ'VUVSF<4FR<*OU>>ʹ͍ͨ͠ʂ ᶅ0QUJPO<*OU>ͱ0QUJPO<*OU>Λ଍͠߹Θͤͯ ɹ0QUJPO<*OU>ʹ͍ͨ͠ʂ ᶇ&JUIFS<&SSPS *OU>ͱ&JUIFS<&SSPS

    *OU>Λ଍͠߹Θͤͯ ɹ&JUIFS<&SSPS *OU>ʹ͍ͨ͠ʂ ᶇ'VUVSF<&JUIFS<&SSPS *OU>>ͱ'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹΛ߹Θͤͯ'VUVSF<&JUIFS<&SSPS *OU>>ʹ͍ͨ͠ʂ ఱԼҰܕήʔձ ఱԼҰܕΛ߹ΘͤΔήʔϜձ
  27. ఱԼҰܕήʔձ ᶃ4FR<0QUJPO<*OU>>4FR<*OU> WBMB4FR<0QUJPO<*OU>>4FR 0QUJPO  0QUJPO   WBMC4FR<*OU>BqBUUFO ୈҰճઓ

  28. ఱԼҰܕήʔձ ୈೋճઓ ᶄ0QUJPO<4FR<*OU>>4FR<*OU> WBMB4FR<0QUJPO<*OU>>0QUJPO 4FR     WBMC4FR<*OU>BUP4FRqBUUFO

    0QUJPO͸ཁૉ਺dͷ$PMMFDUJPOͱଊ͑Δͱѻ͍͸؆୯˞
  29. ఱԼҰܕήʔձ ᶅ0QUJPO<*OU> 0QUJPO<*OU> ɹ0QUJPO<*OU> WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO  

    WBMD0QUJPO<*OU>BqBU.BQ B7BMVFCNBQ @ B7BMVF ୈࡾճઓ
  30. ఱԼҰܕήʔձ ୈ࢛ճઓ ᶆ&JUIFS<&SSPS *OU> &JUIFS<&SSPS *OU> ɹ&JUIFS<&SSPS *OU> WBMB&JUIFS<&SSPS *OU>3JHIU

      WBMC&JUIFS<&SSPS *OU>3JHIU   WBMD&JUIFS<&SSPS *OU>BSJHIUqBU.BQ\B7BMVF CSJHIUNBQ @ B7BMVF  ^ SJHIU͸TDBMBͰෆཁʹͳΔ༧ఆ
  31. ఱԼҰܕήʔձ ᶇ'VUVSF<4FR<*OU>> 4FR<'VUVSF<*OU>>'VUVSF<4FR<*OU>> WBMB'VUVSF<4FR<*OU>>'VUVSFTVDDFTTGVM 4FR     WBMC4FR<'VUVSF<*OU>>4FR

    'VUVSFTVDDFTTGVM   WBMD'VUVSF<4FR<*OU>>'VUVSFTFRVFODF B qBU.BQ\B4FR CNBQ B4FR @  ^ ୈޒճઓ 'VUVSFTFRVFODF͕ศར
  32. WBMB'VUVSF<&JUIFS<&SSPS *OU>>'VUVSFTVDDFTTGVM 3JHIU   WBMC'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> 'VUVSFTVDDFTTGVM 3JHIU 'VUVSFTVDDFTTGVM

     ఱԼҰܕήʔձ ᶈ'VUVSF<&JUIFS<&SSPS *OU>> 'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹ'VUVSF<&JUIFS<&SSPS *OU>> ܾউઓ ͓·͚
  33. WBMD'VUVSF<&JUIFS<&SSPS *OU>>BqBU.BQ\B&JUIFS CqBU.BQ\C&JUIFS 'VUVSFTFRVFODF C&JUIFSSJHIUUP4FR NBQ\C4FR B&JUIFSSJHIUqBU.BQ\B7BMVF C4FRIFBE0QUJPOUP3JHIU OFX&SSPS SJHIUNBQ

    @ B7BMVF  ^ ^ ^ ^ ఱԼҰܕήʔձ ᶈ'VUVSF<&JUIFS<&SSPS *OU>> 'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹ'VUVSF<&JUIFS<&SSPS *OU>> ܾউઓ ͓·͚
  34. ࣮ࡍͷ։ൃͱͳΔͱʜ ᶅᶆͷΑ͏ͳύλʔϯ͕ొ৔͕ͪ͠ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   WBMD0QUJPO<*OU>0QUJPO 

     WBME0QUJPO<*OU>0QUJPO   WBMF0QUJPO<*OU>0QUJPO   BqBU.BQ\B7BMVF CqBU.BQ\C7BMVF DqBU.BQ\D7BMVF EqBU.BQ\E7BMVF FNBQ B7BMVF C7BMVF D7BMVF E7BMVF @  ^ ^ ^ ^ DBTFDMBTT6TFS JE-POH OBNF4USJOH  EFGpOE6TFS#Z/BNF OBNF4USJOH 'VUVSF<6TFS>3%#͔Βऔಘ EFGHFU6TFS*NBHF6SM JE-POH 'VUVSF<4USJOH>֎෦αΠτ͔Βऔಘ EFGpOE6TFS-PHT JE-POH ,FZ7BMVF4UPSF͔Βऔಘ pOE6TFS#Z/BNF ؠদཽ໵ qBU.BQ\VTFS HFU6TFS*NBHF6SM VTFSJE qBU.BQ\JNBHF6SM pOE6TFS-PHT VTFSJE NBQ\MPHT  औಘͨ͠஋Λ߹੒ ^ ^ ^ ωετ஍ࠈ
  35. ͜͜Ͱओਓެొ৔ ΦοεʂΦϥʜ

  36. ͜͜Ͱओਓެొ৔ ʊਓਓਓਓʊ ʼɹGPSࣜɹʻ ʉ:?:?:ʉ ΦοεʂΦϥʜ

  37. ΦοεʂΦϥGPSࣜʂ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   WBMD0QUJPO<*OU>0QUJPO  

    WBME0QUJPO<*OU>0QUJPO   WBMF0QUJPO<*OU>0QUJPO   BqBU.BQ\B7BMVF CqBU.BQ\C7BMVF DqBU.BQ\D7BMVF EqBU.BQ\E7BMVF FNBQ B7BMVF C7BMVF D7BMVF E7BMVF @  ^ ^ ^ ^
  38. ΦοεʂΦϥGPSࣜʂ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   WBMD0QUJPO<*OU>0QUJPO  

    WBME0QUJPO<*OU>0QUJPO   WBMF0QUJPO<*OU>0QUJPO   GPS\ B7BMVFB C7BMVFC D7BMVFD E7BMVFE F7BMVFF ^ZJFME\ B7BMVF C7BMVF D7BMVF E7BMVF F7BMVF ^
  39. ΦοεʂΦϥGPSࣜʂ DBTFDMBTT6TFS JE-POH OBNF4USJOH  EFGpOE6TFS#Z/BNF OBNF4USJOH 'VUVSF<6TFS>3%#͔Βऔಘ EFGHFU6TFS*NBHF6SM JE-POH

    'VUVSF<4USJOH>֎෦αΠτ͔Βऔಘ EFGpOE6TFS-PHT JE-POH ,FZ7BMVF4UPSF͔Βऔಘ pOE6TFS#Z/BNF ؠদཽ໵ qBU.BQ\VTFS HFU6TFS*NBHF6SM VTFSJE qBU.BQ\JNBHF6SM pOE6TFS-PHT VTFSJE NBQ\MPHT  औಘͨ͠஋Λ߹੒ ^ ^ ^
  40. ΦοεʂΦϥGPSࣜʂ DBTFDMBTT6TFS JE-POH OBNF4USJOH  EFGpOE6TFS#Z/BNF OBNF4USJOH 'VUVSF<6TFS>3%#͔Βऔಘ EFGHFU6TFS*NBHF6SM JE-POH

    'VUVSF<4USJOH>֎෦αΠτ͔Βऔಘ EFGpOE6TFS-PHT JE-POH ,FZ7BMVF4UPSF͔Βऔಘ GPS\ VTFSpOE6TFS#Z/BNF ؠদཽ໵  JNBHF6SMHFU6TFS*NBHF6SM VTFSJE  MPHTpOE6TFS-PHT VTFSJE  ^ZJFME औಘͨ͠஋Λ߹੒
  41. ΦοεʂΦϥGPSࣜʂ ៉ྷʹ੔ཧͰ͖·ͨ͠

  42. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ ͭͷཁૉͰͰ͖͍ͯΔʂ NBQ qBU.BQ XJUI'JMUFS GPSFBDI

  43. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ NBQ WBMB0QUJPO<*OU>0QUJPO   GPS\ B7BMVFB ^ZJFMEB7BMVF 

  44. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ NBQ WBMB0QUJPO<*OU>0QUJPO   BNBQ\B7BMVFB7BMVF ^

  45. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ qBU.BQ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   GPS\ B7BMVFB

    C7BMVFC ^ZJFMEB7BMVF C7BMVF
  46. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ qBU.BQ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   BqBU.BQ\B7BMVF CNBQ\C7BMVF

    B7BMVF C7BMVF ^ ^
  47. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ XJUI'JMUFS WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   GPS\ B7BMVFBJGB7BMVF

    C7BMVFC ^ZJFMEB7BMVF C7BMVF
  48. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ XJUI'JMUFS WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   BqBU.BQ\B7BMVF CXJUI'JMUFS

    @B7BMVF NBQ\C7BMVF B7BMVF C7BMVF ^ ^
  49. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ GPSFBDI WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   GPS\ B7BMVFB

    C7BMVFC ^QSJOUMO B7BMVF C7BMVF
  50. GPSࣜ͸ԿͰͰ͖͍ͯΔͷ͔ GPSFBDI WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   BGPSFBDI\B7BMVF CGPSFBDI\C7BMVF

    QSJOUMO B7BMVF C7BMVF  ^ ^
  51. GPSࣜΛ׆༻͠Α͏ ϩδοΫͷݟ௨͕͠ྑ͘ͳͬͨʂ 3%#ʹࢦఆ໊ͨ͠લͷϢʔβ͕ଘࡏ͢Δ৔߹ ,74͔ΒίϝϯτҰཡΛऔಘ͠֎෦αΠτʹ౤ߘ WBMSFTVMU'VUVSF<6OJU>GPS\ VTFSSECpOE6TFS#Z/BNF VTFS/BNF JGVTFSOPO&NQUZ DPNNFOUTLWTHFU$PNNFOUT VTFSVTFS*E

     BVUI3FTVMUXTBVUIFOUJDBUF VTFSVTFS*E JGBVUI3FTVMUJT0L QPTU3FTVMUXTQPTU$PNNFOUT DPNNFOUT JGQPTU3FTVMUJT0L ^ZJFME
  52. GPSࣜΛ׆༻͠Α͏ ϩδοΫͷݟ௨͕͠ྑ͘ͳͬͨʂ 3%#ʹࢦఆ໊ͨ͠લͷϢʔβ͕ଘࡏ͢Δ৔߹ ,74͔ΒίϝϯτҰཡΛऔಘ͠֎෦αΠτʹ౤ߘ WBMSFTVMU'VUVSF<6OJU>GPS\ VTFSSECpOE6TFS#Z/BNF VTFS/BNF JGVTFSOPO&NQUZ DPNNFOUTLWTHFU$PNNFOUT VTFSVTFS*E

     BVUI3FTVMUXTBVUIFOUJDBUF VTFSVTFS*E JGBVUI3FTVMUJT0L QPTU3FTVMUXTQPTU$PNNFOUT DPNNFOUT JGQPTU3FTVMUJT0L ^ZJFME ੈք͕ฏ࿨ʹͳͬͨʂ
  53. ͔͠͠4DBMBʹ͸໰୊఺͕ʂ ଓ͖͸͜ͷޙͰ ͳ͡࠷ ͍Όऴ ͧɹճ Α ଓͪ΋ ͬ͘͏ Μͱ ͩ͡

    Ό͚
  54. aऻདྷ %JTKVODUJPOͱݺͼ·͢ ࠶ͼةػ͕๚Εͨʂ ΰͨؔ ϛͬ਺ Ίͨྗ ɹͷ ɹ  ɹ͔

    ʜ ʜ ʜ
  55. aͱ͸ 4DBMB[ͷ&JUIFS aʜϋΠϑϯ͕ӈ3JHIU aʜϋΠϑϯ͕ࠨ-FGU JNQPSUTDBMB[\a a a^ WBMF&SSPSa*OUa 

  56. aͱ͸ 4DBMB[ͷ&JUIFS aʜϋΠϑϯ͕ӈ3JHIU aʜϋΠϑϯ͕ࠨ-FGU JNQPSUTDBMB[\a a a^ WBMF&SSPSa*OUa  &JUIFS͕άάΓͮΒ͘ͳͬͨ

    ͚ͩ͡Όͳ͍ͷʁ
  57. aͷ౗͠ํʢ࢖͍ํʣ JNQPSUTDBMB[\a a a^ <-FGUͷܕ>a<3JHIUͷܕ> WBMES&SSPSa*OUa   WBMEM&SSPSa*OUa OFX&SSPS

     ͍͖ͳΓNBQ qBU.BQ͕࢖͑Δʂ 3JHIU༏ઌ  WBMSFVTMUGPS\ ES7BMVFES EM7BMVFEM ^ZJFMEES7BMVF EM7BMVF
  58. aͷ౗͠ํʢ࢖͍ํʣ JNQPSUTDBMB[a TUBUJDϝιου͔ΒͰ΋࡞ΕΔ WBMES&SSPSa*OUaSJHIU   WBMEM&SSPSa*OUaMFGU OFX&SSPS  3JHIUʹͳΔ

    WBMES&SSPSa*OUEMPS&MTF\ QSJOUMO l&SSPSz  aSJHIU   ^
  59. aͷ౗͠ํʢ࢖͍ํʣ ൓స͢Δ WBMES*OUa&SSPSdES 0QUJPOʹͳΔ 4DBMB͔Β&JUIFSʹ΋௥Ճ༧ఆ  WBMPQU0QUJPO<*OU>EMUP0QUJPO

  60. aͷ౗͠ํʢ࢖͍ํʣ ൓స͢Δ WBMES*OUa&SSPSdES 0QUJPOʹͳΔ 4DBMB͔Β&JUIFSʹ΋௥Ճ༧ఆ  WBMPQU0QUJPO<*OU>EMUP0QUJPO ͳΜ͔ศརͦ͏ʂ

  61. ͳΜͱ͔উͯΔ ࢖͑Δ ͚Ͳʜ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH> 

    WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF
  62. ͓෼͔Γ͍͚ͨͩͨͩΖ͏͔ʜ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH> 

    WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF
  63. ͳΜ͔GPS͕ࣜΩϞ͍ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH> 

    WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF 'VUVSF &JUIFS΍&JUIFS 0QUJPOͰ΋ಉ͡ࣄʹͳΓ·͢
  64. &JUIFS5Λ࢖͑͹ʜ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH> 

    WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF
  65. &JUIFS5Λ࢖͑͹ʜ JNQPSUTDBMB[TUETDBMB'VUVSFGVUVSF*OTUBODF JNQPSUTDBMB[\&JUIFS5 a^ DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH> 

    WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS*E&5&JUIFS5<'VUVSF &SSPS -POH>&JUIFS5 VTFS*E&'  WBMVTFS/BNF&5&JUIFS5<'VUVSF &SSPS 4USJOH>&JUIFS5 VTFS/BNF&'  WBMVTFS&5&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5 VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF
  66. &JUIFS5Λ࢖͑͹ʜ JNQPSUTDBMB[TUETDBMB'VUVSFGVUVSF*OTUBODF JNQPSUTDBMB[\&JUIFS5 a^ DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH> 

    WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS*E&5&JUIFS5<'VUVSF &SSPS -POH>&JUIFS5 VTFS*E&'  WBMVTFS/BNF&5&JUIFS5<'VUVSF &SSPS 4USJOH>&JUIFS5 VTFS/BNF&'  WBMVTFS&5&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5 VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF ҰͭͷGPSࣜͰ·ͱ·ͬͨʂ
  67. &JUIFS5Λ࢖͏ͨΊʹ EFGNBQ<$> G#$ JNQMJDJU''VODUPS<'> &JUIFS5<' " $> &JUIFS5 'NBQ SVO

    @NBQ G 'VODUPS<'VUVSF>Λ༻ҙ͠Α͏ʂ JNQMJDJUQBSBNFUFSΛ༻ҙ͠ͳ͍ͱ͍͚ͳ͍
  68. ࣮͸ʜ 'VODUPS<'VUVSF>͸طʹΠϯϙʔτ͞Ε͍ͯͨ JNQPSUTDBMB[TUETDBMB'VUVSFGVUVSF*OTUBODF ࡞ͬͯΈΑ͏ʂ

  69. 'VODUPSΛ࣮૷ ࣮͸NBQΛ࣮૷͢Δ͚ͩʂ JNQPSUTDBMB[\a &JUIFS5 'VODUPS^  DMBTT'VUVSF'VODUPSFYUFOET'VODUPS<'VUVSF>\ EFGNBQ<" #> GB'VUVSF<">

    G"# 'VUVSF<#>GBNBQ G  ^ JNQMJDJUWBMGVODUPSOFX'VUVSF'VODUPS WBMF&JUIFS5 'VUVSFTVDDFTTGVM aSJHIU   WBMFFNBQ @ 
  70. ϞφυͷྗͰԥΔ ࣮͸NBQΛ࣮૷͢Δ͚ͩʂ JNQPSUTDBMB[\a &JUIFS5 'VODUPS^  DMBTT'VUVSF'VODUPSFYUFOET'VODUPS<'VUVSF>\ EFGNBQ<" #> GB'VUVSF<">

    G"# 'VUVSF<#>GBNBQ G  ^ JNQMJDJUWBMGVODUPSOFX'VUVSF'VODUPS WBMF&JUIFS5 'VUVSFTVDDFTTGVM aSJHIU   WBMFFNBQ @  Ͱ͖ͨ ΋Χ ͬϥ ͯμ ͘ Ε Α ʂ 'VODUPS  &JUIFS5 ͩ ͬ 
  71. qBU.BQ΋࢖͍͍ͨʂ ݩؾۄ .POBE*OTUBODF Λ࡞Δඞཁ͕͋Δʂ EFGqBU.BQ<$> G#&JUIFS5<' " $> JNQMJDJU'.POBE<'> 

    &JUIFS5<' " $> &JUIFS5 'CJOE SVO @GPME B'QPJOU a B  "a$ CG C SVO ࡞ͬͯΈΑ͏ʂ
  72. qBU.BQ΋࢖͍͍ͨʂ .POBE͸৭ʑͳػೳΛ෼͚ͯ΋Β͍ͬͯΔݩؾۄతଘࡏ EFGqBU.BQ<$> G#&JUIFS5<' " $> JNQMJDJU'.POBE<'>  &JUIFS5<' "

    $> &JUIFS5 'CJOE SVO @GPME B'QPJOU a B  "a$ CG C SVO ࡞ͬͯΈΑ͏ʂ .POBE "QQMJDBUJWF #JOE "QQMZ 'VODUPS *OWBSJBOU'VODUPS
  73. .POBE*OTUBODFͷ࣮૷ QPJOUͱCJOEΛ࣮૷ʜʁͳΜͰ͔ͦ͢Ε͸ʜ EFGQPJOU<"> B" '<"> EFGCJOE<" #> GB'<"> G"'<#> '<#>

    4JHOBUVSF͸γϯϓϧ
  74. .POBE*OTUBODFͷ࣮૷ 'VUVSFͰ͋Ε͹͜͏͍͏ࣄ EFGQPJOU<"> B" 'VUVSF<">\ 'VUVSFTVDDFTTGVM B  ^ EFGCJOE<"

    #> GB'VUVSF<"> G"'VUVSF<#> 'VUVSF<#>\ GBqBU.BQ G  ^ ࣮͸͜͏͍͏ࣄͰͨ͠☺
  75. .POBE*OTUBODFͷ࣮૷ DMBTT'VUVSF.POBEFYUFOET.POBE<'VUVSF>\ EFGQPJOU<"> B" 'VUVSF<">\ 'VUVSFTVDDFTTGVM B  ^ EFGCJOE<"

    #> GB'VUVSF<"> G"'VUVSF<#> 'VUVSF<#>\ GBqBU.BQ G  ^ ^ JNQMJDJUWBMNPOBEOFX'VUVSF.POBE
  76. .POBE*OTUBODFͷ࣮૷ DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS*E&5&JUIFS5<'VUVSF

    &SSPS -POH>&JUIFS5 VTFS*E&'  WBMVTFS/BNF&5&JUIFS5<'VUVSF &SSPS 4USJOH>&JUIFS5 VTFS/BNF&'  WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5 VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF
  77. φϝοΫ੕΁ʜ ͞ΒͳΔ4DBMB[ͷྗΛٻΊͯ

  78. ಓத΋मߦͩʂ &JUIFS5ͰXJUI'JMUFSΛ࢖͓͏ʂ EFGXJUI'JMUFS Q##PPMFBO JNQMJDJU..POPJE<"> '.POBE<'>  &JUIFS5<' " #>

    pMUFS Q . ' -FGUܕͷ.POPJE͕ඞཁʂ
  79. ಓத΋मߦͩʂ .POPJEΛ࣮૷͢Δʹ͸ʜ EFG[FSP' EFGBQQFOE G' G' ' [FSPʜBQQFOEʜ 

  80. [FSPʜ GPSࣜ XJUI'JMUFS ͰͲ͏࢖ΘΕΔ͔ WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS

    VTFS*E VTFS/BNF
  81. [FSPʜ GPSࣜ XJUI'JMUFS ͰͲ͏࢖ΘΕΔ͔ WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS

    VTFS*E VTFS/BNF GBMTFͷͱ͖Ͳ͏͢Ε͹ ͑͑Μ΍ʜ
  82. [FSPʜ GPSࣜ XJUI'JMUFS ͰͲ͏࢖ΘΕΔ͔ WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS

    VTFS*E VTFS/BNF GBMTFͷͱ͖Ͳ͏͢Ε͹ ͑͑Μ΍ʜ ܕ͝ͱͷॳظ஋Λ ઃఆ͓ͯ͘͜͠ͱͰ -FGUʹ΋ରԠͰ͖Δ
  83. ࣮૷ͯ͠ΈΔ DMBTT&SSPS.POPJEFYUFOET.POPJE<&SSPS>\ EFG[FSP&SSPSOFX&SSPS EFGBQQFOE G&SSPS G&SSPS &SSPS BQQFOE͸ͳͯ͘΋0, ^ JNQMJDJUWBMFSSPS.POPJEOFX&SSPS.POPJE

    WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E- VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF
  84. ࣮૷ͯ͠ΈΔ DMBTT&SSPS.POPJEFYUFOET.POPJE<&SSPS>\ EFG[FSP&SSPSOFX&SSPS EFGBQQFOE G&SSPS G&SSPS &SSPS BQQFOE͸ͳͯ͘΋0, ^ JNQMJDJUWBMFSSPS.POPJEOFX&SSPS.POPJE

    WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E- VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF .POPJE΋Ͱ͖ͨʂ
  85. ࣮૷ͯ͠ΈΔ DMBTT&SSPS.POPJEFYUFOET.POPJE<&SSPS>\ EFG[FSP&SSPSOFX&SSPS EFGBQQFOE G&SSPS G&SSPS &SSPS BQQFOE͸ͳͯ͘΋0, ^ JNQMJDJUWBMFSSPS.POPJEOFX&SSPS.POPJE

    WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E- VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF -FGUͷύϥϝʔλ͕ ઃఆ͠ʹ͍͘ͷͰ ⚠΍Γ͗͢ʹ͸஫ҙʁ⚠ ʢҧ͏৔߹͸ɹ͍ͩ͘͞ʣ
  86. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ "0QUJPO<"> WBMP0QUJPO<*OU>TPNF WBMP0QUJPO<*OU>OPOF

  87. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ HFU0S&MTF Pc Pc

  88. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ ஋Λม׵΋͘͠͸ PDBUB @    PDBUB @

      
  89. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ ࡾ߲ԋࢉࢠ P l'PPzcz#BSz'PP P l'PPzcl#BSz#BS

  90. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ 0QUJPOಉ࢜ͷԋࢉ Pc cP4PNF   Pc cP4PNF 

     Pc cP/POF
  91. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ 0QUJPOಉ࢜ͷԋࢉ Pc cP4PNF   Pc cP4PNF 

     Pc cP/POF ͘͢͝ศརʂ
  92. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ -JTUͷத਎Λग़ྗ ۭϦετΛ࡞੒ -JTU    QSJOUMO< 

    > OJM<*OU>QSJOUMO<>
  93. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ ཁૉؒʹࠩ͠ࠐΈ -JTU    JOUFSTQFSTF  -JTU

        
  94. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ Ϧετ͕ۭͰ͸ͳ͍ͱ͖ʹॲཧ࣮ߦ -JTU    ?\MJTU QSJOUMO TGPPMJTU

     ^GPP/PO&NQUZ-JTU     OJM<*OU>?\MJTU QSJOUMO TCBSMJTU  ^Կ΋දࣔ͞Εͳ͍
  95. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ ৭Μͳू߹Λฦ͢ -JTU    UBJM[-JTU -JTU 

      -JTU   -JTU  -JTU  -JTU    BMM1BJST-JTU          -JTU     BEKBDFOU1BJST-JTU        
  96. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ 0QUJPOa WBME&SSPSa*OU4PNF  aOFX&SSPS/POFͷ৔߹͸-FGU WBME*OUa&SSPS4PNF  aOFX&SSPS/POFͷ৔߹͸3JHIU

  97. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ &JUIFSa WBME&SSPSa*OUaGSPN&JUIFS 3JHIU 

  98. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ "OZa WBME&SSPSa*OUSJHIU WBME&SSPSa*OU OFX&SSPS MFGU

  99. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ "OZa WBME&SSPSa*OUSJHIU WBME&SSPSa*OU OFX&SSPS MFGU 4DBMB[ͬͯ͘͢͝ศརʂ

  100. ͱࢥ͍͖΍ʜ ʊਓਓਓਓʊ ʼɹ'SFFɹʻ ʉ:?:?:ʉ

  101. ଓ͖͸࣍ճ ͋Δͱ͸ݴͬͯͳ͍ 'SFF͸͕࣌ؒ଍Γͳ͍ ͰؔΘ ͢਺ͨ ɹྗ͠ ɹ͸ͷ ɹ ɹ

  102. εʔύʔαΠϠਓΛ໨ࢦͯ͠ʜ ɾ΋ͬͱ4DBMB΍4DBMB[ͷίʔυΛಡΉඞཁ͋Γ ɾ࢖͍ํͷϊ΢ϋ΢Λ૿΍͍͖͍ͯͨ͠

  103. ·ͱΊ ɾͦΜͳʹ΢ΣϒΞϓϦͱབྷΊΒΕ·ͤΜͰͨ͠ ɾ࢖͍΍͍͢΋ͷ͔Βಋೖ͍ͯ͘͠ͷ΋0, ɾࢀߟʹͳΕ͹޾͍Ͱ͢

  104. ͓ΘΓ