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

テストを助けに使って設計を改善しよう~リファクタリングことはじめ~

 テストを助けに使って設計を改善しよう~リファクタリングことはじめ~

PHPカンファレンス北海道2019 cfp落選したのでアンカンファレンスで喋ります。

B793da271a45d149b52f507bca9f137c?s=128

Hiromi Hishida

September 21, 2019
Tweet

Transcript

  1. ςετΛॿ͚ʹ࢖ͬͯ ઃܭΛվળ͠Α͏
 ʙϦϑΝΫλϦϯά͜ͱ͸͡Ίʙ QIQDPOEPΞϯΧϯϑΝϨϯε!XFC

  2. ɾ!XFC ɾϑϦʔϥϯεʢ೥͙Β͍ʣˠΧϧςοτίϛϡχέʔγϣϯζʢ೥ʣ ɾࡳຈੜ·Εࡳຈҭͪʢࡀ·Ͱʣɺ໊ݹ԰ࡏॅ ɾࣇͷ฼ ɾ೔ຊ4ZNGPOZϢʔβʔձ ɾ$PEFS%PKP໊ݹ԰ॳ୅νϟϯϐΦϯʢॾࣄ৘͋ͬͯҾୀʜʣ ɾ*—1)1

  3. ɾӡ༻ܕ޿ࠂۀքΛϗϫΠτʹ͢Δ࢓૊ΈΛ࡞ͬͯ·͢ ɾ஥ؒืूதʂʢϑϧϦϞʔτɺύʔτλΠϜɺ΋ͪΖΜϑϧ λΠϜਖ਼ࣾһ΋׻ܴʣ

  4. օ͞Μςετίʔυॻ͍ͯ·͢ΑͶʁ

  5. ςετΛॻ͘ͷ͸ͳΜͷͨ Ίʁ

  6. ςετΛॻ͘ͷ͸ͳΜͷͨ Ίʁ w όά༧๷ w ࢓༷มߋʹڧ͘͢ΔͨΊ

  7. ςετॻ͘ͷͭΒ͍ͳʔ໘౗ͩͳʔͬ ͯࢥͬͯ·ͤΜ͔ʁ

  8. ςετ͠ʹ͍͘Ϋϥεʹग़ձͬͨΒɺ ઃܭΛݟ௚ͦ͏

  9. ࠓ೔͸ͦͷͨΊʹ࢖͑ΔςΫχοΫΛ ͭ঺հ͠·͢ʂ

  10. ςετ͠ʹ͍͘Ϋϥεྫ

  11. ςετ͠ʹ͍͘Ϋϥεྫ ςετ

  12. ςετ͠ʹ͍͘Ϋϥεྫ ςετ

  13. ςετ͠ʹ͍͘Ϋϥεྫ ଞͷΫϥεΛOFXͯ͠Δ TUBUJDϝιουΛ࢖͍ͬͯΔ ςετ͕$POWFSUFSΫϥε΍'PSNBUUFSΫϥεͷ࣮૷ʹࠨӈ͞ΕΔ ςετ

  14. ςετ͠ʹ͍͘Ϋϥε վળྫ

  15. ςετ͠ʹ͍͘Ϋϥε վળྫ

  16. ςετ͠ʹ͍͘Ϋϥε վળྫ %*͢Δ &YBNQMF'PSNBUUFSGPSNBU ΛඇTUBUJDԽ

  17. ςετ͠ʹ͍͘Ϋϥε վળྫ $POWFSUFS΍'PSNBUUFSͷ಺༰ʹࠨӈ͞Εͳ͘ͳͬͨɻ &YBNQMF"QQΫϥεʹॻ͍ͯ͋Δ͜ͱ͚ͩςετͰ͖͍ͯΔɻ ςετ

  18. ςετ͠ʹ͍͘Ϋϥεྫ

  19. ςετ͠ʹ͍͘Ϋϥεྫ ςετ

  20. ςετ͠ʹ͍͘Ϋϥεྫ ςετ

  21. ςετ͠ʹ͍͘Ϋϥεྫ ςετ ඞཁͳςετύλʔϯ͕ଟ͘ͳΔ ৚݅෼ذ͕ଟ͍

  22. ςετ͠ʹ͍͘Ϋϥε վળྫ

  23. ςετ͠ʹ͍͘Ϋϥε վળྫ JGจΛ3FTPMWFSʹஔ͖׵͑ͨ

  24. ςετ͠ʹ͍͘Ϋϥε վળྫ ͭͷJGจͦΕͧΕͷύλʔϯ͕͍ͭ͘૿͑ͯ΋ɺ૿͑ͨύλʔϯ݅ ͚ͩ୯ಠͰςετ௥Ճ͢Ε͹ྑ͘ͳͬͨɻ ʢ1SPWJEFSͷςετ͚ͩ૿΍ͤ͹େৎ෉ʣ ςετ

  25. ςετ͠ʹ͍͘Ϋϥεྫ

  26. ςετ͠ʹ͍͘Ϋϥεྫ ςετ

  27. ςετ͠ʹ͍͘Ϋϥεྫ ςετ

  28. ςετ͠ʹ͍͘Ϋϥεྫ ςετ ϑΝο ͱͳΔ஋͕ग़ͯ͘Δ ʢ࣮͸਌ΫϥεͷӨڹΛड͚͍ͯΔ͔Βʣ ܧঝͨ͠਌Ϋϥεͷϝιουݺͼग़͠

  29. ςετ͠ʹ͍͘Ϋϥε վળྫ

  30. ςετ͠ʹ͍͘Ϋϥε վળྫ σίϨʔλʔԽ

  31. ςετ͠ʹ͍͘Ϋϥε վળྫ &YBNQMF"QQ5FTU͕#BTF"QQͷ࣮૷ʹࠨӈ͞Εͳ͘ͳͬͨɻ &YBNQMF"QQΫϥεʹॻ͔Ε͍ͯΔ͜ͱ͚ͩΛςετͰ͖Δɻ

  32. ·ͱΊ w ςετର৅Ϋϥε಺ͰଞͷΫϥεΛOFX͍ͯ͠ΔTUBUJD ϝιουΛݺͼग़͍ͯ͠ΔˠඇTUBUJDԽ͠Α͏ɻ%*͠Α ͏ɻ w ෼ذ͕ଟ͍ˠετϥςδʔύλʔϯΛ࢖͓͏ w ܧঝ͕͋ΔˠσίϨʔλʔύλʔϯΛ࢖͓͏ ˞ࠓճ঺հͨ͠ςΫχοΫ͸΄ΜͷҰ෦Ͱ͢ɻ

  33. 5IBOLZPV αϯϓϧίʔυɿIUUQTHJUIVCDPNXFCQIQDPOEPFYBNQMF