読者です 読者をやめる 読者になる 読者になる

とらノート

自分の中にある、ためになるであろう知識や体験談を書いていきたいと思います。

とらノート

読みやすいコードを書くポイントをまとめてみた


[PR] ⇒女性に好かれない原因を知りたい方はこちらから

follow us in feedly rss

仕事にこだわりをもってやると、
仕事が面白くなります。

自分は特に、コーディングには
こだわりを持ってやっています。

良いコードとは何か?

というのは永遠のテーマですよね。

これが正解とは思っていませんが、
自分が普段どんなところに気を付けているか、
書いていこうと思います。

当初は、良いコードとは?
というタイトルにしようと思ったのですが、
長くなり過ぎたので区切ることにしました。

読みやすさ

他の誰かがメンテナンスをするということを忘れない

システムは、基本的に動き続けます
止まる場合は、それなりの理由があるはずです。
※言語がサポートされなくなった、など

自分がいなくなっても、他の誰かが見ることになるのです。
なので、自分しか分からないコードを書いてはいけません。

コメントをつけるときは背景や理由が必要なとき

// add clickCount to sum
sum += clickCount;

このような場合、コメントはいりません。

基本的には、
コードを読めば分かることについて、コメントはいらない
のです。

ただし、どうしても複雑な仕組みだったり、
グローバル変数をあちこちで使ったりするときは
その旨コメントしたりします。

変数名は意味を持たせる

上記のコメントとも関連しますが、

int n = 3;
String aaa = "mod";

のように、
その変数がどんな内容なのかが直感的に理解できない変数名はNGです。
変数名を適切にするだけで、バグの数は驚くほど減ります。

int daliyBudgetLimit = 10000; // 一日の予算は10000円が上限
String shopName = "torashop"; // 店舗の名称

こんな感じでしょうか。

しかしながら、それっぽい変数名で、中身が全然違う、というケースも存在するので、大元の取得先を確認することは省略しないでください。
(痛い目を見るのはあなたです・・・。)

省略してもいいところでも省略しない

if (xxxx) {
    println(); 
}

と書けるところを

if (xxxx)  println(); 

書くのが好きな人がいます。

書き方に好き嫌いはあっていいのですが、業務システムとして書く場合は、私的な感情はいったん忘れて、チームにとって良い書き方をするべきです。

以下の理由から、省略形は使わないでほしいと個人的には思っています。

・①はifの構文として広く認識されている。読みやすい。
・「{}」がない場合の挙動を理解していない人がコードを読んだ場合に、致命傷になりかねない

「{}」がない場合は、直後の処理(次のセミコロンまで)しか処理されないんですよね。

おそらく、300人に一人くらいは、知らない人がいると予想しています。
おお、怖い。

フォーマットをそろえる

testArgs = 56;
a = 23;
shortVal = "koreha";
testLongValue = 555;
testArgs      = 56;
a             = 23;
shortVal      = "koreha";
testLongValue = 555;

見やすい。以上。
ただし、testLongValueよりながい変数が追加になった場合
他の行のインデントも修正するのか?
という問題が起きたりします。

これはトレードオフの関係なので、どちらがいいとは
一概には言えません。

適度に行間を空ける

適度に行間を空けると、読みやすくなる場合がほとんどです。
ブログの文章に行間があるのと、基本的には同じ感覚です。

まとめ

はっきり言って、読みやすさというのは大事です。
なぜなら、バグが減り、
メンテナンスしやすくなるからです。

好きなように書くのは楽しいです。
その気持ちはとてもよく分かります

しかしながら、よりよい仕事をするという観点を加えた時に、果たしてそれで良いのか、考えてみる必要はあると思います。

良いコードを書くための書籍はたくさんあるので、調べてみてください。

オススメの書籍を以下に添付します。

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)