二重否定を避けるためにはAppleっぽい文章を書けばよい

プログラミング初学者です。
主にRubyを勉強中です。

今回、「読みやすいコード」についていくつか学びました。
その中で、条件分岐を肯定形で書くのが良いという内容があったので思ったことを書きます。


読みやすい条件式を書く

条件式とは、「もし〇〇だったらXXする」という意味合いの分岐を示す式で、プログラミングの三大要素のうちの一つです。
(あと2つは、”順次”と”繰り返し”です)

まず、分かりやすくダメな条件分岐を示しましょう。

もしあなたの貰っていない給料が30万円を下回っていない場合、 貯金よりも投資に充てない方が良いです。

意味わかりますか?ちなみに僕はわかりません。

では、これならどうでしょう。

もしあなたの給料が30万円を超えている場合、貯金よりも投資に回した方が良いです。

わかりやすくなりました。
(なお例文の中身については適当です。財テクとかは知りません)

つまり、条件分岐はできる限り「肯定形」で書くべきであるということです。

「身長が120cmを超えていないとジェットコースターには乗れません」といった、いわゆる二重否定を使う癖のある人は要注意です。
「身長が120cmを超えていればジェットコースターに乗れます」で良いのです。

Appleっぽい書き方

iPhoneやMacを販売しているApple。
Webサイトを見ていると、否定系の言葉がとても少ないことに気づきます。

iPhone、iPad、iPod touch をバックアップしておけば、万一デバイスを交換、紛失、損傷したときも大切な情報のコピーがあるので安心です。

https://support.apple.com/ja-jp/118426

俗世の人間ならば、「バックアップしておかないと、万が一デバイスが故障したとき、データが消えてしまいます」などと書きそうなものです。
例えば不安を煽ってサービスを売るタイプの店なんかでは、普通にそう言いますよね。
そこを「バックアップしておけば、安心です」と言い換えるのがApple流です。

この言い換えを日常的に意識しておくと、条件分岐を書く時もスムーズに肯定形で書くことができそうな気がします。
ポイントは、ただポジティブ野郎になれと言っているのではなく、言い換えられるスキル自体が重要っぽいということです。

もし重さが300g以上でなければ「もう少し足してください」と出力するプログラムを書くとしたら、「300g以上ではない」ではなく「299g以下である」と言い換えるとか、そういうことです。

結局、現実世界・自然言語をプログラムに落とし込むのがプログラマなわけですから、自然言語を翻訳するスキルは必要だろうな、と感じました。

コードは読み物 という牛尾剛さんの言葉がありますが、これは肝に銘じておきたいですね。

短いけど今日はここまで。

この記事が気に入ったらサポートをしてみませんか?