仕事にこだわりをもってやると、
仕事が面白くなります。
自分は特に、コーディングには
こだわりを持ってやっています。
良いコードとは何か?
というのは永遠のテーマですよね。
これが正解とは思っていませんが、
自分が普段どんなところに気を付けているか、
書いていこうと思います。
当初は、良いコードとは?
というタイトルにしようと思ったのですが、
長くなり過ぎたので区切ることにしました。
読みやすさ
他の誰かがメンテナンスをするということを忘れない
システムは、基本的に動き続けます
止まる場合は、それなりの理由があるはずです。
※言語がサポートされなくなった、など
自分がいなくなっても、他の誰かが見ることになるのです。
なので、自分しか分からないコードを書いてはいけません。
コメントをつけるときは背景や理由が必要なとき
// 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版 上 完全なプログラミングを目指して
- 作者: スティーブマコネル,Steve McConnell,クイープ
- 出版社/メーカー: 日経BP社
- 発売日: 2005/03/26
- メディア: 単行本
- 購入: 44人 クリック: 1,166回
- この商品を含むブログ (288件) を見る
Code Complete 第2版 下 完全なプログラミングを目指して
- 作者: スティーブマコネル
- 出版社/メーカー: 日経BP社
- 発売日: 2014/04/02
- メディア: Kindle版
- この商品を含むブログ (9件) を見る
良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)
- 作者: 縣俊貴
- 出版社/メーカー: 技術評論社
- 発売日: 2011/04/09
- メディア: 単行本(ソフトカバー)
- 購入: 46人 クリック: 2,459回
- この商品を含むブログ (68件) を見る