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

フラットなPHPからオブジェクト指向で自動テストのあるPHPへ、そしてフレームワークへ #phpcon2022

Hiromi Hishida
September 24, 2022

フラットなPHPからオブジェクト指向で自動テストのあるPHPへ、そしてフレームワークへ #phpcon2022

PHP Conference Japan 2022 day1 track3 13:20〜のセッションスライドです。
---

https://fortee.jp/phpcon-2022/proposal/ef41a5ba-4efd-4a9f-b6a8-ae456df00541

フラットなPHPの書き方はわかった、では次はフレームワークへ…というとき、どんな基準でフレームワークを選んでいますか?なぜそのフレームワークを使ってアプリケーションを書くと良いのか、理解できていますか?堅牢でメンテナブルなアプリケーションを作るとき、なぜフラットなPHPでは難しいのでしょうか?
入門書や動画講座でPHPの基本文法を学んだあと、盲目的に次のステップとしてフレームワークを学習するのではなく、必要性を実感した上でフレームワークを学習してほしい、と私は常々考えています。
このトークではフラットなペラ1枚のPHPスクリプトから出発して、オブジェクト指向で自動テストのできるPHPアプリケーションへ、そして更にフレームワークを使ったアプリケーションになるまで、コードと考え方をお話しします。

◆含まれるもの

PHPのオブジェクト指向の用語と書き方
ありふれたスクリプトの中に埋め込まれた「仕事」の発見と整理の考え方
PHPUnitを使った自動テストの基本
Symfonyフレームワークを使ってHTTPリクエストを受け取ってHTTPレスポンスを返すまで
◆含まないもの

データベース操作
テーブル設計
Laravelフレームワークの使い方

Hiromi Hishida

September 24, 2022
Tweet

More Decks by Hiromi Hishida

Other Decks in Programming

