Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[tamarubykaigi01]こわくないDSL

ken3ypa
July 06, 2019

 [tamarubykaigi01]こわくないDSL

Tama Ruby会議01にて発表した資料です。
https://tama-rb.github.io/tamarubykaigi01/

ken3ypa

July 06, 2019
Tweet

More Decks by ken3ypa

Other Decks in Programming

Transcript

  1. 
 ͜Θ͘ͳ͍%4- ! L F O  Z Q B

    ג ࣜ ձ ࣾ ສ ༿ 
 5B N B  3 V C Z ձ ٞ   ͜Θ͘ͳ͍%4-  ౔  5BNB3VCZձٞ !LFOZQB
  2. Έͳ͞Μʂ %4-ɺॻ͍ͯ·͔͢ʁ 3 B J M T  3 B

    D L  3 4 Q F D  $ B Q Z C B S B
  3. ɾ ͱ ͯ ΋ ਎ ۙ ͳ ଘ ࡏ 

    ɾ ຖ ೔ ৮ Ε Δ  ɾ ΋ͬͱ ͓ ۙ ͮ ͖ ʹ ͳ Γͨ ͍
  4. ͜ Μ ͳ ͔Μ ͡ ͷ ܗ Λ ͠ ͨ

    % 4 - Λ ࡞ Γ ͭ ͭ
  5. ࡞ Δ ࠷ த ʹ ग़ ͯ ͘ Δ 

    ͜ ͷ ล ͷ ٕ ज़ త τ ϐο Ϋ Λ ֶ ΜͰ ͍ ͖ ͨ ͍
  6. ͨ ͱ ͑ ͹ ͜ Μ ͳ ͔Μ ͡ DSFBUF@UBTL@MJTUࠓ೔ͷλεΫϦετEP

    BEE@UBTLEP OBNFλεΫ" EFTDSJQUJPOొ࿥͍ͨ͠λεΫΛೖྗ͠·͢ EVF@POb QSJPSJUZߴ FOE FOE
  7. DSFBUF@UBTL@MJTU lࠓ೔ͷλεΫz EP BEE@UBTLEP OBNF l%4-࡞੒z  EFTDSJQUJPO l͕Μ͹Δͧz 

    FOE FOE ׅ ހ Λ ͭ ͚ ͳ ͍ ͷ ͕ ί π 10*/5 3VCZ͸ׅހΛলུग़དྷΔ
  8. EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP 

    FOE FOE Ҿ ਺ Λ ड ͚ औ Ε Δ Α ͏ ʹ ͳͬ ͨ  DSFBUF@UBTL@MJTU ϝιου௥Ճ ୈҰҾ਺ɹจࣈྻ ୈೋҾ਺ɹϒϩοΫ
  9. EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP 

    FOE FOE Μ ʁ  DSFBUF@UBTL@MJTU ϝιου௥Ճ ୈҰҾ਺ɹจࣈྻ ୈೋҾ਺ɹϒϩοΫ
  10. CMPDL@HJWFO EFGDSFBUF@UBTL@MJTU FOE ί ϯ ς Ωε τ ಺ ʹ

    ϒϩ ο Ϋ ͕  ౉ ͬͯ ͖ͯ ͍ͨ Β ɺ U S V F Λ ฦ ͢
  11. EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO 

    FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ⁠ϒϩοΫ಺Ͱݺͼग़͢ ϝιουΛ௥Ճ ZJFMEJGCMPDL@HJWFO Ͱ ϒϩοΫ಺ͷ खଓ͖Λॱ࣮࣍ߦ
  12. EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO 

    FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ⁠ϒϩοΫ಺Ͱݺͼग़͢ ϝιουΛ௥Ճ BEE@UBTLϝιου΋௥Ճ͠ ͞ΒʹϒϩοΫΛݺͼग़͢
  13. EFGOBNF BUUS@OBNF  QVUTBUUS@OBNF FOE EFGEFTDSJQUJPO BUUS@EFTDSJQUJPO  QVUTBUUS@EFTDSJQUJPO FOE

    EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ⁡OBNFϝιουͱ EFTDSJQUJPOϝιου΋ ௥Ճͯ͋͛ͯ͠
  14. EFGOBNF BUUS@OBNF  QVUTBUUS@OBNF FOE EFGEFTDSJQUJPO BUUS@EFTDSJQUJPO  QVUTBUUS@EFTDSJQUJPO FOE

    EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ⁢࣮ߦ͢Δͱ ॲཧ͕ݺ͹ΕΔ ࣮ߦ݁Ռ  ࠓ೔ͷλεΫ %4-࡞੒ ͕Μ͹Δͧ
  15. EFGOBNF BUUS@OBNF  QVUTBUUS@OBNF FOE EFGEFTDSJQUJPO BUUS@EFTDSJQUJPO  QVUTBUUS@EFTDSJQUJPO FOE

    EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ͜ ͷ ล ͸ ར ༻ ऀ ʹ Ӆ ͯ͠ ͓ ͖ ͨ ͍
  16. EFGOBNF BUUS@OBNF  QVUTBUUS@OBNF FOE EFGEFTDSJQUJPO BUUS@EFTDSJQUJPO  QVUTBUUS@EFTDSJQUJPO FOE

    EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ·ͣ ͸ ͜ ͬͪ ͔ Β
  17. DMBTT5BTL EFGOBNF BUUS@OBNF  QVUTBUUS@OBNF FOE EFGEFTDSJQUJPO BUUS@EFTDSJQUJPO  QVUTBUUS@EFTDSJQUJPO

    FOE EFGBEE@UBTL ZJFMEJGCMPDL@HJWFO  FOE FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF ZJFMEJGCMPDL@HJWFO  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE Կ ΋ ߟ ͑ͣ ʹ Ϋ ϥε Ͱ ғ ͏ ͱ
  18. Ϩ γ ʔό ʹ ໰ ୊ ͕ ͋ Δ ͷ

    Ͱ ಈ ͘ ܗ ʹ म ਖ਼ 5BTLOFXBEE@UBTLEP 5BTLOFXOBNFlొ࿥͢Δz 5BTLOFXEFTDSJQUJPOlొ࿥ͨ͠z FOE
  19. Ͱ ΋ γά χ νϟ Λ ่ ͢ͱ ຊ ຤

    స ౗ ʜ 5BTLOFXBEE@UBTLEP 5BTLOFXOBNFlొ࿥͢Δz 5BTLOFXEFTDSJQUJPOlొ࿥ͨ͠z FOE
  20. JOTUBODF@FWBM ஔ ͖ ׵ ͑ͯ Έ Δ ͱ 5BTLOFX EP

    OBNFlొ࿥͢Δz EFTDSJQUJPOlొ࿥ͨ͠z FOE
  21. ϒϩ ο Ϋ ͸ Φ ϒ δΣ Ϋ τ Ͱ

    ͸ ͳ ͍ ͷ Ͱ  ͦ ͷ · ·Ͱ ͸ ౉ ͤ ͳ ͍ EP OBNFlొ࿥͢Δz EFTDSJQUJPOlొ࿥ͨ͠z FOE
  22. DMBTT5BTL EFGOBNF OBNF  QOBNF FOE EFGEFTDSJQUJPO EFTDSJQUJPO  QEFTDSJQUJPO

    FOE EFGBEE@UBTL CMPDL  5BTLOFXJOTUBODF@FWBM CMPDL  FOE FOE EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF 5BTLJOTUBODF@FWBM CMPDL  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE  ࠓ೔ͷλεΫ %4-࡞੒ ͕Μ͹Δͧ
  23. SFRVJSFbUBTLSC` EFGDSFBUF@UBTL@MJTU BUUS@UJUMF  QVUTBUUS@UJUMF 5BTLJOTUBODF@FWBM CMPDL  FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP

    BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ࣍ ͸ D S F B U F @ U B T L @ M J T U Λ · ͱ Ί ͨ ͍
  24. SFRVJSFbUBTLSC` NPEVMF5BTL-JTU#VJMEFS EFGDSFBUF@UBTL@MJTU UJUMF CMPDL  QVUTUJUMF 5BTLOFXJOTUBODF@FWBM CMPDL JGCMPDL@HJWFO

     FOE FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE Ϟ δϡʔϧ ʹ ੾ Γ ग़ ͯ͠ ͋ ͛Δ ͱ Α ͞ ͦ ͏
  25. SFRVJSFbUBTLSC` NPEVMF5BTL-JTU#VJMEFS EFGDSFBUF@UBTL@MJTU UJUMF CMPDL  ʜ FOE FOE DMBTT0CKFDU

    JODMVEF5BTL-JTU#VJMEFS FOE DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE ͍ ͚ ·͠ ͨ  ࠓ೔ͷλεΫ %4-࡞੒ ͕Μ͹Δͧ
  26. Ͱ ΋ ɺ ͜ Ε ͩ ͱ Ө ڹ ൣ

    ғ ͕ ਵ ෼ େ ͖ ͍ ͠  ΋͏ ͪ ΐͬͱ ε ο Ω Ϧ ॻ ͖ ͨ ͍Ͱ ͢ Ͷ
  27. SFRVJSFbUBTLSC` DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-࡞੒z EFTDSJQUJPOl͕Μ͹Δͧz FOE FOE γά χ νϟ

    ͕ ࣮ ݱ Ͱ ͖ͯ  ϩ δο Ϋ ΋ ෼ ཭ Ͱ ͖ ͨ ͷ Ͱ  ࠓ೔ͷλεΫ %4-࡞੒ ͕Μ͹Δͧ
  28. SFRVJSFbUBTLSC` DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-Λ࡞Δz EFTDSJQUJPOl50%0Ϧετz EVF@POl QSJPSJUZlߴz FOE BEE@UBTLEP OBNFlൃද͢Δz

    EFTDSJQUJPOl͕Μ͹Δz EVF@POl QSJPSJUZlதz FOE BEE@UBTLEP OBNFlϓϨθϯͷ४උΛ͢Δz EFTDSJQUJPOlؒʹ߹͏Α͏ʹ࿩͢z EVF@POl QSJPSJUZl௿z FOE FOE λ ε Ϋ ΋ ଍ ͯ͠ ͍ ͖ ·͢
  29. ग़ ྗ ͢Δ จ ࣈ ʹ ৭ Λ ͭ ͚Δ

    ͨ Ί  H F N ΋ ೖ Ε ·͢
  30. SFRVJSFbUBTLSC` DSFBUF@UBTL@MJTUlࠓ೔ͷλεΫzEP BEE@UBTLEP OBNFl%4-Λ࡞Δz EFTDSJQUJPOl50%0Ϧετz EVF@POl QSJPSJUZlߴz FOE BEE@UBTLEP OBNFlൃද͢Δz

    EFTDSJQUJPOl͕Μ͹Δz EVF@POl QSJPSJUZlதz FOE BEE@UBTLEP OBNFlϓϨθϯͷ४උΛ͢Δz EFTDSJQUJPOlؒʹ߹͏Α͏ʹ࿩͢z EVF@POl QSJPSJUZl௿z FOE FOE ͦ ͯ͠ ݺ ͼ ग़ ͢ͱ
  31. ࡞ Γ ํ Λ ஌ Δ ͱ  ৭ ʑ

    צ ͕ ޮ ͘ Α ͏ ʹ ͳͬͯ ͖ ͨ