ボクココ

個人開発に関するテックブログ

美しいビューティフルコードを実現するために用意したい一つのこと

誰もが言わずともそういったプログラムを書きたいと思っている(はず)
かくいう僕もソースコードの可読性については色々と教わってきました。



結局一つのことにいきつきました。
手っ取り早く実現するのは

CheckStyleを導入する
です。

さらにCheckStyleの中でも本当に設定しなければならないことは一つだけです。
それは、
メソッドの行数を20行以内にする
です。
大体のやり方はココhttp://www.develop-memo.com/java/eclipseplugin/checkstyle.htmlに書いてあるからそれでやってください。

一番大事な設定であるメソッドの行数制限は、
CheckStyle構成→サイズ違反→メソッドの最大長→デフォルトである150を20に変更
これだけです!!


では何でこれがそんなに大事なのか、自分の思うところをあげてみます。

コードの塊に名前を付けられる後で読みやすい
後で読む人が知りたいのは「そこで何が行われているか」です。for文やif文を知りたいわけではありません。"メソッドというのはコードの塊に名前を付けられる"という意味で、本当に大事なことだと思います。

自然によりよい設計を考えられる
20行以内という制約が入ってしまったので、プログラマは考えます。「このコードの塊はなんて名前をつけよう?」「このメソッドは別のクラスへ移せば後で使えそうだ」とか。素晴らしい。
ifやforのネストが減る
これこそが一番読みにくいコードを生み出してる悪の根幹だと思います。
大量のif else があるコードとかは、頭の中で「もし〜ならこのブロックに入って・・」みたいなことを考えなければなりません。適切にメソッドを分けていればelseなんてほとんど使いません。 if の中で return をうまく活用すればOK。


if(isValid){
~.save()
} else {
//error handling..
}

if (!isValid) {
//error handling..
return;
}
~.save()

Javadocなどでまとめやすくなる
Javadocって意外とEclipse使ってると効果絶大なことに最近気づきます。これなんてメソッドだろう?と思ってカーソルを当てるだけで、該当のコメントが読めるのです!メソッド内に書いたコメントはそこには出てきません。細かくメソッドに分ければそれも瞬時に解決です。

思わぬところで同じメソッドを使いまわせるようになった瞬間、再利用可能なコードの大切さが身に染みる
メソッドを20行以内に制限すればだれでも気づけます。

勝手にテストコードが書きやすくなる
戻りがvoidだとテストしにくいから戻り値を返すようになる
メソッドの奥深くで勝手にプロパティ値が更新されたりすることが減る
先にメソッド名を書くようになってきたら、TDDができるようになる
そうして更なるプログラミング玄人へ・・。




ということです。