三項演算子 が、Twitter のトレンドになっていたようで、エンジニアが仕事中に Twitter ばかり見ていることが明らかになったのですが、このトレンドの元と思われるのが、次のツイートのようです。

三項演算子で、

(条件式) ? true : false

って書くよね?

レビューで条件式だけで動作するとしつこく詰め寄られたけど、可読性が落ちると突っぱねた。

https://twitter.com/fnya/status/1192036095820615680


はい。

1変数 = 条件式 ? true : false

まで書かなくても、

1変数 = (条件式)

で、自明ではないか ?

変わった書き方をするからには、なにか別の意図があるのではないか ?

true : false がくどくはないか ?

というのが、だいたいの反応で、どれも本当にそのとおりなんですね。


ツイートに対する反応も、

1変数 = (条件式)

というのが圧倒的な感じで、

コードを読むメンバーが混乱しないこと というのが、チーム開発では重要なので、それを考えると簡潔に書けていて、齟齬が少ないことが望ましいため、やっぱりこの書き方のほうがいいよね、という気がします。

全てはコンテクスト次第、と言ってしまえばそれまでなのですが、

私は、この書き方はありで、なるべく true false とかも省略しないスタイルでコードを書く機会が増えました。

1変数 = (条件式)

で、

条件式を見て Boolean が代入される、ということも自明なことですが、それを読み解くよりも、

1変数 = 条件式 ? true : false

だと、冗長ではありますけれども、値の範囲が一瞬でわかりませんか ?

いかがでしょうか ?

わりと、読み手の熟練度だということかな、という気もします。


スーパーで買物なんかをしていて、

「お支払いは ?」

まで言って、言葉を切られることっておおいですよね。

「その後は ? その後は何なの ?」

と、ひねくれている私は思ってしまって、

「それでいいかと」

という言い回しも多いですね。

「それで良いです」

とか

「それでいいと思います」

とか、言い切ってほしいのです。


こういう

「〇〇でよろしいでしょうか ?」

ではなく

「〇〇で ?」

とだけ言って、

「よろしいでしょうか ?」 を、相手の脳内で補完させる、コミュニケーションって、すごく多いと思うのですが、実はこれ、 相手に負担を強いる行為 だと感じるのですよね。

この、三項演算子の話も同じような印象を持っていて、自明なんだけれども、言葉を途中で区切ってしまうような、居心地の悪さを、なんとなく感じました。


実際、コード書くときは

1変数 = (条件式)

って書きそうですけどね。