ミスらないためのほにゃらら Tips
こんなもん既出だろとかどっかのパクリだろと言われても、そうだとしか言えないので言うだけ無駄。
自分がやっていることなので一般的か知らん。
しかしMarkdownが打ちにくい。
なんか言語と関係ないことばっかりだから分離することにした。
壊れるようにコードを書く
壊れるとは、ミスったらコンパイルエラー、その他エラー、例外などですぐ止まるように書くことである。
コピーしたとき間違ってキーを触り、変な所にペーストして気付かないことが結構ある。エラーが出てくれればいいが、それを通ってしまうと潜在バグになる。
コピペはファイルコピーならマシだが、出来るだけ自前で打った方がバグ率が下がると思う。タイポしてもコンパイラが怒るだけで実害は無い。コピペミスは実害に直結するから危険である。
綱渡りのようなコードを書いて、ミスったら単純に動作しないようにしてもよい。
直感と一致させる
コードの見た目で正しい、正しくないが分かるように書く。得てして糞コードと呼ばれるものは難読化されており、熟読しても意味が分からないことがある。そして見た目通り正しく動作しないのである。
処理を分割して見た目の直感で正しいと思える書き方をすべきである。
自己完結する
入力チェック出力チェックは他がやるから不要なんてことはない。誰も信じてはいけない。モジュールが自分だけで確実に動くように、確実に動かないように実装する。個々が動いている事が保証できればそれ以外の不具合に集中できる。
結合度を下げる
一番悪いのは変数共有の内容結合である。そんなことをしているといつまでもバグが取れないし、修正の影響範囲も拡大して収集が付かない。悪くても関数の引数で渡すような処理にする。
グローバル変数よりも最悪な、変数の使いまわしは地獄を見るのでやめた方がいい。スコープを切って影響を小さくした方が精神衛生的に推奨される。
C系統の言語は意味もなく波括弧で括ることができるのでスコープ分割可能である。
つづく
思いついたら更に追記してゆく。