なぜか強い嫌悪感を抱くので、昨日エンジニアの飲み会があったので、そこにいたメンバーと考えてみました。
ケツカンマとは
var obj = {
num: 1,
name: 'name1', // ←これ
};
var array = [111,222,333,]; // ←これ
ダメな理由(JavaScriptの場合)
- 古いIEだとエラーになる。
- 正式なJSON形式だとエラーになる。
システムとしては、動かなくなるのが最悪だと思うので、それに繋がる書き方はダメだと思います。
それ以外も考えてみた
ダメな理由だけで十分使いたくないが、それを超えた嫌な気分があり、
どうしてだろうなぁと、昨日エンジニア同士の飲み会で話していた。
僕の思うところ
Javaのオートボクシングとか、シンタックスシュガーとかもそうですが、予期しない動作をすることがある書き方や設定で、痛い目を見た経験があるので、嫌な気分になっているのだと思います。
DBとかもゆるふわで設定していて、変な値が入って痛い目を見るとか。結局、振れ幅のある書き方をすると、予期しない動作をする可能性があり、結果障害に繋がることがあるのが、嫌なのだと思いました。
余談ですが、MongoDBなどは2系で許していたゆるふわクエリを、3系でエラースローするように変更して、DBのバージョンアップしたらエラーが出まくるという、後から取り締まり強化的な事例もありました。。。動くからといって、手を抜いてクエリ書いたのが悪いのだと思います。。。(ゆるふわクエリは、僕は書いてないです)
飲み会に参加していたAさんのコメント
ケツカンマだと、コードを見ていて続きを書き忘れたのかも?とか思ったり、意図が不明瞭になることがあるのが良くない。と言ってました。
なるほどです。意図が明確で無いコードは不安になりますからね。。。
頭のコンテキストスイッチ
var array = [111,222,333,]; // OK
console.log(111,222,333,); // NG
書いている時に、どっちだっけ?と考えるのが面倒です。
まとめ
僕がケツカンマに抱く嫌悪感は、システムが動かなくなって障害対応した経験があるからというのがファイナルアンサーだと思います。ケツカンマに限らず、意図が不明瞭になる書き方などは、後で障害になったりすることがあるので、出来るだけ明確にコードを書いていきたいです。