レガシーコードに最低限の秩序をもたせる

C84c2275d7e128a0029e704c1353f534?s=47 juve534
March 31, 2019

 レガシーコードに最低限の秩序をもたせる

仕様書もないレガシーモジュールに最低限の秩序をもたせる為に何ができるかを考え、対応した話をします。
主にCI環境を構築した話になると思います。

テストコードを書いて、カバレッジ100%とかは非現実的な話はしません。

C84c2275d7e128a0029e704c1353f534?s=128

juve534

March 31, 2019
Tweet

Transcript

  1. ϨΨγʔίʔυʹ ࠷௿ݶͷடংΛ΋ͨͤΔ 2019/03/31 PHPerKaigi2019 @juve534

  2. ࣗݾ঺հ • Twitter / GitHub • juve534 • ࢓ࣄ •

    ࠷ۙ·ͰϨΨγʔγεςϜͷอक։ൃ • ݱࡏ͸PHP7 + Laravelͷ৽ن։ൃ • ޷͖ͳαοΧʔνʔϜ • Ϣϕϯτε(Juventus)
  3. ϨΨγʔίʔυʹ ࠷௿ݶͷடংΛ΋ͨͤΔ

  4. ͖͔͚ͬ • ࢓༷ॻͳ͠ͷΦϨΦϨFWͰɺӡ༻͞Ε͍ͯͨγε ςϜͷ։ൃ͍ͯͨ͠ • ৽͘͠ೖͬͨਓ͸ɺӨڹൣғ͕Θ͔Βͳ͍ • ςετ৔ॴΛؒҧ͑ɺ୯७ͳϛεͰো֐ʹͳͬ ͯ͠·ͬͨ →͜ΕΛվળ͍ͨ͠…

  5. ର৅ • 10೥Ҏ্લ͔Β͋ΔαʔϏεͷAPI • ෳ਺Ϟδϡʔϧͱີ݁߹͍ͯ͠Δ • ฏۉ݄ͯ͠1ͷස౓ͰϦϦʔε͞Ε͍ͯΔ

  6. ؀ڥ • PHP5.xܥ • ࢓༷ॻͳ͠Ͱςετൣғ͕෼͔ΓͮΒ͍ • όʔδϣϯ؅ཧ͸CVS →͜ΕΒͷ؀ڥΛͰ͖Δ͚ͩվળ͢Δ

  7. վળҊ • PHP5.xܥ • ෳ਺Ϟδϡʔϧͱີ݁߹Ͱݫ͍͠ • ࢓༷ॻͳ͠Ͱςετൣғ͕෼͔ΓͮΒ͍ • CIπʔϧ(CircleCI)Ͱ࠷௿ݶͷடংΛ΋ͨΒ͢ •

    όʔδϣϯ؅ཧ͸CVS • GitHubʹҠߦ
  8. ࠷௿ݶͷடংΛߟ͑Δ • ୯ମςετ • ෳ਺Ϟδϡʔϧͱີ݁߹Ͱςετ͕ॻ͚ΔΑ͏ʹͳ͍ͬͯͳ͍ • ܰྔͰ࢝ΊΒΕͳ͍ • API࢓༷ॻ •

    1͔Βચ͍ग़͢Ϩϕϧͷ࡞ۀ͕ඞཁ • ͜Ε΋ܰྔͰ࢝ΊΒΕͳ͍
  9. php -l

  10. ࠷௿ݶͷடংΛߟ͑Δ • PHPඪ४ίϚϯυ • γϯλοΫεΤϥʔΛݕ஌͢Δ • ϨΨγʔίʔυͰ΋࢖͑Δ • ܰྔͰ࢝ΊΒΕΔ →࠷௿ݶͷடংʹ;͞Θ͍͠ͱߟ͑ͨ

  11. ٕज़ݕূ͍ͯ͘͠

  12. վળҊ

  13. վળҊ

  14. վળҊ ϓϧϦΫݕ஌ͯ͠ɺCircleCI͕ಈ͍ͯ͘ΕΔ

  15. վળҊ

  16. վળҊ CircleCIͷΠϝʔδઃఆͰAmazon ECRΛࢦఆ https://circleci.com/docs/2.0/private-images/

  17. վળҊ

  18. վળҊ γϯλοΫενΣοΫ͸γΣϧΛ࣮ߦ͠·͢ http://48n.jp/blog/2016/08/08/php-lint- with-ci/

  19. վળҊ γϯλοΫεΤϥʔ͕͋ͬͨΒݕ஌

  20. վળҊͷϙΠϯτ • Πϝʔδͷ؅ཧʹAmazon ECRΛ࢖͏ • Docker Hubʹࣗ෼͕࢖͍͍ͨόʔδϣϯͷΠϝʔ δ͕ݟ͔ͭΒͳ͔ͬͨ • ࣗ෼Ͱ༻ҙ͢Δඞཁ͕͋Δ

    • CircleCIͷެࣜʹ࿈ܞํ๏͕ॻ͍ͯ͋ͬͨ
 https://circleci.com/docs/2.0/private-images/
  21. νʔϜʹܭըΛఏҊ

  22. Ͳ͏ͳ͔ͬͨ • ܭըʹࢍಉͯ͠΋Β͑ͨ • ࠓճͷର৅Ҏ֎ʹ΋ಋೖ͠Α͏ͱ͍͏࿩ʹͳͬͨ • CIπʔϧΛ࢖ͬͨ࣍ͷվળҊ͕ग़͖ͯͨ

  23. ·ͱΊ • ϨΨγʔίʔυͩͬͯվળͷݟࠐΈ͸͋ͬͨ • php -l ͳΒܰྔͰ࢝ΊΒΕΔ͜ͱ͕Θ͔ͬͨ • ϨΨγʔίʔυͰ΋Ͱ͖ΔൣғͰߟ͍͑ͯ͘͜ ͱ͕େ੾ͩͱࢥͬͨ

  24. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ Twitter/GitHub juve534