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

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

juve534
March 31, 2019

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

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

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

juve534

March 31, 2019
Tweet

More Decks by juve534

Other Decks in Technology

Transcript

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

    View Slide

  2. ࣗݾ঺հ
    • Twitter / GitHub
    • juve534
    • ࢓ࣄ
    • ࠷ۙ·ͰϨΨγʔγεςϜͷอक։ൃ
    • ݱࡏ͸PHP7 + Laravelͷ৽ن։ൃ
    • ޷͖ͳαοΧʔνʔϜ
    • Ϣϕϯτε(Juventus)

    View Slide

  3. ϨΨγʔίʔυʹ
    ࠷௿ݶͷடংΛ΋ͨͤΔ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. ࠷௿ݶͷடংΛߟ͑Δ
    • ୯ମςετ
    • ෳ਺Ϟδϡʔϧͱີ݁߹Ͱςετ͕ॻ͚ΔΑ͏ʹͳ͍ͬͯͳ͍
    • ܰྔͰ࢝ΊΒΕͳ͍
    • API࢓༷ॻ
    • 1͔Βચ͍ग़͢Ϩϕϧͷ࡞ۀ͕ඞཁ
    • ͜Ε΋ܰྔͰ࢝ΊΒΕͳ͍

    View Slide

  9. php -l

    View Slide

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

    View Slide

  11. ٕज़ݕূ͍ͯ͘͠

    View Slide

  12. վળҊ

    View Slide

  13. վળҊ

    View Slide

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

    View Slide

  15. վળҊ

    View Slide

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

    View Slide

  17. վળҊ

    View Slide

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

    View Slide

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

    View Slide

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

    https://circleci.com/docs/2.0/private-images/

    View Slide

  21. νʔϜʹܭըΛఏҊ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide