はじめに
コーディングはもちろん物作りな訳で、物作り(俗に言うクリエイティブ作業)は当然のように個々人の好みスタイルや慣れがあって然るべきと思うので、会社や組織のルールが定められていない以上は、絶対の正解は無いというスタンスです。
私がコーディング時に意識していること5選
(1) 1ファイルの行数を多くし過ぎない
- 1ファイルの行数が多くなりすぎるときは、大抵責務の分離ができてないときと感じるから
- 読書と同じで、他人が書いたいきなり分厚い論文や本渡されて読めと言われてもダルいから
(2) 変数名など、なるべく名前の重複をしない
(3) 階層を深くしすぎない、定義ジャンプをさせ過ぎない
- シンプルにコード追うのがダルいから。余程興味持ったとき以外、人間の揮発メモリなんてそんな働かない
(4) 関数単体でデバッグできるようにする(依存を減らす)
- たった一つの挙動確認するために一々システム全体動かしたくないから
(5) 全員が将来的にちゃんとワークするように作業の割り振りを考える
- 結局チームゲーなんで
- すぐ抜ける組織だったらそこまで考えないけど、ある程度の期間属しそうな組織だったらやりがち
さいごに
今回タイトルをただのコーディングとはせずシステム開発と入れたのは、何を作るかでコーディングスタイルも変わると思ってるからです。
例えば私の場合は、スクリプト系や単純なツールを作るときは、1ファイルで収めようとします。
要は、デバッグが不要なもの、1回動かせばちゃんと動いてるか自明なものについては、一々可読性とか考えるまでもなく1ファイルで持ち回り楽にした方がメリットあると思ってるからです。
一方で、他人が絡むチーム開発だったり、少し大きめのシステム開発(人の入れ替わりや保守が生まれるのが自明なもの)については、前述したようなことを意識しています。