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

Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術 / Kaigi on Rails 2023

lni_T
October 29, 2023

Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術 / Kaigi on Rails 2023

"Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術"
Kaigi on Rails 2023での登壇資料です。
https://kaigionrails.org/2023/talks/lni_T/

Turbolinksはどうしてもトラブルが多発するライブラリでしたが、
現代のHotwireはむしろ高速に開発することができるという例を紹介しています。

はてなブックマークする↓
https://b.hatena.ne.jp/entry?url=https://speakerdeck.com/lnit/kowakunai-hotwire-kaigi-on-rails-2023

lni_T

October 29, 2023
Tweet

More Decks by lni_T

Other Decks in Programming

Transcript

  1. 5VSCPMJOLTΞϨϧΪʔױऀʹ

    ๋͛Δ5VSCP4UJNVMVT

    Ͱͷ࣌୹࣮૷ज़
    ,BJHJPO3BJMT
    !MOJ@5ϧχ

    View Slide

  2. ૣ଎Ͱ͕͢օ༷

    View Slide

  3. ʲ5VSCPMJOLTʳ
    ͱ͍͏໊લΛ͝ଘ஌Ͱ͔͢ʁ
    🙋 👏

    View Slide

  4. 🤔

    View Slide

  5. ʲ5VSCPMJOLTʳ
    ͪΌΜͱ࢖͍ͬͯͨʁ
    🙋 👏

    View Slide

  6. 🤯

    View Slide

  7. 5VSCPMJOLT
    աڈ3BJMTඪ४ͩͬͨϥΠϒϥϦ
    ը໘ભҠΛߴ଎Խ͢Δʂͱ͍͏΋ͷ
    ϦϯΫΫϦοΫͳͲΛBKBYϦΫΤετʹஔ׵ͯ͠
    Ϩεϙϯε͔ΒCPEZΛࠩ͠ସ͑Δ
    KTDTT͸࠶ಡΈࠐΈ͠ͳ͍ͷͰߴ଎ʂ
    ͱ͍͏ౕ͍͕ͩ͢͝ʜʜ

    View Slide

  8. 5VSCPMJOLT
    ࢖͍͜ͳ͢ͷ͕೉͍͠ϥΠϒϥϦͩͬͨʜʜ
    +BWB4DSJQUͷΠϕϯτͷҰ෦͕ൃՐ͠ͳ͍ POMPBEͱ͔

    K2VFSZͷϓϥάΠϯͱ૬ੑ͕ѱ͍
    ˠτϥϒϧͷଟ͔͞Β5VSCPMJOLTΛ֎͢ਓ͕ଓग़
    ʮࠓ౓ͦ͜5VSCPMJOLTΛ࢖͍͜ͳͥ͢ʂʯͱ

    ҙؾ༲ʑͱSBJMTOFXͨ͠ΤϯδχΞ͕

    ཌேʹແࢂͳ࢟Ͱൃݟ͞ΕΔ͜ͱ΋

    View Slide

  9. 5VSCPMJOLTͭΒ͍ʜ

    View Slide

  10. ͕ͩɺࠓ͸ҧ͏ʂ

    View Slide

  11. View Slide

  12. View Slide

  13. ໊લ͕ࣅͯΔʂා͍ʂ

    View Slide

  14. ʘා͘ͳ͍Αʗ

    View Slide

  15. ਃ͠஗Ε·͕ͨ͠

    View Slide

  16. ࣗݾ঺հ
    w5XJUUFS 9
    *%!MOJ@5
    w.FE1FFS

    ɹαʔόʔαΠυϦʔυΤϯδχΞ
    w3VCZ3BJMTྺ೥ʙݱࡏ
    w3BJMTʙ3BJMT·Ͱܦݧ


    View Slide

  17. View Slide

  18. View Slide

  19. ࠓ೔ͷηογϣϯͷഎܠ

    View Slide

  20. View Slide

  21. View Slide

  22. ଞ͔ࣾΒͷ
    ʮࣄۀɾγεςϜͷৡडʯ

    Λߦ͍·ͨ͠

    View Slide

  23. ૝૾্ͷʮৡΓड͚Δʯ
    ʮӡ༻อकΛҾ͖ܧ͙ͷ͔ͳʜʁʯ

    View Slide

  24. ࣮ࡍͷʮৡΓड͚Δʯ
    αʔόʔ͸3BJMTͰϑϧεΫϥονͩʂ
    %#΋Πν͔Βߏ଄Λݟ௚͠ʂ
    Ϣʔβʔೝূج൫΋૊Έ௚ͧ͢ʂ
    ࣄۀΛࣗ෼ͨͪͰਐΊ͍ͯͨ͘Ίʹ͸

    ౰વඞཁͳରԠͩΑͶʔ

    View Slide

  25. αʔϏε͸ಈ͔ͨ͠··
    ཪଆશ෦࡞Γ௚͢͜ͱʹ
    ͳͬͪΌͬͨ

    View Slide

  26. ΍Δ͜ͱ͕ଟ͍ͷʹ

    ࣌ؒ͸଍Γͳ͍ʂ
    ࣌୹͠ͳ͖Όʜʂ

    View Slide

  27. ͱ͍͏͜ͱͰ

    View Slide

  28. ݱ৔Ͱ࣮ફʂ
    )PUXJSFΛ༻͍ͯ
    ։ൃΛՃ଎ͨ͠ํ๏

    View Slide

  29. )PUXJSF֓ཁ

    View Slide

  30. ݱ୅ͷϞμϯͳ8FCΞϓϦ
    +40/Λૹड৴ͯ͠%0.Λߏங͢Δʂ
    αʔό
    ϑϩϯτΤϯυ
    ϑϨʔϜϫʔΫ
    +40/
    ʘ%0.Λߏஙʗ

    View Slide

  31. )PUXJSFͷΞϓϩʔν
    +40/Ͱ͸ͳ͘)5.-Λૹ৴͢Δ͜ͱͰɺ+BWB4DSJQUΛ͋·Γ࢖Θͣʹ

    Ϟμϯͳ8FCΞϓϦέʔγϣϯΛߏங͢Δʂ
    αʔό )PUXJSF
    )5.-
    ʘ)5.-Λࠩ͠ସ͑ʗ

    View Slide

  32. ͬ͘͟Γػೳ঺հ
    5VSCP+4Λॻ͔ͣʹ41"ϥΠΫͳΞϓϦΛ࡞ΕΔ
    5VSCP%SJWF
    վળ൛5VSCPMJOLTը໘ભҠ࣌ʹCPEZ͚ͩࠩ͠ସ͑
    5VSCP'SBNF
    UVSCPGSBNFλάͰғͬͨ෦෼ͷΈࠩ͠ସ͑
    5VSCP4USFBN
    ෳ਺Օॴͷ)5.-Λಉ࣌ʹࠩ͠ସ͑

    View Slide

  33. ͬ͘͟Γػೳ঺հ
    4UJNVMVT
    ܰྔ+4ϑϨʔϜϫʔΫ
    5VSCPͰରԠ͖͠Εͳ੍͍ޚΛαϙʔτ͢Δ
    +4ͱ)5.-Λ੾Γ཭͠ɺ੔ཧ͢ΔϨʔϧΛෑ͍ͯ͘ΕΔ
    4USBEB
    ͍ͭઌ೔ϦϦʔε͞Εͨ͹͔ΓͳͷͰ͕͢ɺ

    ϞόΠϧΞϓϦ޲͚ͷػೳͷͨΊࠓ೔͸ׂѪ͠·͢🙇

    View Slide

  34. Ϧονͳ6*͕࡞ΕΔʂ

    View Slide

  35. ʮϦονʯͳͷʹʮ࣌୹ʯʁ
    ົͩͳʜ

    View Slide

  36. ࣮ફʂ)PUXJSF

    View Slide

  37. ˞஫ҙ˞
    ҎԼͷ΋ͷ͕ಋೖ͞Ε͍ͯΔલఏͰ࿩͕ਐΈ·͢
    )PUXJSF
    ԿΒ͔ͷ$44ϑϨʔϜϫʔΫ
    ຊηογϣϯͰ͸#VMNBΛ࠾༻͍ͯ͠·͢
    ྃ͝ঝԼ͍͞🙇

    View Slide

  38. Α͋͘Δཁ݅ͱղܾࡦ

    View Slide

  39. DSFBUFલͷ֬ೝը໘

    View Slide

  40. ֬ೝը໘ͱ͸ʁ
    SBJMTͰ࣮૷͠΍͍͢جຊͷྲྀΕ
    OFX
    $SFBUFE
    1045

    View Slide

  41. ֬ೝը໘ͱ͸ʁ
    ҰํͰɺΑ͋͘Δػೳཁٻ
    OFX
    1045
    $SFBUFE
    ҎԼͷ಺༰Ͱ
    ࡞੒ͯ͠
    ΑΖ͍͠Ͱ͔͢ʁ
    *%YYY!ZZZ
    18
    1045
    ֬ೝը໘ʂ

    View Slide

  42. ֬ೝը໘͍ͬͯͨ΁Μ
    ೖྗ్தͷ৘ใ͸Ͳ͏อ࣋͢Δ͔ʁ
    SBJMTͷWJFXͷΈͰ͸ը໘શମ͕ஔ͖׵Θͬͯ͠·͏ʜ
    ֬ೝը໘Λදࣔ͢Δͱɺೖྗ͞Εͨ৘ใ͸ফ͑ͯ͠·͏ʂ
    ରॲํ๏
    IJEEFO@
    fi
    FMEͰอ࣋͠ଓ͚Δ
    ࡞੒్தͷϨίʔυ΋อଘͰ͖ΔϞσϧΛ࣮૷͢Δ

    View Slide

  43. ֬ೝը໘͍ͬͯͨ΁Μ
    ʮը໘Λͭ૿΍͚ͩ͢ʯͱ͸ݴ͏΋ͷͷʜ
    ૢ࡞ϑϩʔ͕ෳࡶԽ͢Δʂ
    ֬ೝը໘ͷʮΩϟϯηϧʯ͸Ͳ͏͢Δʜʁ
    ֬ೝը໘ͷޙʹΤϥʔʹͳͬͨ৔߹͸Ͳ͏͢Δʜʁ

    View Slide

  44. )PUXJSFͰͲ͏࣌୹͢Δ͔

    View Slide

  45. ࣮ࡍʹΈͯΈΑ͏

    View Slide

  46. %FNP
    Ϣʔβʔ͕ೖྗͨ͠৘ใΛ

    ʮอଘલʹ֬ೝʯ͍ͤͨ͞ʜʂ

    View Slide

  47. %FNP
    Ϣʔβʔ͕ೖྗͨ͠৘ใΛ

    ʮอଘલʹ֬ೝʯ͍ͤͨ͞ʜʂ
    ը໘ભҠΛͤͣʹ

    ϞʔμϧμΠΞϩάΛදࣔ͢Ε͹໨తୡ੒ʂ

    View Slide

  48. ࣮૷ํ๏
    ௨ৗͷೖྗϑΥʔϜʹՃ͑ͯ

    μΠΞϩάදࣔ༧ఆ஍Λ༻ҙ͓ͯ͘͠
    ˢ͜͜ʹۭͷEJWΛίοιϦઃஔ

    View Slide

  49. ࣮૷ํ๏
    1045DPO
    fi
    SNͨ͠ࡍͷϨεϙϯεʹͯ

    UVSCP@TUSFBNVQEBUF͢Δ͜ͱͰ%0.ࠩ͠ସ͑
    μΠΞϩά෦෼ͷ)5.-ͷΈSFOEFS͢Δ
    DPO
    fi
    SNUVSCP@TUSFBNTMJN

    View Slide

  50. ࣮૷ํ๏
    ೖྗ஋͸ϞʔμϧμΠΞϩά಺ʹ

    IJEEFO@
    fi
    FMEͰอ͓࣋ͯ͘͠

    View Slide

  51. ࣮૷ํ๏
    ೖྗը໘ʹ໭͍ͨ͠৔߹͸

    ϞʔμϧμΠΞϩάΛ࡟আ͢Δ͚ͩʂ
    ϑΥʔϜΛ࠶ඳը͍ͯ͠ͳ͍ͨΊ

    ೖྗ஋͕࢒ͬͨ··ʹͳ͍ͬͯΔ

    View Slide

  52. Ԡ༻
    Τϥʔදࣔʹ΋Ԡ༻Մೳ
    ʮΤϥʔϝοηʔδʯ͚ͩSFOEFS͢Ε͹Α͍

    View Slide

  53. Կ͕خ͍͠ʁ
    )PUXJSFແ͠ͷ৔߹

    Ϣʔβʔ͕ೖྗͨ͠ঢ়ଶΛ࠶ݱͯ͠

    Θ͟Θ͟࠶ඳը͢Δ࣮૷͕ඞཁʹͳΓ͕ͪ
    ෳࡶͳೖྗϑΥʔϜͩͱ

    ʮશͯͷϑΥʔϜΛ෮ݩͯ͠SFOEFSʯ

    ͢Δ࣮૷޻਺͕ͲΜͲΜ;͘ΒΜͰ͍͘

    View Slide

  54. )PUXJSFͳ֬ೝը໘
    Ϧονͳ6*Λఏڙʂ
    ͞Βʹɺ7JFXͷ࣮૷ྔΛ࡟ݮʂ
    ࣌୹࣮૷ʂ

    View Slide

  55. ϑΥʔϜͷಈత੾Γସ͑

    View Slide

  56. Α͋͘Δཁٻ
    ͭͷϑΥʔϜΛมߋ͢ΔͱɺผͷϑΥʔϜ͕࿈ಈͯ͠੾ΓସΘΔ
    ϑΥʔϜͷಈత੾Γସ͑
    νΣοΫϘοΫε νΣοΫϘοΫε
    બ୒ࢶ"
    બ୒ࢶ#
    બ୒ࢶ$

    View Slide

  57. ϑΥʔϜͷಈత੾Γସ͑
    3BJMTͷWJFXͩͱʜ
    )5.-Λෳ਺༻ҙ͓͍ͯͯ͠+BWB4DSJQUͰ੾Γସ͑Δ
    ϑΥʔϜͷબ୒ࢶͳͲΛ"1*Ͱฦ͢Α͏ʹ͓͖ͯ͠ɺ

    +BWB4DSJQUͰϦΫΤετˠཁૉΛஔ͖׵͑Δ
    ͳͲͷରԠ͕ඞཁ
    ͍ͣΕʹͯ͠΋ɺ+BWB4DSJQUͰϑϩϯτΤϯυΛߏங͢Δඞཁ͋Γʜ

    View Slide

  58. %FNP
    ϑΥʔϜΛಈతʹ੾Γସ͍͑ͨʜʂ

    View Slide

  59. ࣮૷ํ๏
    4UJNVMVTΛ͏·͘࢖͓͏ʂ

    View Slide

  60. ࣮૷ํ๏
    EBUBDPOUSPMMFSଐੑΛࢦఆ͢Δͱ

    ࣗಈͰ4UJNVMVT$POUSPMMFS͕Ξλον͞ΕΔ
    EBUBBDUJPOଐੑΛࢦఆ͢Δͱ

    DIBOHF΍JOQVUͱ͍ͬͨΠϕϯτʹର͢Δ

    ൓ԠΛఆٛ͢Δ͜ͱ͕Ͱ͖Δ

    View Slide

  61. ࣮૷ํ๏
    4UJNVMVT$POUSPMMFSʹ+4ͷॲཧΛఆٛͰ͖Δ
    5VSCP4USFBNΛϦΫΤετ͢Δ͜ͱ΋Մೳʂ

    View Slide

  62. ࣮૷ํ๏
    UVSCP@TUSFBNVQEBUFͰը໘ͷҰ෦෼͚ͩࠩ͠ସ͑
    ͖ͬ͞ͷϞʔμϧͷྫͱಉ͡
    બ୒ࢶ͚ͩࠩ͠ସ͑

    View Slide

  63. )PUXJSFͳಈత੾Γସ͑
    Ϧονͳ6*Λఏڙʂ

    View Slide

  64. )PUXJSFͳಈత੾Γସ͑
    Ϧονͳ6*Λఏڙʂ
    ಛఆϖʔδʹ͔͠࡞༻͠ͳ͍+BWB4DSJQUʂ

    View Slide

  65. )PUXJSFͳಈత੾Γସ͑
    Ϧονͳ6*Λఏڙʂ
    ಛఆϖʔδʹ͔͠࡞༻͠ͳ͍+BWB4DSJQUʂ
    ࣌୹࣮૷ʂ

    View Slide

  66. )PUXJSFͰਝ଎ʹ࣮૷͢Δͧʂ

    ͷίʔφʔͰͨ͠

    View Slide

  67. ຊ൪ར༻޲͚5JQT

    View Slide

  68. ͍ͭͲΜͳͱ͖ʹ

    )PUXJSFΛ࠾༻͢Δͷ͔ʁ

    View Slide

  69. )PUXJSFͷಛ௃
    )PUXJSFͷϝϦοτ
    +BWB4DSJQUΛॻ͘࿑ྗ͸࠷খݶʹɺ41"͕Ͱ͖ΔΑ͏ʹͳΔʂ
    αʔόʔαΠυʹϩδοΫΛू໿ɺ࠶ར༻͕Ͱ͖Δʂ
    )PUXJSFͷσϝϦοτ
    7VFKT΍3FBDU΄Ͳࡉ͔͍͜ͱ͸Ͱ͖ͳ͍
    5VSCPʹΑΔը໘ߋ৽͸ຖճ௨৴͕ඞཁʹͳΔͧʂ
    4UJNVMVT΋ෳࡶͳ%0.ૢ࡞͸αϙʔτ͍ͯ͠ͳ͍

    View Slide

  70. ͜ΜͳέʔεͰ࢖͍΍͍͢ʂ
    ը໘ଆ͕)PUXJSFͰे෼࣮ݱͰ͖ΔαʔϏε
    ࣾ಺޲͚ͷ؅ཧը໘ʹ࠾༻͢Δͱ͍͏ख΋
    όοΫΤϯυΤϯδχΞ͕ଟ͍ϓϩδΣΫτ

    View Slide

  71. ࣄྫ
    ๯಄ʹ঺հͨ͠ʮϠΫνΤʯ͸ϞόΠϧΞϓϦ͕ϝΠϯίϯςϯπ

    View Slide

  72. ࣄྫ
    ๯಄ʹ঺հͨ͠ʮϠΫνΤʯ͸ϞόΠϧΞϓϦ͕ϝΠϯίϯςϯπ
    8FCϖʔδ͕ඞཁͳػೳ͸Ұ෦ͷΈ ϢʔβʔೝূϖʔδͳͲ

    )PUXJSFͰे෼࣮ݱՄೳʂ
    ʮ%#Ҡߦʯʮೝূج൫ߏஙʯͳͲͷԑͷԼΛࢧ͑ΔλεΫ͕ଟ͍
    αʔόଆ͸όοΫΤϯυॏࢹͷମ੍ͱͳΔʂ

    View Slide

  73. ϒϥ΢βࠩ෼

    View Slide

  74. ϒϥ΢βࠩ෼
    )PUXJSF͸ʮ'FUDI"1*ʯͳͲͷ৽͍͠"1*Λར༻͓ͯ͠Γ

    Ϟμϯϒϥ΢βͰ͔͠ಈ࡞͠ͳ͍
    *OUFSOFU&YQMPSFS͕ఱणΛશ͏ͨ͠ࠓɺ

    Ϟμϯϒϥ΢β͔Ͳ͏͔Λؾʹ͢Δඞཁ͸ͳ͍ʜʜ

    View Slide

  75. ϒϥ΢βࠩ෼
    )PUXJSF͸ʮ'FUDI"1*ʯͳͲͷ৽͍͠"1*Λར༻͓ͯ͠Γ

    Ϟμϯϒϥ΢βͰ͔͠ಈ࡞͠ͳ͍
    *OUFSOFU&YQMPSFS͕ఱणΛશ͏ͨ͠ࠓɺ

    Ϟμϯϒϥ΢β͔Ͳ͏͔Λؾʹ͢Δඞཁ͸ͳ͍ʜʜ
    ͸ͣͰ͕ͨ͠

    View Slide

  76. ཁ஫ҙʂJ04
    ݹ͍4BGBSJͰ4UJNVMVT$POUSPMMFS͕ϩʔυͰ͖ͳ͍ใࠂ͋Γ
    IUUQTHJUIVCDPNIPUXJSFETUJNVMVTSBJMTJTTVFT

    View Slide

  77. ཁ஫ҙʂJ04
    J04ͰཁૉΛࢀর͢ΔʮUBSHFUʯػೳ͕࢖͑ͳ͍ʂτϥϒϧʹૺ۰
    ެࣜͷه๏Ͱ͸ಈ͔ͳ͍ʜʜ

    View Slide

  78. ཁ஫ҙʂJ04
    ͜ͷ໰୊͸ه๏Λม͑Δ͜ͱͰରॲՄೳ
    ΋͠ಉ͡໰୊Λ౿ΜͩΒࢼͯ͠ΈͯͶ

    View Slide

  79. ཁ஫ҙʂJ04
    .PCJMF4BGBSJͱ͍͏Ϟμϯϒϥ΢β͸

    όʔδϣϯ͕J04ࣗମͷόʔδϣϯʹґଘ͢Δͱ͍͏

    Ϟμϯͳઃܭʹͳ͍ͬͯΔ
    ݹ͍J04ͷϢʔβʔ͸4BGBSJͷڍಈ΋ݹ͍··
    ೥ݱࡏɺݹ͍J04͸΅ͪ΅ͪαϙʔτΛ੾Γ͍͕ͨɺ

    Ϣʔβʔར༻཰ͳͲ͔Β੾Εͳ͍έʔε΋ʜ

    View Slide

  80. ϒϥ΢βࠩ෼
    ೦ͷͨΊɺαϙʔτ͍ͯ͠Δϒϥ΢β04Ͱ

    ࠷΋ݹ͍؀ڥͰૣΊʹಈ࡞֬ೝΛ͓ͯ͘͠ͷ͕٢
    ༨ܭͳख໭ΓΛݮΒͦ͏ʂ
    ϒϥ΢βࠩ෼ͰࠔͬͯΔΈΜͳʂ஥ྑ͘͠·͠ΐ͏ʂ
    աڈ೥͘Β͍ͣͬͱࠔͬͯΔ

    View Slide

  81. Ͳ͏ͯ͠΋
    5VSCPΛແޮԽ͍ͨ͠ʜ

    View Slide

  82. 5VSCPແޮԽͷӨڹ
    ϑΥʔϜͳͲʹEBUBUVSCPGBMTFΛࢦఆ͢ΔͱແޮԽ͕Մೳ
    ˞$VTUPN63-4DIFNF΁ͷભҠ͕'FUDI"1*Ͱ͸Ͱ͖ͳ͔ͬͨͨΊ

    ɹಛఆϑΥʔϜͷΈ5VSCPແޮԽ͢Δ݁࿦ʹࢸΔʜʜ

    View Slide

  83. ࿈ଓTVCNJU͕๷ࢭͰ͖ͳ͘ͳΔ
    ௨ৗ͸ϑΥʔϜૹ৴࣌ʹϘλϯ͕

    ࣗಈͰແޮԽ͞ΕΔ
    UVSCPΛແޮԽ͢Δͱ

    ͦͷػೳ͝ͱͳ͘ͳͬͯ͠·͏ʜ
    ࿈ଓ1045͞Εͯ͠·͏ͳͲ

    ผͷτϥϒϧΛݺͼ͕ͪ
    TVCNJU࣌ʹࣗಈແޮԽ

    View Slide

  84. ๷ࢭાஔ෮׆ͷّࣜ
    1045ͨ͠ΒTVCNJUΛແޮԽ͢Δॲཧ͚ͩ෮׆ͤ͞Α͏
    JOQVUΛ୳͠EJTBCMF͢ΔॲཧΛ࡞͓͖ͬͯʜ

    View Slide

  85. ๷ࢭાஔ෮׆ͷّࣜ
    1045ͨ͠ΒTVCNJUΛແޮԽ͢Δॲཧ͚ͩ෮׆ͤ͞Α͏
    JOQVUΛ୳͠EJTBCMF͢ΔॲཧΛ࡞͓͖ͬͯʜ
    4UJNVMVT$POUSPMMFSΛΞλονͯ͠TVCNJU࣌ʹൃՐͤ͞Α͏

    View Slide

  86. ຊ൪ಋೖϊ΢ϋ΢
    ͷ͝঺հͰͨ͠

    View Slide

  87. ͦΖͦΖ͓ผΕͷ࣌ؒ

    View Slide

  88. ͓ΘΓʹ
    5VSCPMJOLTͷѱເ͸΋͏๨ΕΑ͏ʂ
    5VSCP͸ౕ͍͍ʂ
    )PUXJSFΛɺٕज़બఆͷબ୒ࢶʹೖΕͯΈͯ͸ʁ
    ސ٬͸୭΋ݟͳ͍؅ཧը໘ɺ3FBDU΍7VFͷಋೖ͸ຊ౰ʹඞཁͰ͔͢ʜʁ
    ͦΜͳը໘Ͱ΋ܧଓతʹϝϯςφϯεͰ͖·͔͢ʁ

    View Slide

  89. View Slide

  90. ΞϑλʔΠϕϯτ΍Γ·͢ʂ
    IUUQTDPOOQBTTDPNFWFOU

    View Slide