Blog ブログ
弊社のコーディングルールについて
皆様こんにちは。
プログラマの島鼻と申します。
突然ですが、プログラマの皆様「コーディングルール」を定めていますか?
キッチリとしたルールを作り、全員で守る事で可読性と生産性を上げるものです。
弊社でも厳しいルールがあり、守れていないと実装はいつの間にか削除され、未実装になります。あるいはgithubにてプルリクエストが永久に通りません。もちろんそのせいで仕事が遅れるなんてあり得ません。
さて、良いプログラムの第一歩とも言えるコーディングルールですが、今回は弊社のルールをちょっとだけご紹介します。
コードフォーマット
こちらはスペース一個の過不足でアウトです。最近はIDEが自動で行ってくれるものがありますね。
冗長なコード
ちょっと見ただけでリファクタリング出来そうな箇所があるプログラムは認められません。
関数抽出が適切でないコード
関数の中身が大きすぎるコードは認められません。
コメントが無いコード
関数名で分からないコードは事前条件や事後条件、考えているアルゴリズムを書いていないと認められません。
無駄なコメント
isExistと言う関数に対して「〇〇が存在しているかどうか」とだけ書いている様なコメントは認められません。むしろ見たら分かるので書かなくていいです。
複雑な実装
判定が難しいですが、たとえ動いているとは言え読みにくいコード、分かりにくいアルゴリズムは認められません。
遅い、言語仕様を理解していないコード
やってはいけない系、コピーコンストラクタが無駄に呼ばれるコード、検索条件がおかしく時間がかかりすぎるコード、DBのアクセスが多くなりすぎるコード。
あまりにひどいと自分の名前が遅いコードの代名詞となりますw
(例:太郎ソート、次郎ランキング、三郎API
何故このようなチェックをするのか?
多少のバグがあっても動けば良いと言う方はいらっしゃるかもしれません。
しかし、このような監視をしないと知らないうちに読みにくいコードが増え、悪い実装のままクラスを継承してしまったり、コピペで実装してバグも一緒にコピペして量産する等の弊害が生まれます。
こういった事を怠ると、バグが出たら直しにくく、追加実装が出たら工数が嵩み、不要な実装を削除しようにも至る所に同じ実装があったり等、プロジェクトの大きな妨げとなります。
コーディング規約を守る事で、プログラムがいつも清潔な状態に保ちやすくなります。
以上、いかがでしょうか?コードはプログラマの命!
ルールに従って良いプログラムを心がけたいです。