サービス開発する平成の君に 昭和の僕から伝えたい7つのこと@平成.rb #2

サービス開発する平成の君に 昭和の僕から伝えたい7つのこと@平成.rb #2

586a2d464eed3c7e5dd809d6fe0269d7?s=128

YABOO JAPAN

March 14, 2019
Tweet

Transcript

  1. αʔϏε։ൃ͢Δฏ੒ͷ܅ʹ ত࿨ͷ๻͔Β఻͍͑ͨ7ͭͷ͜ͱ @yaboojp ฏ੒.rb #2 2019/3/14

  2. Self • Identifer • େ༅ Ӭ / Ϡϒ / @yaboojp

    • Job: • 22Inc. ૑ۀ -> Co-Founder & CTO • NTTdata -> ৽ଔͰΤϯδχΞ • Ed • େֶ -> ࣗવݴޠղੳͷݚڀ • ֶੜϕϯνϟʔ -> ஍ҬݶఆϑϦϚαΠτʢPHPʣ • Location • ژ౎ -> ౦ژ • Favorites • ΫϥϑτϏʔϧ, Իָ, όΠΫ, JALϚΠϧ
  3. ত࿨ͱ͸ʁ • ͸͡Ίͯॻ͍ͨίʔυ͸Niftyʹஔ͍ͨHTML • <table>ͱ<frame>ͰϨΠΞ΢τͨ͠ૉఢͳ ϚʔΫΞοϓɻCSSͳ͠ɻ௚઀ελΠϧఆٛ

  4. ͓ؾ࣋ͪ ত ࿨ ͷ ࿝ ֐ ͩ

  5. ΊͬͪΌ͍͍͜ͱॻ͍ͯ͋ͬͨ

  6. ؾΛऔΓ௚ͯ͠

  7. ࠓ೔ͷ࿩ • ϦʔϯελʔτΞοϓͩͬͨRailsϓϩδΣΫ τ • ΍Ε͹Α͔ͬͨ • ΍ͬͯΑ͔ͬͨ

  8. None
  9. None
  10. ೥ؒͷ͕Μ͹Γ

  11. versions 2013೥11݄ 3.2 2015೥8݄ 4.2 2018೥12݄ 5.0 2019೥1݄ 5.2

  12. Ұ౓੒௕ͨ͠%#εΩʔϚ ͸खڧ͍Ͱ

  13. DBઃܭ • ActiveRecordͷόϦσʔγϣϯ͸͋ͬ͞Γ͢ Γൈ͚Δ • DBεΩʔϚมߋ͸େม • ಛʹ੍໿͸σʔλύονඞཁʹͳΔ • NOT

    NULL, UNIQUE INDEX, FORIGN KEY
  14. ྫ͑͹

  15. ࣮ߦͰ͖ͳ͍Migration

  16. ϧʔςΟϯά͸ ؆୯ʹ͸ม͑Ε΁Μ

  17. URLઃܭ • ಛʹAPIͳͲ͸มߋ͠ʹ͍͘ • ໊લۭؒ͸ͪΌΜͱ෼͚ͱ͘

  18. URLઃܭͷഁ୼ Πϝʔδ • େྔͷόʔδϣχϯά

  19. URLઃܭͷഁ୼ Πϝʔδ • େྔͷϦμΠϨΫτ

  20. ηΩϡϦςΟ͸ଈࢮ͢Δ͠ ϗϯϚʹؾ͚͌ͭΔΜ΍Ͱ

  21. ηΩϡϦςΟ • ͱΓ͋͑ͣɺࢮ͵ؾͰ on Rails • cookieηογϣϯ࢖Θͳ͍ʢηογϣϯϋΠδϟοΫʣ • ΧδϡΞϧʹprotect_from_forgeryΛΦϑΒͳ͍ʢCSRFʣ •

    ActiveRecordͷΫΤϦʹࣜల։ͨ͠จࣈྻΛ౉͞ͳ͍ʢSQL Injectionʣ • FragmentCache͸҆қʹ࢖Θͳ͍
  22. SQL Injection • ͜Ε͚ͩͩͱ໰୊ͳ͘ݟ͑Δ

  23. SQL Injection • தͷ࣮૷ͳΜͯ஌ΒΜ͕ͳ

  24. Ωϟογϡ ࣄނྫ

  25. Ωϟογϡ ࣄނྫ !QPTUͷJE  VQEBUFE@BU ͕Ωʔͱͯ͠࢖ΘΕΔ ॳճΞΫηεͷϢʔβ͕ BENJOͷ৔߹ ͜Ε͕ΩϟογϡʹͷΔ

  26. ͱͷࠩ͸ ͋·Γʹ΋େ͖͍

  27. ςετͷଘࡏ • ΧόϨοδ͸ͦ͜·Ͱؾʹ͠ͳͯ͘΋ɻ • ࡉ͔͘ॻ͖͗ͯ͢΋ෆཁʹͳͬͨΓ଍ᐫʹͳΔ͜ͱ΋ɻ • E2E,RequestSpec͸࠷௿શମΛΧόʔ͢Δ͙Β͍ཉ͍͠ • ModelSpec͸ɺਖ਼ৗܥͷ1ύλʔϯ͚ͩͰ΋ଘࡏ͢Δҙ ຯ͸େ͖͍ɺςετͷଘࡏ

    0ͱ1ͷࠩ͸େ͖͍ɻ
  28. versions 2013೥11݄ 3.2 2015೥8݄ 4.2 2018೥12݄ 5.0 2019೥1݄ 5.2 ςετ

    ສΞϓϦϢʔβ ☓
  29. ૷උ͸େࣄ΍Ͱ

  30. ίʔυ࡟আ • ೔ৗతʹ΍Δ͜ͱͰফ͠ʹ͕͋͘͞Ε͹ʹૣ Ίʹؾ෇͚Δ • CSS/JS/IMGͷϧʔϧ • ίʔσΟϯά/໋໊ن໿ • SPAʹ͢Δͷ͔͠ͳ͍ͷ͔ʁ

  31. ͜·ΊͳGemΞοϓσʔτ • ཷΊΔͱͲΜͲΜ΍Βͳ͘ͳΔѱ॥؀ • dependabotΦεεϝ

  32. None
  33. ৘ใେࣄ

  34. ࿭Θ͞Εͳ͍ • ActiveRecordͷCallback • ౰࣌ϙδςΟϒͳΤϯτϦ͕ଟ͔ͬͨɻ • ϩδοΫ͕ॻ͔Ε͗ͯ͢ɺͲ͜Ͱߋ৽͞Ε ͔ͨΘ͔Βͳ͍ɻ • ίʔϧόοΫ஍ࠈʹͳΔ

  35. ·ͱΊ 1.DBઃܭ ͸৻ॏʹ 2.URLઃܭ͸৻ॏʹ 3.ηΩϡϦςΟ͸ͳʹΑΓେࣄ 4.ςετͷଘࡏ 0ͱ1ͷࠩ͸େ͖͍ 5.ෆཁίʔυ͸͙͢࡟আ 6.Gemͷߋ৽ΛఘΊͳ͍ 7.࿭Θ͞Εͳ͍

  36. ΊͬͪΌืू

  37. ͝ਗ਼ௌ͓͓͖ʹ