僕らのリファクタリングは裏切らない

 僕らのリファクタリングは裏切らない

Refactoring made me grow a senior engineer

4edb44c4292fa5bd1cbe463d0e80ecbd?s=128

Kaoru Hotate

July 06, 2019
Tweet

Transcript

  1. ΅͘ΒͷϦϑΝΫλϦϯά͸ ཪ੾Βͳ͍ ,BPSV)PUBUF !QVSVOLBPSV .FE1FFS3VCZPO3BJMT&OHJOFFS ଟຎ 3VCZ,BJHJ   UBNBSVCZLBJHJ

  2. อཱ ֜ ,BPSV)PUBUF !QVSVOLBPSV ϝυϐΞͷ೥ੜʂ 3BJMTϝΠϯͰ ͨ·ʹ4XJGUΛॻ͍ͯ·͢ ࣗݾ঺հ

  3. 3VCZJTUͱͯ͠ͷ੒௕ ϦϑΝΫλϦϯάʹண໨Λ͠ͳ͕Βɺ ϝυϐΞͰಇ͍ͨ೥ؒͰֶΜͩ͜ͱΛڞ༗͠·͢ ࠓ೔ͷςʔϚ

  4. 3VCZྺϲ݄ ʙ͸͡ΊͯͷϦϑΝΫλϦϯάʙ

  5. None
  6. FBHFSMPBEJOHͷ΍Γํͬͯ ͭ͋ͬͯͦΕͧΕҧ͏ͷͰ͕͢ɺ ΈΜͳ҉໧తʹ FBHFS@MPBE Λ ࢖ͬͯΔΑ͏ͳؾ͕͠·͢Ͷɻ

  7. ͸͡Ίͯͷ UP@TRM ͸͡Ίͯͷ FYQMBJO ΫΤϦपΓͷϦϑΝΫλϦϯάͷ΍ΓํΛ஌Δ ͸͡ΊͯͷϦϑΝΫλϦϯά

  8. ίʔυ͕ͦΕͳΓͷίʔυʹͳΔ͜ͱʹ ୡ੒ײΛ֮͑Δ ϦϑΝΫλϦϯά͸ඞཁͳΒ伱ؒ࣌ؒʹ΍Δ ͸͡ΊͯͷϦϑΝΫλϦϯά

  9. 3VCZྺ೥ ʙϓϩϦϑΝΫλϦϯΨʔ΁ͷಓʙ

  10. ͷαʔϏεͷϦʔυΤϯδχΞʹͳΔ TUϦϦʔε·Ͱʹਓ݄ ݟ͑ͯΔ͚ͩͰਓ݄͘Β͍ͷن໛ײ ͸͡ΊͯͷϦʔυΤϯδχΞ

  11. Θ͘Θ͘ɺͲ͖Ͳ͖

  12. ϝϯόʔ  ΅͘  ϑϧϦϞʔτͷۀ຿ҕୗ ʢ3BJMTྺ൒೥Ҏ಺ʣ ໊ ͍·͸ͦΜͳ͜ͱͳ͍Α ͸͡ΊͯͷϦʔυΤϯδχΞ

  13. None
  14. ։ൃॳظ ʙTUϦϦʔε·Ͱʙ

  15.  ࣗ෼ͷ։ൃɺίʔυϨϏϡʔ  ঃʑʹෛ࠴͕ཷ·͍ͬͯͬͯΔঢ়ଶ  TUϦϦʔε·Ͱ͸ϦϑΝΫλϦϯά͠ͳ͍ ͱ͍͏͔ɺ͢Δ༨༟͕ͳ͍ ։ൃॳظ

  16. ։ൃதظ ʙTUϦϦʔεҎ߱ʙ

  17.  ࣗ෼ͷ։ൃɺίʔυϨϏϡʔ  ϦϑΝΫλϦϯά  ϦϑΝΫλϦϯάΛ࢝Ίͨཧ༝͸ɺ զຫͰ͖ͳ͘ͳ͖ͬͯͨͨΊ ։ൃதظ

  18. ϦϑΝΫλϦϯά͕ඞཁʹͳΔ࣌ʹ͸ ΋͏஗͍ͷͰ͸ʁ

  19. ϦϑΝΫλϦϯά͕ඞཁʹͳΔ࣌ʹ͸ ΋͏஗͍ͷͰ͸ʁ ։ൃதظ  ࣮ମͱ߹ͬͯͳ͍Ϋϥεɾϝιου  ͋Δ΂͖Օॴʹॻ͔Εͯͳ͍ϩδοΫ  ΠϯλϑΣʔε͕ҟͳΔͷʹॲཧΛڞ௨Խ͠Α ͏ͱͯ͠ɺ෼ذͩΒ͚ʹͳͬͨΫϥε

     'BUͳ$POUSPMMFS.PEFM  ߦ໨ʹ SVCPDPQEJTBCMF
  20. ։ൃޙظ ʙOEϦϦʔε௚લʙ

  21.  ίʔυमਖ਼ɺίʔυϨϏϡʔ  ϦϑΝΫλϦϯά  ϦϑΝΫλϦϯάΛͯ͠ɺڅྉΛ΋Β͏ ϓϩϦϑΝΫλϦϯΨʔʹͳΔ  ·ΈΕͷίʔυ͕ɺ͍͍ײ͡ͷίʔυʹ ͳΔ͜ͱ͕շײͰ࢓ํ͕ͳ͍

    ։ൃޙظ
  22.  ςετίʔυͰ࢓༷֬ೝ  1030ʂ1030ʂ1030ʂ1030ʂ1030ʂ 1030ʂ1030ʂ1030ʂ1030ʂ1030ʂ  ೰ΈͲ͜Ζ͸ϖΞϓϩ ʢDMBTTͷ੾Γग़͠ํͱ͔ʣ  CVMMFUͷઃఆͰɺ/

    ͕͋Δ৔߹ɺ ΤϥʔʹͳΔΑ͏ʹઃఆͯ͠ಈ࡞֬ೝ ϦϑΝΫλϦϯάͰ΍Δ͜ͱ
  23.  1MBJO0ME3VCZ0CKFDUͷུ  "DUJWF3FDPSEΛܧঝ͠ͳ͍ΦϒδΣΫτ IUUQTUFDINFEQFFSDPKQFOUSZ 1030ͬͯͳʹʁ

  24. ϦϑΝΫλϦϯάͯͯ͠ Α͔ͬͨ͜ͱ͕͋Γ·͢

  25. ࣗ෼ΑΓ΋3VCZྺͷ௕͍ΤϯδχΞʹҾ͖ܧ͗ ʮίʔυ͕ಡΈ΍ͯ͘͢ॿ͔Γ·ͨ͠ʯ ͱݴΘΕͨ ϦϑΝΫλϦϯάͰΑ͔ͬͨ͜ͱ

  26. ༗ࣝऀʢ!XJMMOFU͞Μʣͱ ϖΞϓϩɾϞϒϓϩܗࣜͰ΍Δ͜ͱͰɺ ྑ͍ઃܭɾྑ͍࣮૷ํ਑ͷ૊ΈཱͯํΛֶ΂ͨ ϦϑΝΫλϦϯάͰΑ͔ͬͨ͜ͱ

  27. 3VCZྺ೥ ʙϦϑΝΫλϦϯάྗΛ͋͛ΔͨΊʹʙ

  28. ڈ೥ͷ೥຤ʹɺ੔஍෦͕Ͱ͖·ͨ͠ ִि࣌ؒɺࢀՃͰ͖ΔΤϯδχΞͰ ϞϒϓϩܗࣜͰϦϑΝΫλϦϯά͢Δ ଞϓϩδΣΫτͷϦϑΝΫλϦϯάΛ͢Δ ࣾ಺Ͱ੔஍෦͕Ͱ͖Δ✈

  29. ϦϑΝΫλϦϯάͷ෯͕޿͕ͬͨ  'BU4DPQFΛ1030ʹ੾Γग़͢  େྔͷQSFQBSF@IPHF ϝιουʹଧͪউͭ ϦϑΝΫλϦϯάͷํ޲ੑ͕Θ͔͖ͬͯͨ ʢੲ͸ࢼߦࡨޡ͠ͳ͕ΒϦϑΝΫλϦϯάͯͨ͠ʣ ࣾ಺Ͱ੔஍෦͕Ͱ͖Δ✈

  30. ·ͱΊ

  31.  ϦϑΝΫλϦϯά͕ඞཁͳͱ͖ʹ͸ɺ طʹख஗Ε͔΋͠Εͳ͍  ෳ਺ਓͰҰॹʹϦϑΝΫλϦϯά͢Δͱ ษڧʹͳΔɻؾ࣋ͪతʹ΋ָ͍͠  ࣗ෼ͷؔΘΔϓϩδΣΫτҎ֎ͷ ϦϑΝΫλϦϯάʹ΋ؔΘΔͱɺ ϦϑΝΫλϦϯάͰ͖Δ෯͕޿͕Δ

     ϦϑΝΫλϦϯά͸ɺ࠷ॳ͸ਏͯ͘΋ɺ ΍Ε͹΍Δ΄Ͳָ͘͠ͳͬͯ͘Δ ϦϑΝΫλϦϯά·͠ΐ͏ʂ
  32. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ࢿྉ͸5XJUUFSʹ͋͛·͢