2017の5日目の記事です。こんにちは、ゲスの極み乙女。!楽曲”だけ”なら絵音は天才ですね!さて、今日はリファクタリングについて書いていこうと思います。フェーズによる目的の違いスタートアップ初期の開発では、「コードが綺麗なこと」よりも「とにかく早く出してユーザーに受け入れられること」の方が重要です。サービスがある程度立ち上がった後の開発では、継続的に開発/運用するためにコードの品質を高めていく必要があります。コードの品質が低いと「予期せぬバグ」が発生したり、「生産性」が落ちたりするからです。ある問題:リファクタリング疲れコードの品質を高めていくために継続的なリファクタリングをしていく必要がありますが、こんな経験はないでしょうか。どこからリファクタリングすればいいのか分からないとりあえず目に入ったところから手当たり次第にリファクタリングを行うたしかにコードは綺麗になったはずなのに、リファクタリングの努力に対して効果が実感できない効果が感じられないのでだんだん疲弊してくるこれは「リファクタリングの努力をどこに集中させるのか」という戦略が欠如しているために発生する問題です。戦略を決めよう!こうした問題を避けるにはどうすればよいでしょうか。最初の努力で最大の効果を出せるようなリファクタリングを行うためにはどういった戦略が必要でしょうか。重要なのは「推測するな、計測せよ」ということです。データを計測することによって、「どれだけ効果が出たのか」が分かります。「次のリファクタリング対象はなにか」を導くための戦略を考えることができます。実際に戦略を考えてみよう!データを集める戦略を立てるために有益なデータには以下のようなものがあります。データを計測するために、実際にコネヒトで使っている/検討しているツールも列挙します。-10戦略を考えるたとえば、「よく使われるファイル」と「CRAP」を組みわせると、「よく修正が発生しているのに質の低いファイル」を効率的に導きだすことができます。他にも「価値の高い機能」と「不具合(バグ)/エラー」を組み合わせると最優先で対応していく必要があるものがわかりますね。いった戦略をチームで検討し、その戦略でリファクタリングを進めることによって効率的にコードの質を上げていくことができます。定期的に変化を追っていくことで「改善が上手くいっている!」というモチベーションにもなり、疲弊を防ぐこともできそうです。まとめリファクタリングを始めるときに、「負の感情」から戦略もなく”えいや”で作業を進めてしまうことがあります。一時的には満たされた改善の欲求も、効果が薄いとどうしてもつらくなってきてしまいます。いったときに一度落ち着いて戦略を考え、チームで効率的に改善していくことで楽しく目の前のサービスと向き合えるように思います。この記事があなたのリファクタリングライフを良いものにすることを願っています!さて、明日は@tommykwによるオウサムな6日目の記事をお送りします。Hirakuさんのこのスライドが詳しい。~パッケージ構成編~こんにちは。