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

結局、リファクタリングって何なのか 〜掃除から紐解くリファクタリング〜(refactoring vs room cleaning)

yy_yank
October 01, 2023

結局、リファクタリングって何なのか 〜掃除から紐解くリファクタリング〜(refactoring vs room cleaning)

気まぐれに書いた、掃除とリファクタリングの比較です

yy_yank

October 01, 2023
Tweet

More Decks by yy_yank

Other Decks in Programming

Transcript

  1. 結局、リファクタリングっ
    て何なのか
    @yy_yank
    2023/10/01作成
    掃除から紐解くリファクタリング

    View full-size slide

  2. このスライドの作者について
    @yy_yank ‧ソフトウェアエンジニア10年ちょい とか
    ‧これまでJavaとかKotlinとかGoとかRustとか
    書いたり
    ‧ReactをTypeScriptで書いたり書かなかった

    ‧⼦供を平⽇毎⽇保育園に送っている
    ‧ユーザベースという会社に今は居る

    View full-size slide

  3. 前提
    ‧このスライド資料は思考実験であり、何の書籍などにも基づいていない
    ‧メタファーでの対象⽐較は、極端な⼀般化を起こすものであり詳細が抜け落ち
    ることが稀によくある
    ‧そのあたり割り切って書いている
    ‧好き勝⼿なんやかんや書いている

    View full-size slide

  4. リファクタリングって⼀体何?
    ‧テストのないコードの書き直しはリファクタリングとは⾔わねえ!
    ‧リファクタリングする時間がない
    ‧このコードは綺麗‧汚いコードだ
    ‧コードの不吉な匂い
    ‧あー、リファクタリングしたいですねぇ
    ‧リファクタリングとかしてないで機能開発してよ
    ‧いやいや、リファクタリングというのは⼤事で
    ‧何でそんな時間かかるの?

    View full-size slide

  5. リファクタリングって
    結局⼈によって⾔ってること
    違う気がするんだよなぁ

    View full-size slide

  6. バズワードで会話してる感じ。
    DXとかAIとかITとかアジャイルとか
    みたいな

    View full-size slide

  7. ただの書き⽅の好みじゃない?
    そのリファクタによって皆が分かりや
    すくなる?

    View full-size slide

  8. リファクタリングでどういうメリットが⽣
    まれてくるのかな?
    やらなくてもなんとかなってるような気も
    するな

    View full-size slide

  9. ⾃分なりに整理してみよう…
    あ、安直なことを思いついたぞ

    View full-size slide

  10. マインドマップを書いてみた (べべーん)

    View full-size slide

  11. リファクタリングと掃除を⽐較すると似てる…?(無理やり)

    View full-size slide

  12. やらないと、どうなるんだろう

    View full-size slide

  13. なぜ?とか、誰?とか、⾊々考えてみる

    View full-size slide

  14. 掃除とコード、分かりやすさや扱いやすさは違うよなぁ

    View full-size slide

  15. じゃあ、実際。何のために何をする?

    View full-size slide

  16. リファクタリングやんなくても良い?そんなことないか

    View full-size slide

  17. やらないと、どうなっていっちゃうかな?

    View full-size slide

  18. 部屋の掃除ぐらい分かりやすいものにするためには?

    View full-size slide

  19. ⾊々まとめようとすると、こうなった

    View full-size slide

  20. まとめ
    ‧リファクタリングとは、「捨てる‧場所を変える‧常に続ける」こと
    ‧関係者のコストやペインによって「掃除」すべきポイントを⾒つけていく
    ‧リファクタリングはチームメイトや⾃分やマネージャーなど関係者のために⾏う
    ‧良いリファクタリングは認知負荷を下げる
    ‧認知負荷が下がると会話が増え、アクセスが容易になり、健康な状態が保てる
    ‧価値提供の早さを維持することができる
    ‧掃除とは違って、物質的な⾒えにくさがあるため、具現化や⾔語化が⼤事である

    View full-size slide

  21. to be continued...
    ‧リアーキテクチャはリフォームと⽐較できるかな?
    ‧フルスクラッチは注⽂住宅?
    ‧では、具体的にどこをどうやって開発の中でリファクタリングをしていく?み
    たいなのはもっと踏み込んだ⽅が良いのかもしれないけどこの資料ではここまで

    View full-size slide