きれいなコードを書こう6

さーて、今日もやっていくぞ!
今回も「美しさ」についてだ。

www.oreilly.co.jp

前回までのまとめ

第四章 美しさ
・なぜ美しさが大切なのか
理解しやすくするために、中身の関連性に合わせてしっかりと見た目を整えていくことが大切だ。
・一貫性のある簡潔な改行位置
命名の規則の話はすでにやってきたが、改行する位置(引数を書くところで改行するなど、単純に文字数だけで改行をするとあとあと見にくくなってしまう)を揃えることで理解が進めやすくなる。
・メソッドを使った整列
プログラミングではしょっちゅう出てくることだが、同じ処理が何行も続くならそれはメソッドにまとめるべきだ。見た目ももちろんだが、テストの際や仕様追加で同じ処理をまた増やすときに効率化も図れる。
・縦の線をまっすぐにする
インデントもそうだが、引数の一文字目を揃えることでメソッドの引数の比較などが容易になる。
「似ているコードは似ているように見せる」をキーワードにしてコードを書いていこう。
・一貫性と意味のある並び
コードは並びを変えても、その正しさに影響を及ぼすことは少ない。
引数を並べるときも「重要なものから並べる」、「アルファベット順に並べる」などの工夫をしていくとよい。

ここからは新しい内容だ。

宣言をブロックにまとめる

たとえば、定数を書く段、ハンドラを書く段、メソッドを書く段、という具合に書き分けをしておくとよい。実際これは今もしているけれど…

class ConnectServer{
  public:
    ConnectServer();
    void CheckConnectSpeed();
    void OpenDatabase();
    void ExportSetting();
    ~ConnectServer();
}


class ConnectServer{
  public:
    ConnectServer();
    ~ConnectServer();

    //接続
    void CheckConnectSpeed();
    void OpenDatabase();

    //設定値書き出し
    void ExportSetting();
}

上より下の方がまとまりに意味があるので理解しやすい。
こういった具合で意味の持たせ方によって書き方もまとめていこう。

コードを「段落」に分割する

これも上の内容とほとんど同じだ。まとまりによって分け、各まとまりが持つ意味合いをコメントで説明してあげる。

個人的な好みと一貫性

大文字、小文字を使うタイミングや、クラス定義の際の{}の書き方などは、人によって書きかたの癖がでる。こういうのにポリシーを持つ人も多いが、「どちらが正しいかより、その現場でどちらが主流か」に合わせたほうがいい。改修の度に異なるルールでプログラミングをしてしまうと、あとあとメンテナンスをするときに他の人がものすごく困ることになる。

今日はここまでなんだけど…

も~~~~この書き方やめよう。全然身についてる感じがしないし、いちいち事例考えるのも不毛だし…
正直「どうまとめるか」に頭を使っているので入ってきている感じがしない。

ということで、明日からは先日自作したゲームのコードを、各章の内容に沿ってリファクタリングしてみようと思う。
機能追加するぞと息巻いていたがサボり続けて中身を自分でも忘れてしまった…これをきっかけにコードをきれいにして、今後のテコ入れをやりやすくしていこう。

個人的な好みと一貫性