コードの可読性は、名前の付け方でほとんど決まる
議論の中で私は、
【翻訳】私がコーディングで垂直方向にそろえるインデントをとる理由 | POSTD
コーディングで垂直方向にそろえるインデントをとるべきかというささやか
な聖戦を仕掛けました。私は全面的に賛成です。理由を説明しましょう。
コードブロックのイン
デントを自動的にとるアイデアは面白いね。こういうのがIDEで使えるんだ
ったら、垂直方向のインデントを取ることには賛成だな。個人的には、テーブル
のように表形式で見ることが望ましいと思える時はインデントを揃えるけど、
const table_t tables[] = { { 10, "foo", }, { 2, "bob", }, { 33, "brah", }, { 0, NULL, }, // terminator };
そうでない時には、基本的には揃えない。
foo() { param_t p; p.size = sizeof p; p.horizontal = 0; p.vertical = 1; <...> }
インデントを揃えるかどうかは、その労力に見合うだけのメリットがあるかどう
かで判断してる。
ところで
名前の付け方やスペースの入れ方、さらにキャピタライゼーションルールをよく
考えて適用することで、私たちのコードはかなり読みやすくなりました
コードの可読性は、この名前の付け方でほとんど決まる。プログラムは言ってみ
れば、名前の集合体だ。クラス名/メソッド名/関数名、一時変数に至るまで、そ
れが何を表しているのかが明確になっていれば、プログラムを読み解くのがとて
も楽になる。
意味のある名前にしよう
sub1(), sub2()なんてのは論外だよね(笑)1と2に分けた理由があるはずだ。も
し付ける名前に迷うようなら、命名対象が何をすべきか定義できてないんじゃな
いかな。そもそも何をするものだったのか、原点に戻って考えてみよう。
別にカッコいい名前を考える必要なんてないんだ。一生懸命、英和辞典を使って
意味を考えた名前が、後で見たら何のことか分からない、なんて経験はない!?
ボクの場合、最初に思いついた名前を使うことが多い。それが一番素直なネーミ
ングであることが多いから。
forループのインデックスとか、スコープが限定される場合はtempとかでもいい
と思う。やり過ぎないレベルで :)
抽象的な名前は避けよう
get_data()とか。データって何だよ(笑)突き詰めて考えると、それが何のオブ
ジェクトかは決まるはず。
結論
コーディングは、自分自身の考えを表現する創造的な方法です。表現したアイデ
アを難しく見せてしまうようなツールであるのなら、インデントではなく、ツー
ル自体を改善すべきでしょう。
この結論には同意。コーディングは自己表現なんだ。せっかく作ったプログラム
だから、ぜひ主張しよう :)