規約についてのしくじり

今の職場は基本的に行き過ぎている。というか夢見がちな少年が多い。

else句を使わないというルールがある。

これはとある書籍からパックているのだが、設計や思考を無視した強制がいらぬ不具合を招いていた*1

弊社でこれを強制している原理主義さんには全体最適を鑑みないこととガード節の概念がなく他人に適切に教示出来なかったため不具合がとても多い。

 分岐≠カード節

リーダブルコードでも異常系の処理の対策法がelse節を必ず付けることではない。と言っている。ネストは深くしない努力が必要。
ここが言いたかった事で下記引用の通りテストするときにMECEに考え方が効いてくる。この考え方そのものを全て無視しているため品質を軽んじてしまっている。

リーダブルコード引用
else を必須にすることは否定しますが、MECE の考えは否定しません。
テスト対象のコードではなく、テスト・プログラム(データ)を開発するときに
MECE の考えを導入するのです。

ネストを深くしないために最初にいらないものは捨てるという考えになる、というか普通にしていればネスト深くなるようなことはあまりない。ネストに関しては下記参照

コードのネストを深くするな | anopara

コーディング規約って見る側は必要だと思うけど書く側は無ければないでって考えたくなる、規約って意味の通り最低限のお約束、システムの動作やパフォーマンスを満たさなければ意味がないので、個人的にはやりすぎはくどいかなと…

命名規約
番号とかシステム名とかつける人が出てきたら強制した方が良い

(命名については担当者によって考え方によって幅があるため、らしい名前なら良い)
禁則事項

グローバル変数の使用について
クラスのメンバ変数はpublicについて
ハンガリアン記法は使わない
ローカル変数の使い回しはしない
例外をパラメータチェックに利用しない 

Javaだったらこの辺

Google Java Style Guide

Rubyならこの辺

ruby-style-guide/README.ja.md at japanese · fortissimo1997/ruby-style-guide · GitHub

Scalaならこの辺

Scalaスタイルガイド — Scala Style Guide v1.2.5 documentation

phpならこの辺

PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは | 9ensanのLifeHack

変にオレオレしない方が絶対良い

きょう徐ろにgoogleのこれ読んでて今の不自由さを愚痴っぽくまとめたくなった

developers.google.com

 

www.amazon.co.jp

*1:進行形なので「ている」が正しい