短くより、読みやすく書く。
よりメッセージ性の高い英単語を使う。
万人が誤解しない名前をつける意識。
危険なものに普通の名前を付けない。
読み手が慣れているレイアウトで書く。
似たコードは似ているように書く。
見やすくなるならメソッドを作る。
スペースを入れて縦列を揃える。
一度にやるのはひとつのタスク。
作業前におばあちゃんに説明する。
new
new
new
new
new
コーディングをする前にこの記事を読むように!(自分宛)
どの言語で書いても、どのフレームワークを使っていても【良いコード】の定義付けは共通しているはず。
理想のコードが書けるように、心がけるべきことを整理します。
この記事は、次の目的で作成されています。
- コードを書くときに心がけたいことをさらっと確認する
- こんな時にはこの英単語を使う、というネタを貯めていく
- 自分のコーディングルールがブレないようにする
もくじを参考にして、読みたい箇所に飛んでください。
目の前のコーディングに向けて、さらっと「心がけたいこと」を確認したい場合は、記事の始まりだけ読んでみて下さい。
要点の説明と一例
短くより、読みやすく書く。
分かりやすいの一例が、「三項演算子」と「条件分岐if」です。
よりメッセージ性の高い英単語を使う。
limitより、max、minを使うことで上限下限どちらの限界値なのか判断することができます。
(例えば、limitよりmaxかmin。stopよりlast。)
万人が誤解しない名前をつける意識。
英語苦手だし、ベストな英単語見つけられない人も命名時はこの意識だけでも持つようにしましょう。
(この名前、誤解されないかな?をはさむ。)
危険なものに普通の名前を付けない。
膨大なデータを処理するような、ものすごく負荷が高い危険な関数に「get」や「set」を使用した名前をつけると、半端な覚悟でその関数を使われてしまうので危険です。
読み手が慣れている一貫性のあるレイアウトで書く。
似たコードは似ているように書く。
分かりやすくなるなら新しくメソッドを作る。
手間かもしれませんが、
スペースを入れて縦列を揃える。
スペースを入れることで、縦列を揃えるとコードを読む人のためにもなりますし、タイピングミスを見つけられるので自分のためにもなります。
一度にやるのはひとつのタスク。
書いたコードを見返して、そこにタスクが何個あるか確認する。
分割できるようなら、そのコードはマルチタスクの読みにくいコードです。
作業前におばあちゃんに説明する。
なんでこの書き方がいいのか
「名著読んだのに・・・」な話
コーディングについては主に次の書籍を読んでいます。
- リーダブルコード
- CODE COMPLETE
- 良いコードを書く技術
コーディングに関する書籍を読んでいても、もちろん上手くいかないときがあります。
ここからは、名著通りにいかない場合がどんなケースなのか、経験談をまとめてこれからの柔軟性につなげます。
引き継ぎシステムの追加開発
引き継ぎのシステムのソースコードを見ると、なんだこのひと「リーダブルコード」読んでないじゃん!となる。
しかし、残念なのは自分の方である。
この場合は、名著が示すとおり「一貫性のあるレイアウト」、「読み手が慣れたレイアウト」を意識してコードを書けばいいだけである。
(しっかり、名著にこのケース書いてありました・・・。)
使わない方がいいもの
コードを汚す可能性があるので、次のものは使わない方が良い。
do/whileループ
goto
コーディングスキルの上げ方
本を読みたくない人は、頑張ってリーダブルコードの各章末のまとめを読んで欲しい。
「なるほど」となって各章に潜り込みたくなる人もいるだろうし、活字を読んで具合悪くなる人でも、その体調をかけた代償は得られるはずです。