Transcript

  1. UI4FQUFNCFS BU1)1$POGFSFODFJO5PLZP CZ)JSPNJ)JTIJEB !XFC ϑϥοτͳ1)1͔ΒΦϒδΣΫτࢦ޲ Ͱࣗಈςετͷ͋Δ1)1΁ɺͦͯ͠ϑ ϨʔϜϫʔΫ΁

  2. *MMVTUESBXOCZ!UEBLBL XFCʢͳͳ͏͐Ϳʣ 1)1ྺ೥ɻதֶ೥ੜͱߴߍ೥ੜͷ฼ɻग़࢈ޙʹ ಠֶͰϑϦʔϥϯεˠΧϧςοτίϛϡχέʔγϣϯ ζ։ൃ෦ɺݱࡏ1)1νʔϜϚωʔδϟʔʢϓϨΠϯά ϚωʔδϟʔʣɻೝఆεΫϥϜϚελʔऔಘɻ w ೔ຊ4ZNGPOZϢʔβʔձɺ1)1ϝϯλʔζ  4ZNGPOZ5IF'BTU5SBDL೔ຊޠ຋༁νʔ

    ϜͳͲͰ׆ಈ w %%% 5%% ϓϩμΫτϚωδϝϯτ
  3. ͜ͷηογϣϯͷର৅ w ࠷ۙ1)1Λֶͼ࢝Ίͨਓ w εΫʔϧ΍ΦϯϥΠϯߨ࠲Ͱ1)1ΛֶΜͰɺ࣍ʹԿΛͨ͠Β͍͍ͷʁͱࢥͬ ͍ͯΔਓ

  4. 1)1ͷจ๏ w 1)1NBOVBMIUUQTXXXQIQOFUNBOVBMKB w 1)1ೖ໳ຊ

  5. 1)1ͷจ๏ w  QIQͰ͸͡·Δ w ͭͷ໋ྩ͸lzͰऴΘΔ w Λ͚ͭΔͱม਺ w *GจͰ৔߹෼͚

    w GPSจ XIJMFจͰ܁Γฦ͠ w ഑ྻͱGPSFBDI w ؔ਺ఆٛͱݺͼग़͠
  6. 1)1ͷจ๏ w  QIQͰ͸͡·Δ w ͭͷ໋ྩ͸lzͰऴΘΔ w Λ͚ͭΔͱม਺ w *GจͰ৔߹෼͚

    w GPSจ XIJMFจͰ܁Γฦ͠ w ഑ྻͱGPSFBDI w ؔ਺ఆٛͱݺͼग़͠ ΋͏ɺ؆୯ͳϓϩάϥϜͳΒ ॻ͚·͢Ͷ
  7. 1)1ͷจ๏ɺͪΌΜͱϚελʔͨ͠ʁ  QIQ 
 JG J \ 
 FDIPb"` 


    ^FMTF\ 
 FDIPb#` 
 ^ 
 
 J͕ͷͱ͖ɺͷͱ͖ɺͷͱ͖ɺͷͱ͖ͦΕͧΕ"͕ग़Δ͔#͕ग़Δ͔೴಺Ͱγ ϛϡϨʔγϣϯͰ͖·͔͢ʁ
  8. 1)1ͷจ๏ɺͪΌΜͱϚελʔͨ͠ʁ w *GจʹݶΒͣɺجຊతͳ1)1ίʔυͷ೴಺γϛϡϨʔγϣϯ͕·ͩո͍͠ਓ͸ จ๏ϚελʔͰ͖Δ·Ͱ෮श͠·͠ΐ͏ɻ w ೖ໳ຊʹ໭ͬͯɺ1)1ͷαϯϓϧίʔυΛຊΛݟͳ͍ͰࣗવʹଧͪࠐΊΔ Α͏ʹͳΔ·Ͱ΍Δ w ϓϩάϥϛϯά໰୊ w

    "U$PEFSIUUQTBUDPEFSKQ w -FFU$PEFIUUQTMFFUDPEFDPN
  9. ͓͠ͳ͕͖ w 1)1ͷΦϒδΣΫτࢦ޲ w 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ w ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ w ϑϨʔϜϫʔΫͱ͸

  10. 1)1ͷΦϒδΣΫτࢦ޲ w PCKFDU w DMBTT w FYUFOETʢܧঝʣ w JOTUBODF w

    QSPQFSUZ w NFUIPE w JOUFSGBDF
  11. 1)1ͷΦϒδΣΫτࢦ޲  ΦϒδΣΫτͱ͸ w ෺ମɺର৅ɺ໨త w ਓؒ w ෺ w

    ݐ෺ w Πϕϯτ w ੈͷத͸ΦϒδΣΫτͰᷓΕ͍ͯΔ
  12. 1)1ͷΦϒδΣΫτࢦ޲  Ϋϥεͷߟ͑ํ w ҩࢣ͸ਓؒͷױऀʹ஫ࣹΛଧͭ͜ͱ͕ Ͱ͖Δɻ

  13. 1)1ͷΦϒδΣΫτࢦ޲  Ϋϥεͷߟ͑ํ w ्ҩࢣ͸ɺਓؒʹ͸஫ࣹΛଧͭ͜ͱ͕ Ͱ͖ͳ͍ɻಈ෺ʹ͸஫ࣹΛଧͭ͜ͱ͕ Ͱ͖Δɻ

  14. 1)1ͷΦϒδΣΫτࢦ޲  Ϋϥεͷߟ͑ํ w ्ҩࢣ͸ʮಈ෺ʯʹ஫ࣹΛଧͭ͜ͱ͕Ͱ͖Δɻ w ҩࢣ͸ʮਓؒʯʹ஫ࣹΛଧͭ͜ͱ͕Ͱ͖Δɻ

  15. 1)1ͷΦϒδΣΫτࢦ޲  Ϋϥεͷߟ͑ํ

  16. 1)1ͷΦϒδΣΫτࢦ޲  ܧঝͷߟ͑ํ

  17. 1)1ͷΦϒδΣΫτࢦ޲  ܧঝͷߟ͑ํ

  18. 1)1ͷΦϒδΣΫτࢦ޲  ܧঝͷߟ͑ํ w ʮݘʯ͸ʮಈ෺ʯΛܧঝ͍ͯ͠Δ w ʮݘʯ͸ʮݘʯͷಛ௃͚ͩͰͳ͘ʮಈ෺ʯͷಛ௃΋ซͤ࣋ͭ w ʮνϫϫʯͱ͔ʮγϕϦΞϯϋεΩʔʯ͸ʮݘʯΛߋʹܧঝ͍ͯ͠Δ

  19. 1)1ͷΦϒδΣΫτࢦ޲  Ϋϥεͱ࣮ମʢΠϯελϯεʣ

  20. 1)1ͷΦϒδΣΫτࢦ޲  Ϋϥεͱ࣮ମʢΠϯελϯεʣ w ्ҩࢣΫϥε w ࡳຈࢢͷࢁా्ҩࢣʢΠϯελϯεʣ w ໊ݹ԰ࢢͷాத्ҩࢣʢΠϯελϯεʣ w

    ಈ෺Ϋϥε w ݘΫϥε w νϫϫΫϥε w ϝϦʔͪΌΜʢΠϯελϯεʣ w ౾ࣲΫϥε w ଠ࿠͘ΜʢΠϯελϯεʣ w ՖࢠͪΌΜʢΠϯελϯεʣ
  21. 1)1ͷΦϒδΣΫτࢦ޲  ϓϩύςΟ

  22. 1)1ͷΦϒδΣΫτࢦ޲  ϓϩύςΟ w ໊લʜʮࢁాઌੜ͓ئ͍͠·͢ʯʮాதઌੜ͓ئ͍͠·͢ʯ w ಛ௃ʜʮঁੑͷઌੜ͓ئ͍͠·͢ʯʮएઌੜͰ͓ئ͍͠·͢ʯʮϝΨωͷઌ ੜͷ΄͏Λ͓ئ͍͠·͢ʯ

  23. 1)1ͷΦϒδΣΫτࢦ޲  ϝιου w ्ҩࢣ͸ಈ෺ʹʮ஫ࣹΛଧͭʯͱ͍͏ߦಈ͕Ͱ͖Δɻ w ्ҩࢣΫϥε͸ಈ෺Λର৅ʹʮ஫ࣹΛଧͭʯͱ͍͏ϝιουΛ͍࣋ͬͯΔ w ҩࢣ΋ʮ஫ࣹΛଧͭʯͱ͍͏ߦಈ͕Ͱ͖Δ͕ɺର৅͸ʮಈ෺ʯͰͳ͘ʮਓ ؒʯɻ

    w ҩࢣΫϥε͸ਓؒΛର৅ʹʮ஫ࣹΛଧͭʯͱ͍͏ϝιουΛ͍࣋ͬͯΔ
  24. 1)1ͷΦϒδΣΫτࢦ޲  ϝιου w ݘʮ๸͑Δʯ͜ͱ͕Ͱ͖Δ w ϥΠΦϯ΋ʮ๸͑Δʯ͜ͱ͕Ͱ͖Δ w ͔͠͠ɺϥΠΦϯ͸ݘͰ͸ͳ͍ w

    ͜͜Ͱʮ๸͑ΔϝιουΛ͍࣋ͬͯΔ͔ΒϥΠΦϯ΋ݘͱͯ͠ѻ͏ʯͱ͍ ͏ݴޠ΋͋Δ͕ɺ1)1͸ͦ͏Ͱ͸ͳ͍ɻ
  25. 1)1ͷΦϒδΣΫτࢦ޲  Ӆṭʢϝιουͷޮ༻ʣ w ϝϦʔͪΌΜʢࡀʣJO w ϝϦʔͪΌΜʢࡀʣJO w ʜ

  26. 1)1ͷΦϒδΣΫτࢦ޲  Ӆṭʢϝιουͷޮ༻ʣ w ϝϦʔͪΌΜ w ʮ೥݄೔ੜ·ΕʯΛϓϩύς Οͱͯ࣋ͭ͠ w ʮ೥ྸΛݴ͏ʯϝιουʹΑΓɺ࣮ߦ

    ࣌఺ͷ೥ྸΛग़ͤΔʢӅṭʹ੒ޭʣ
  27. 1)1ͷΦϒδΣΫτࢦ޲  JOUFSGBDF w DMBTTͱJOUFSGBDF w ʮา͘͜ͱ͕Ͱ͖ΔʯJOUFSGBDF w ʮνϫϫʯDMBTT

  28. 1)1ͷΦϒδΣΫτࢦ޲ w PCKFDU w DMBTT w FYUFOETʢܧঝʣ w JOTUBODF w

    QSPQFSUZ w NFUIPE w JOUFSGBDF
  29. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํΫϥε JOUFSGBDF8BMLBCMF\ 
 ^ DMBTT.BNF4IJCB\ 
 ^

  30. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํܧঝ w 1)1Ͱ͸ܧঝ͸JNQMFNFOUT FYUFOETΛ࢖ͬͯද͢ɻ w JOUFSGBDF͕JOUFSGBDFΛܧঝ͢Δͱ͖͸FYUFOET w DMBTT͕JOUFSGBDFΛܧঝ͢Δͱ͖͸JNQMFNFOUT

    w DMBTT͕DMBTTΛܧঝ͢Δͱ͖͸FYUFOET w JOUFSGBDF͕DMBTTΛܧঝ͢Δ͜ͱ͸ͳ͍
  31. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํܧঝ JOUFSGBDF8BMLBCMF\^ JOUFSGBDF3VOOBCMFFYUFOET8BMLBCMF\^ DMBTT4IJCBJOVJNQMFNFOUT3VOOBCMF\^ DMBTT.BNF4IJCBFYUFOET4IJCBJOV\^

  32. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํΠϯελϯε w OFXΫϥε໊

  33. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํΠϯελϯε DMBTT.BNF4IJCB\^ 
 NZ%PHOFX.BNF4IJCB 

  34. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϓϩύςΟͷఆٛ w DMBTT಺ʹAϓϩύςΟ໊A w Ϋϥε֎͔Β΋ಡΈॻ͖͍ͨ͠QVCMJDϓϩύςΟ໊ w Ϋϥε಺͚ͩͰಡΈॻ͖͍ͨ͠QSJWBUFϓϩύςΟ໊ w

    ܧঝ͍ͯ͠ΔΫϥε͚͕ͩಡΈॻ͖͍ͨ͠QSPUFDUFEϓϩύςΟ໊
  35. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϓϩύςΟͷఆٛ *OUFSGBDF8BMLBCMF\^ DMBTT.BNF4IJCBJNQMFNFOUT8BMLBCMF\ 
 QVCMJDTUSJOHOBNF 
 QSPUFDUFEJOUXFJHIU 


    QSJWBUFa%BUF5JNF*NNVUBCMFCJSUI%BUF 
 ^
  36. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϓϩύςΟͷಡΈॻ͖ w ಡΈऔΓʢ֎͔Βʣ w FDIPΠϯελϯεϓϩύςΟ໊ w ΠϯελϯεϓϩύςΟ໊ ϓϩύςΟͷ஋ʹΛ଍͢

    w ॻ͖ࠐΈʢ֎͔Βʣ w ΠϯελϯεϓϩύςΟ໊b͸ͳ͜`
  37. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϓϩύςΟͷಡΈॻ͖ *OUFSGBDF8BMLBCMF\^ DMBTT.BNF4IJCBJNQMFNFOUT8BMLBCMF\ 
 QVCMJDTUSJOHOBNF 
 QSPUFDUFEJOUXFJHIU 


    QSJWBUFa%BUF5JNF*NNVUBCMFCJSUI%BUF 
 ^ NZ%PHOFX.BNF4IJCB  
 NZ%PHOBNFbϙν` 
 FDIPb໊લ`NZ%PHOBNF 
 FDIPbମॏ`NZ%PHXFJHIU 
 FDIPb஀ੜ೔`NZ%PHCJSUI%BUF
  38. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϓϩύςΟͷಡΈॻ͖ w ಡΈऔΓʢத͔Βʣ w FDIPUIJTϓϩύςΟ໊ w UIJTϓϩύςΟ໊ ϓϩύςΟͷ஋ʹΛ଍͢

    w ॻ͖ࠐΈʢத͔Βʣ w UIJTϓϩύςΟ໊b͸ͳ͜`
  39. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϝιουͷఆٛ w DMBTT಺ʹGVODUJPOϝιου໊ ໨త෺ͷΫϥε໨త෺ͷΠϯελϯε \ʢ͜͜ʹ࣮ࡍͷॲཧ಺༰ʣ^ͷΑ͏ʹఆٛ w ϝιουʹ΋ϓϩύςΟͱಉ༷ʹQSJWBUF QSPUFDUFE

    QVCMJDΛܾΊΔ͜ͱ ͕Ͱ͖Δ w JOUFSGBDF಺ʹGVODUJPOϝιου໊ ໨త෺ͷΫϥε໨త෺ͷΠϯελϯ ε Λఆٛ͢Δ͜ͱ΋Ͱ͖Δ
  40. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϝιουͷఆٛ *OUFSGBDF8BMLBCMF\ 
 QVCMJDGVODUJPOXBML WPJE 
 ^ 


    DMBTT%PHJNQMFNFOUT8BMLBCMF\ 
 QSJWBUFJOUIQ 
 QVCMJDGVODUJPOXBML WPJE 
 \ 
 UIJTIQา͘ͱർΕΔͷͰ)1͕ݮΔ 
 ^ 
 QVCMJDGVODUJPOFBU 'PPE*OUFSGBDFGPPE TUSJOH 
 \ 
 UIJTIQ GPPEFOFSHZ৯΂ͨΒ)1͕ճ෮ 
 SFUVSObZVN` 
 ^ 
 ^
  41. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϝιουͷ࣮ߦ w Πϯελϯεϝιου໊ Ҿ਺

  42. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํϝιουͷ࣮ߦ DMBTT%PHJNQMFNFOUT8BMLBCMF\ 
 QVCMJDGVODUJPOXBML WPJE 
 \ 


    ^ 
 QVCMJDGVODUJPOFBU 'PPE*OUFSGBDFGPPE TUSJOH 
 \ 
 SFUVSObZVN` 
 ^ 
 ^ 
 NZ%PHOFX%PH  
 NZ%PHXBML Ҿ਺΋ड͚औΒͣ஋΋ฦ͞ͳ͍ͷͰ͜ΕͰऴΘΓ 
 GFFECBDLNZ%PHFBU EPH'PPE Ҿ਺ͱͯ͠EPH'PPEΛ౉͍ͯ͠ΔɻPOJPO͸౉ͪ͠Όμϝɻ 
 FDIPGFFECBDLZVN͕ฦ͖͍ͬͯͯΔͷͰFDIP͢ΔͱZVN͕ೖ͍ͬͯΔ͜ͱ͕Θ͔Δ
  43. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํಛघͳϝιου w @@DPOTUSVDU ϝιουʜΫϥεΛΠϯελϯεԽ͢Δͱ͖ʹࣗಈతʹ࣮ߦ͞ ΕΔɻίϯετϥΫλɻ w @@EFTUSVDU ϝιουʜΫϥεͷΠϯελϯεΛഁغ͢Δͱ͖ʹࣗಈతʹ࣮ߦ

    ͞ΕΔɻσετϥΫλɻ
  44. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํಛघͳϝιου w OFXΫϥε ίϯετϥΫλͷҾ਺ ίϯετϥΫλͷҾ਺

  45. 1)1ͷΦϒδΣΫτࢦ޲  1)1Ͱͷද͠ํಛघͳϝιου DMBTT%PH\ 
 QVCMJDGVODUJPO@@DPOTUSVDU QSJWBUFJOUXFJHIU \^ 
 QVCMJDGVODUJPOJT)FBWZ

    CPPM 
 \ 
 SFUVSOUIJTXFJHIU 
 ^ 
 ^ 
 MJHIU%PHOFX%PH   
 IFBWZ%PHOFX%PH   
 WBS@EVNQ MJHIU%PHJT)FBWZ ͍ܰͷͰGBMTF 
 WBS@EVNQ IFBWZ%PHJT)FBWZ ॏ͍ͷͰUSVF
  46. 1)1ͷΦϒδΣΫτࢦ޲ w PCKFDU w DMBTT w FYUFOETʢܧঝʣ w JOTUBODF w

    QSPQFSUZ w NFUIPE w JOUFSGBDF
  47. ͓͠ͳ͕͖ w 1)1ͷΦϒδΣΫτࢦ޲ w 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ w ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ w ϑϨʔϜϫʔΫͱ͸

  48. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ ϑϥοτͳ1)1Ͱ࣮૷ͨ͠ϝʔϧϑΥʔϜ w ͜͜ʹίʔυ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPC fl BUQVCMJDJOEFYQIQ

  49. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ ϑϥοτͳ1)1Ͱ࣮૷ͨ͠ϝʔϧϑΥʔϜ w ͜͜ʹίʔυ

  50. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ ϑϥοτͳ1)1Ͱ࣮૷ͨ͠ϝʔϧϑΥʔϜ w ͜͜ʹίʔυ ʢུʣ

  51. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ ϑϥοτͳ1)1Ͱ࣮૷ͨ͠ϝʔϧϑΥʔϜ w αϯϓϧϝʔϧϑΥʔϜͷ໰୊఺ w ߦ਺͕ଟ͍ w Ͳ͔͜Օॴ͚ͩΛमਖ਼͢Δͱ͖ɺશମʹӨڹͯ͠͠·͏ w ςετͮ͠Β͍

    w ಈ࡞֬ೝ͸ϒϥ΢βͰ࣮ࡍʹखಈͰશύλʔϯࢼ͞ͳ͍ͱ͍͚ͳ͍
  52. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ೔ຊޠͰ࢓ࣄΛ੔ཧ͢Δ

  53. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ೔ຊޠͰ࢓ࣄΛ੔ཧ͢Δ όϦσʔγϣϯ

  54. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ೔ຊޠͰ࢓ࣄΛ੔ཧ͢Δ ϝʔϧૹ৴ ׬ྃը໘ʹϦμΠϨΫτ

  55. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ೔ຊޠͰ࢓ࣄΛ੔ཧ͢Δ ʢུʣ ϑΥʔϜදࣔ

  56. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ೔ຊޠͰ࢓ࣄΛ੔ཧ͢Δ w 1045ͳΒ w όϦσʔγϣϯ w όϦσʔγϣϯ͕/(ͳΒ w

    ϑΥʔϜදࣔ w ϝʔϧૹ৴ w ϝʔϧૹ৴͕੒ޭͳΒ w ׬ྃը໘΁ϦμΠϨΫτ w 1045͡Όͳ͔ͬͨΒ w ϑΥʔϜදࣔ ˡ࢓ࣄͷൃಈ͢Δ৚݅ ˡ࢓ࣄͷ໊લ
  57. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ ೖྗΛ ड͚औΔ ॲཧ ॲཧ ग़ྗΛදࣔ Ϋϥε Ϋϥε

    Ϋϥε Ϋϥε ˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠ
  58. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ w όϦσʔγϣϯʜ7BMJEBUF"DUJPO w ϝʔϧૹ৴ʜ4FOE.BJM"DUJPO w ׬ྃը໘΁ϦμΠϨΫτʜ$PNQMFUF"DUJPO w

    ϑΥʔϜදࣔʜ4IPX'PSN"DUJPO
  59. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ ˡݩͷεΫϦϓτ͔Βίϐϖͯ͠ ͖ͨόϦσʔγϣϯ෦෼ ˡ7BMJEBUF"DUJPOΫϥεΛఆٛ ˡEPϝιουΛఆٛ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCEJWJEFJOUPDMBTTTSD7BMJEBUF"DUJPOQIQ

  60. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ ˡ4FOE"DUJPOΫϥεΛఆٛ ˡEPϝιουΛఆٛ ˡϝʔϧૹ৴Λίϐϖ ˡ׬ྃը໘දࣔ͸αϒͷผͷ࢓ࣄ ͱ͢Δ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCEJWJEFJOUPDMBTTTSD4FOE"DUJPOQIQ

  61. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ w 7BMJEBUF"DUJPO w 4FOE"DUJPO w $PNQMFUF"DUJPO w

    4IPX'PSN"DUJPO
  62. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ w 1045ͳΒ w όϦσʔγϣϯ w όϦσʔγϣϯ͕/(ͳΒ w

    ϑΥʔϜදࣔ w ϝʔϧૹ৴ w ϝʔϧૹ৴͕੒ޭͳΒ w ׬ྃը໘΁ϦμΠϨΫτ w 1045͡Όͳ͔ͬͨΒ w ϑΥʔϜදࣔ
  63. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCEJWJEFJOUPDMBTTQVCMJDJOEFYQIQ

  64. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ

  65. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ ೖྗΛ ड͚औΔ ॲཧ ॲཧ ग़ྗΛදࣔ Ϋϥε Ϋϥε

    Ϋϥε Ϋϥε ˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠ
  66. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCVTFCPYTSD#PYQIQ

  67. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ ˡҾ਺ͱͯ͠CPYΛड͚औΔ ˡ@1045Ͱͳ͘CPYQPTUʹ ରͯ͠όϦσʔγϣϯ͢Δ ˡΤϥʔ͕͋Ε͹CPYWBMJEBUJPO&SSPSTʹηοτ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCVTFCPYTSD7BMJEBUF"DUJPOQIQ

  68. 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏  ࢓ࣄΛ͢ΔਓʢΫϥεʣΛ෼͚Δ w #PYΛ͔ͭͬͨ"DUJPOΛ࢖ͬͯJOEFYQIQΛ૊ΈཱͯΔ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCVTFCPYQVCMJDJOEFYQIQ

  69. ͓͠ͳ͕͖ w 1)1ͷΦϒδΣΫτࢦ޲ w 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ w ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ w ϑϨʔϜϫʔΫͱ͸

  70. ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ  ࣗಈςετͱ͸ w ςετۦಈ։ൃIUUQTXXXBNB[PODPKQEQ w 1)16OJUNBOVBMIUUQTQIQVOJUSFBEUIFEPDTJPKBMBUFTU w 1)1ΧϯϑΝϨϯεɾ1)1FS,BJHJͷաڈͷ5%%ؔ࿈ηογϣϯಈը w

    ࠓ೔ʙ5SBDL!1BOEB@1SPHSBN͞Μͷʮ࣮ફʂϢχοτςετೖ ໳ʯ
  71. ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ  ςετίʔυͷॻ͖ํ w 1)16OJUa'SBNFXPSLa5FTU$BTFΛܧঝͨ͠ςετΫϥεΛॻ͘ w ݪଇͱͯ͠Ϋϥε໊Λl5FTUzͰऴΘΔΑ͏ʹ໊෇͚Δ w େ఍͸ςετ͍ͨ͠ର৅ͷΫϥεͷ໊લʹz5FTUzΛ͚ͭΔ w

    ςετ༻ͷϝιουΛఆٛ͢Δ w ݪଇͱͯ͠ϝιου໊ΛzUFTUz͔Β࢝ΊΔ w େ఍͸ςετύλʔϯ͝ͱʹϝιουΛ෼͚Δ
  72. ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ  ςετίʔυͷαϯϓϧ ˡ7BMJEBUF"DUJPO5FTUΫϥεΛఆٛɺQIQVOJUͷ5FTU$BTFΛܧঝ ˡਖ਼ৗͳσʔλͰςετ ˡਖ਼ৗͳσʔλͳͷͰΤϥʔ͕ग़ͳ͍͜ͱ֬ೝ ˡFNBJM͕ͳ͍ҟৗͳσʔλ ˢFNBJM͕ͳ͍ҟৗͳσʔλͳͷͰɺΤϥʔ ͕ग़Δ͜ͱΛ֬ೝ ˡUFTU@ਖ਼ৗϝιουΛఆٛ

    ˡUFTU@ϝʔϧΞυϨεະهೖϝιουΛఆٛ IUUQTHJUIVCDPNXFCQIQDPOPPQTBNQMFCMPCNBJOUFTUT7BMJEBUF"DUJPO5FTUQIQ
  73. ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ  ࣗಈςετͷϝϦοτ w ༷ʑͳύλʔϯΛը໘Λਓ͕ؒ৮Δ͜ͱͳ͘νΣοΫͰ͖Δ w ͲΜͳύλʔϯΛςετ͍ͯͯ͠ɺͲΜͳύλʔϯΛςετͯ͠ͳ͍ͷ͔ূڌ ͕࢒Δ w ޙ͔ΒϓϩδΣΫτʹKPJO͢Δਓʹ΋Θ͔Δ

    w Կ౓Ͱ΋ɾؾܰʹɾʢେ఍͸ʣ୹࣌ؒͰςετͰ͖Δ
  74. ͓͠ͳ͕͖ w 1)1ͷΦϒδΣΫτࢦ޲ w 1)1ͷΦϒδΣΫτࢦ޲Λੜ͔࣮ͨ͠૷ํ๏ w ࣗಈςετɾςετۦಈ։ൃʢ5%%ʣ w ϑϨʔϜϫʔΫͱ͸

  75. ϑϨʔϜϫʔΫͱ͸ ೖྗΛ ड͚औΔ ॲཧ ॲཧ ग़ྗΛදࣔ Ϋϥε Ϋϥε Ϋϥε Ϋϥε

    ˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠˠ
  76. ϑϨʔϜϫʔΫͱ͸ IUUQTHJUIVCDPNTZNGPOZTZNGPOZCMPCTSD4ZNGPOZ$PNQPOFOU)UUQ,FSOFM)UUQ,FSOFMQIQ-

  77. ϑϨʔϜϫʔΫͱ͸ w ΞϓϦέʔγϣϯͷओཁػೳΛ࡞Δͷʹूத͢Δ w $POUSPMMFSͷத਎ͷ࣮૷ΛؤுΔ w Ϣʔβʔͷ՝୊Λղܾ͢Δ w ࢓ࣄΛൃݟ͢ΔͨΊͷޠኮΛ૿΍͢ w

    όϦσʔγϣϯɾϦμΠϨΫτͷΑ͏ͳɺʮΑ͋͘Δ࢓ࣄʯͷύλʔϯΛ஌ Δ
  78. ϑϨʔϜϫʔΫͱ͸ w ϑϨʔϜϫʔΫ͸࢖ͬͯ΋࢖ΘΕΔͳ w lͲ͏ͳͬͨΒ)BQQZͳΜ͚ͩͬʁz

  79. ϑϨʔϜϫʔΫͱ͸ ϑϨʔϜϫʔΫΛֶΜͰΈ͍ͨͱࢥͬͨΒʜ w 4ZNGPOZ5IF'BTU5SBDLIUUQTTZNGPOZDPNEPDDVSSFOUUIFGBTU USBDLKBJOEFYIUNM w IUUQTTZNGPOZDPNEPDDVSSFOUTFUVQIUNM͔Β(FUUJOH4UBSUFE

  80. IUUQTUXJUUFSDPNXFCTUBUVT ͓·͚

  81. 5IBOLZPV