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

僕達がやってきたレガシープロジェクトとの付き合い方 / PHP CONFERENCE FUKUOKA 2017

nabeen
June 10, 2017

僕達がやってきたレガシープロジェクトとの付き合い方 / PHP CONFERENCE FUKUOKA 2017

nabeen

June 10, 2017
Tweet

More Decks by nabeen

Other Decks in Technology

Transcript

  1. ๻ୡ͕΍͖ͬͯͨ
    ϨΨγʔϓϩδΣΫτͱͷ
    ෇͖߹͍ํ
    1)1$0/'&3&/$&'6,60,"
    גࣜձࣾϋγΰ
    ౉ลݠҰ࿠
    ʙʮ҆શʯͰʮָʯͳʮ ϨΨγʔ͚ͩͲ
    Ϟμϯʯͳӡ༻ʙ

    View full-size slide

  2. ΞδΣϯμ
    ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ

    View full-size slide

  3. ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ
    ΞδΣϯμ
    ΞδΣϯμ

    View full-size slide

  4. ɾ౉ลݠҰ࿠ʢ,FOJDIJSP8BUBOBCFʣ
    ɾαʔόʔαΠυΤϯδχΞ
    1)1 $BLF1)1 1IBMDPO $PEFJHOJUFS -BSBWFM

    +BWB4DSJQU 3VCZ 3P3
    4XJGU
    1ZUIPO "OHVMBS 6OJUZ
    ɾΤϯδχΞ೥໨
    ɾגࣜձࣾϋγΰ
    ɾ೥݄ೖࣾ
    ɾೖࣾͯ͠೥ܦͪ·ͨ͠☻
    ࣗݾ঺հ
    !@OBCFFO

    View full-size slide

  5. ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ
    ΞδΣϯμ
    ΞδΣϯμ

    View full-size slide

  6. ͋ͳͨ͸גࣜձࣾϋγΰΛ
    ஌͍ͬͯ·͔͢ʁ
    ձࣾ঺հ

    View full-size slide

  7. גࣜձࣾϋγΰ͸גࣜձࣾαΠόʔΤʔδΣϯτͷࢠձࣾͱ͠
    ͯɺֶੜͱڞʹ༷ʑͳࣄۀΛߦ͓ͬͯΓ·͢ɻ
    ձࣾ঺հ

    View full-size slide

  8. ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ
    ΞδΣϯμ
    ΞδΣϯμ

    View full-size slide

  9. ϓϩδΣΫτུ֓
    ϝσΟΞӡӦ
    ࣄۀ
    ब׆ࢧԉ
    ࣄۀ
    ήʔϜӡӦ
    ࣄۀ

    View full-size slide

  10. ɾ͍ΘΏΔϒϥ΢βήʔ
    ɾӡ༻ྺ೥΄Ͳ
    ɾαʔόʔߏ੒ɿ-".1
    ɾόʔδϣϯ؅ཧɿ47/
    ɾݴޠɿ1)1
    ɾ'8ɿ$PEFJHOJUFS
    ɾ%#ɿ.Z42-
    ϓϩδΣΫτུ֓
    ৄ͘͠͸
    େਓͷࣄ৘Ͱ
    ݴ͑·ͤΜ

    View full-size slide

  11. ʊਓਓਓਓਓਓਓʊ
    ʼɹ1)1ɿɹʻ
    ʉ:?:?:?:?:?:ʉ
    ͱ͏ͷੲ
    ʹαϙʔτ੾Ε ʀТʀʆ
    ŲƄƂŕ
    ϓϩδΣΫτུ֓

    View full-size slide

  12. ʊਓਓਓਓਓਓਓਓਓਓਓʊ
    ʼɹ$PEFJHOJUFSɿɹʻ
    ʉ:?:?:?:?:?:?:?:?:?:ʉ
    ͱ͏ͷੲ
    ʹαϙʔτ੾Ε ʀТʀʆ
    ŲƄƂŕ
    ϓϩδΣΫτུ֓

    View full-size slide

  13. ʊਓਓਓਓਓਓਓਓʊ
    ʼɹ.Z42-ɿɹʻ
    ʉ:?:?:?:?:?:?:ʉ
    ͱ͏ͷੲ
    ʹαϙʔτ੾Ε ʀТʀʆ
    ŲƄƂŕ
    ϓϩδΣΫτུ֓

    View full-size slide

  14. ϓϩδΣΫτུ֓
    ࠓ೔ͷηογϣϯͰ
    όʔδϣϯΞοϓͨ͠࿩͸
    ग़͖ͯ·ͤΜ

    View full-size slide

  15. ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ
    ΞδΣϯμ
    ΞδΣϯμ

    View full-size slide

  16. ϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ҆શ
    ָ
    ϨΨγʔ͚ͩͲ
    Ϟμϯ

    View full-size slide

  17. ϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ҆શ
    ָ
    ϨΨγʔ͚ͩͲ
    Ϟμϯ

    View full-size slide

  18. ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ಋೖલ
    ʊਓਓਓਓਓਓਓਓਓਓਓʊ
    ʼɹશવ҆શ͡Όͳ͍ɹʻ
    ʉ:?:?:?:?:?:?:?:?:?:ʉ
    ͋ɺςετݸ΋ͳ͍ΜͰ͢Ͷ
    ͡Ό͋ࠓ೔΍Δ͜ͱͳ͍ΜͰؼΓ·͢Ͷ
    ҆શ

    View full-size slide

  19. ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ςετίʔυॻ͖·ͨ͠
    Ҏ্
    ʗ ?P?
    ʘ
    ҆શ

    View full-size slide

  20. ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ಋೖޙ
    ᶃ+PCΛఆظ࣮ߦͯ͠։ൃαʔόʔ্Ͱߋ৽༗ແΛ֬ೝ TWOVQ

    ᶄߋ৽͕͋Ε͹1)16OJUΛ࣮ߦ
    ᶅ݁ՌΛDIBUXPSLʹ௨஌
    ҆શ
    ։ൃαʔόʔ
    ᶃߋ৽֬ೝ ᶅ௨஌
    ᶄ࣮ߦ

    View full-size slide

  21. ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ςετ͍ͨ͠ൣғ
    ɾ৽نͰίϛοτ͢Δ෦෼
    ✔Ϛελσʔλ DTW
    ɺઃఆϑΝΠϧ JOJ

    ⾣͜͜ʹର͢ΔςετΛॻ͍ͨ
    ϨΨγʔϓϩδΣΫτ΁ͷಋೖͷϙΠϯτ
    ɾςετ͸໨తͰ͸ͳ͘खஈ
    ɾ໨తɿ҆શͳӡ༻ʢόάΛग़͞ͳ͍ʣ
    ɾ࣮੷ͷ͋Δ෦෼ʹରͯ͠ແཧͯ͠ॻ͘ඞཁ͸ͳ͍
    ҆શ

    View full-size slide

  22. ϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ҆શ
    ָ
    ϨΨγʔ͚ͩͲ
    Ϟμϯ

    View full-size slide

  23. ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ಋೖલ
    ͦ΋ͦ΋ָ͘͠ͳ͍࡞ۀͰͷফ໣
    ώϡʔϚϯΤϥʔʹΑΔόάͷൃੜ
    YMTN JOJ
    1MBOOFS &OHJOFFS
    ָ

    View full-size slide

  24. ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ίϐʔπʔϧॻ͖·ͨ͠
    Ҏ্
    ʗ ?P?
    ʘ
    ָ

    View full-size slide

  25. ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ಋೖޙ
    ετϨε͔Βͷ։์
    ώϡʔϚϯΤϥʔʹΑΔόά๾໓
    ఆৗ࡞ۀͷେ෯୹ॖʹΑΔ࣌ؒͷ֬อ
    YMTN ZNM
    1MBOOFS &OHJOFFS
    JOJ
    ָ
    1)1Y

    View full-size slide

  26. ϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ҆શ
    ָ
    ϨΨγʔ͚ͩͲ
    Ϟμϯ

    View full-size slide

  27. ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ͖͔͚ͬ
    !DIBUXPSL
    ಋೖલ
    ɾFTBJPͰมߋ఺Λ·ͱΊͯϨϏϡʔґཔ a ⒡㱿⒡


    ⾣લ࣌୅తɺ࡞Δͷ͕ͭΒ͍ɺݟΔͷ͕ͭΒ͍
    Ϟμϯ

    View full-size slide

  28. ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    47/ͰίʔυϨϏϡʔΛ͢Δʁ
    ɾ47/ͰίʔυϨϏϡʔͷ࢓૊ΈΛೖΕΔͷ͸؆୯Ͱ͸ͳ͍
    ɾ3FWJFX#PBSEͳΜ͔ݹष͍
    ɾ1IBCSJDBUPSͪΐͬͱߴػೳա͗
    47/͔Β(JUʹҾͬӽ͢͠Δʁ
    ɾେਓͷࣄ৘ͰطଘͷΠϯϑϥߏ੒Λେࣄʹ͍ͨ͠
    ɾطଘͷ࢓૊Έ͔Βͷࠩ෼͕େ͖͗ͯ͢ةݥ
    ɾඅ༻ରޮՌ͕ݟ߹Θͳ͍
    Ϟμϯ

    View full-size slide

  29. ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ͦ͏ͩɺಉظͱΖ͏

    View full-size slide

  30. ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    4VC(JUʁ
    ɾ(JU㱻47/ͷಉظΛͱͬͯ͘ΕΔπʔϧ
    ɾແྉͰ΋ར༻Մೳ ੍ݶ͋Γ
    ˞ฐࣾͰ͸༗ྉ൛Λར༻
    طଘͷ࢓૊ΈΛશ͘յͣ͞ʹ
    (JUͷಋೖ͕ՄೳͳϓϩμΫτ
    Ϟμϯ

    View full-size slide

  31. ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    Ϟμϯ
    ಋೖޙ
    ɾ(JUͰͷ։ൃ͕Ͱ͖ΔΑ͏ʹͳͬͨ
    ɾ(JUMBC্Ͱ.3 13
    ϕʔεͷ։ൃ͕Ͱ͖ΔΑ͏ʹͳͬͨ
    ෭࣍ޮՌͱͯ͠
    ɾDIBUXPSL௨஌༻ʹ)VCPUΛಋೖ
    ɾ%FW0QTɺ$IBU0QT͕Մೳʹʂ

    View full-size slide

  32. ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ
    ΞδΣϯμ
    ΞδΣϯμ

    View full-size slide

  33. ࠓޙݟਾ͍͑ͯΔ͜ͱ
    طଘͷԆ௕ͰऔΓ૊Ή͜ͱ
    ɾ%FW0QTɺ$IBU0QTͷਪਐ
    ໺๬తʹऔΓ૊΋͏ͱ͍ͯ͠Δ͜ͱ
    ɾ4FMFOJVNʹΑΔࣗಈςετ
    ɾ#JH2VFSZΛ׆༻ͨ͠σʔλ෼ੳ
    %"6ˢɺ"316ˢɺ"3116ˢFUD

    View full-size slide

  34. ɾࣗݾ঺հ
    ɾձࣾ঺հ
    ɾϓϩδΣΫτུ֓
    ɾϓϩδΣΫτ๊͕͑Δ໰୊఺
    ɾ໰୊఺ΤϯδχΞ͕JOJ৬ਓԽ͍ͯͨ͠
    ɾ໰୊఺ςετίʔυ͕શ͘ͳ͔ͬͨ
    ɾ໰୊఺ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ
    ɾࠓޙݟਾ͍͑ͯΔ͜ͱ
    ɾ૯ׅ
    ΞδΣϯμ
    ΞδΣϯμ

    View full-size slide

  35. ૯ׅ
    ຊ೔ͷΩʔϫʔυɿʮ҆શʯʮָʯʮϞμϯʯ
    ɾʮ҆શʯ͸ӡ༻͢Δ্Ͱͷ࠷ॏཁ߲໨
    ɾʮָʯΛͯ͠༨ͬͨ࣌ؒͰٕज़తνϟϨϯδ
    ɾʮϞμϯʯʹ͚ۙͮΔ౒ྗ͸Ͱ͖Δ
    ϨΨγʔʮͳΒͰ͸ʯͷνϟϨϯδ΋͋Δ

    View full-size slide


  36. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

    View full-size slide