3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

”ケツカンマ” 問題について思うこと。

Posted at

(これは少数派であるからゆえに肩身の狭い思いをしている人が他にもいるのではないかと思いつつもただ自己主張したいだけの記事になります)

みなさん、ケツカンマ、書いてますか?

配列や引数を定義する時等、様々な部分で出現する「,(カンマ)」。このカンマの扱いについて私の主張を書きたいと思います。

個人的主張 『カンマは頭につけたい!』

私が理想としている書き方は以下です。

$hoge = [
    'apple' => 'リンゴ'
    , 'lemon' => 'レモン'
];
SELECT hoge
  , fuga
  , piyo
FROM ...

しかし、実際に仕事で書いているコードは以下です。

こう書かないと大抵コードレビューで弾かれます。

$hoge = [
    'apple' => 'リンゴ',
    'lemon' => 'レモン',
];
SELECT hoge,
  fuga,
  piyo
FROM ...

ケツにあると見落とさない?
上記の例のようなPHPでの配列定義の場合はこの'レモン'の後ろのカンマはエラーになりませんが、PHPでも関数の引数定義やSQL、JSONではエラーになりますよね。なんだか悪習な気がするところですが、この'レモン'の後のケツカンマは 『優しさ』 だと言われました。何が優しいのかわかりゃしない。優しさで言ったら頭カンマなのでは? と思うのは少数派なのでしょうか?

頭カンマのメリット

  • 保守性
    • 行の追加や削除を考えると頭にカンマが付いている方がカンマを忘れなくない?
  • 可読性
    • カンマがどこにあるのかわかりやすくない?
  • (リーダブルコードに載ってた気がするけど手元に本がなく未確認)

頭カンマのデメリット

  • 認知度の低さ
    • 頭カンマのソースコードが皆無(少なくともエンジニア歴20年の中で推奨している現場はなかった)
    • 頭カンマのメリットがあまり知られていない

デメリット少ないよ。

いや、だってさ、長いif文を改行する時、前に条件持って来ない??

if ($nankanagaihennsuumeiA === 'hoge'
  && nankanagaihennsuumeiB === 'fuga') {

的な?

現実は 『郷に入れば郷に従え』

いくらメリデリを語ったところで、所詮多数決で負けるのが関の山だし、そんな細かいことで、と言われてしまうのが現実です。

最後に

他にも頭カンマのメリット、ケツカンマのメリットがあったら教えてください!

3
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?