maco's life

最近は技術以外のことを主に記載しています。

リーダブルコード

去年買った本だけれどやっと手をつけて、読み終えた。

書いてある内容は、処理は細かくしようなど、基本的な事が多かったけど色々学びがあった。 特に印象が残ったこととして、

  • コードを書き始める前に、「簡単な言葉で説明できるか」
  • 未使用のコードは削除する
  • Testを書くときの意識

以上の3つがあった。

簡単な言葉で説明できるか

自分が入社した時によく、「言葉で説明できないものはつくれないから、まず何をするか考えて書き出してみよう」って言われていた。それと同じことなのですが、最近あまり意識してなかったのでいい振り返りになった。新しく入ってきた人に、お仕事をお願いするときに、何をするか書いてもらう => フィードバック => 実装 のような流れにしたら、実装の方向性とか迷わないで済むしいいなと思った。

未使用のコードは削除する

いま関わってるコードでも、未使用のコードが少なからずあって、消すことで思わぬバグになったら嫌だなと放置していた。だけど未使用のものを残していても、管理コストが無駄にかかることになるし、初めてコード見る人が、どこでつかっているのかなと考えたりするので、本当に使うこと必要がないものは早々に消すべきだなとおもった。はやめに負債をなくそう。

Testを書くときの意識

テストはメソッド毎に、数パターン用意して書く、テストしやすいメソッドで書くとかあって、そのへんはだいぶ意識はしているけど、失敗した時のメッセージをわかりやすくするということが全く出来ていなかったなと気付かされた。実際に書いてしまっている良くない例だと

is $amount, $hoge * $fuga * 2;

のようなコードがあって、計算結果がamountと同じかどうかをテストしているのだけれど、このテストがfailしたとき、この1文がそのまま出力されるので、よくないなと。直すとしたら例えば

is $amount, $hoge * $fuga * 2, "{テストしたい内容}";

いたいにしたら、failした時わかりやすくなっていいなと思った。または計算の部分に名前をつけるとか。

最後に

読みやすいコードの基本的なところで、気づいていないところがいくつかって、今関わってるプロジェクトに浸透させたいけど、まずは自分が意識して書くようにして、綺麗だなと思ってもらうことから始めるのが良さそう。 今の自分には、人に綺麗だなって思ってもらえるようなコードかく力はないと思っているのでガンバクマツ。