IT ニュース&コラム 2018/ 2/26 通巻757号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■ 正常条件を示す、括弧の内側の空白を消すな - リーダブル コード(48) ■■ 正常な条件をプログラムのコードに書くときは、 if (!( a <= 99 )) { e=ErrorCode; goto fin; } のように、正常な条件(aは99以下)の全体を否定するように書きます。 ただし、 if (!(a <= 99)) { e=ErrorCode; goto fin; } のように正常条件の前後の空白を消すと読みにくくなるので、空白を消しては いけません。 どう読みにくくなるかというと、if (!(a <= 99)) は、(!(a と <= と 99)) の3つから構成されているように見えます。 つまり、a の否定が 99以下って どういうこと?と迷うわけです。 (!( の後に空白があれば、if 文の括弧の中の a <= 99 が条件であると 分かります。 ちなみに、エラー判定するコードは、ほとんどが条件が真の ときにエラーになるように書かれるので、(!( を見ると、この条件式は、 正常条件を表しているんだなと瞬時に認識できるようになります。 なぜ、読みにくくなるのかを考えてみましょう。 コードなどの文章を読むときは、括弧よりも空白のほうが重要です。 括弧で明示して あるから間違えようがないということはありません。 その傾向は、この5年で主流に なったフラット デザインと呼ばれるユーザーインターフェース(UI)の分野から 明らかになってきています。 では、文章とUIで具体的に見ていきましょう。 文章における括弧は、ユーザーインターフェースでは境界線にあたるのですが、 フラット デザインでは、境界線も排除されます。 その代わり、空間を設定する ことで、2つの要素を分けるのです。 もちろん、空間が広いほど2つの要素が 区切られていることが明らかになります。 見やすさや読みやすさは、瞬時に判断します。 つまり、細かい境界線よりも 広い空間しか認識できないのです。 よく読めば、明確な括弧や境界線があるので、瞬時に判断した内容と違うのだなと 後で認識を改めることになります。 このような軽い否定を繰り返されると精神的に つらくなります。 コード整形ツールには、括弧の内側をすべて消すという乱暴なルールによって 読みにくくするものがありますが、そういうのは止めてほしいですね。 コードからドキュメントを生成ツールも、コードの整形はしないでほしいです。 余計なお世話な機能です。 ■■ 注目ニュース 一覧 ■■ ◇ Googleが普及に注力。新しいメッセージング規格 RCS って何? http://www.itmedia.co.jp/mobile/articles/1802/23/news122.html … SMS(ショートメール)をもっとリッチに。 ◇ Visual Studio Code、Pythonのディストリビューション Anaconda に同梱。 https://builder.japan.zdnet.com/tool/35114807/ … Python のデバッグ環境を。 ◇ Office 2019はWindows 10でしか使えない問題に隠れたもう1つの衝撃とは。 http://techtarget.itmedia.co.jp/tt/news/1802/24/news01.html … クラウド版オフィスに向かうことで、確実に不正コピーを撲滅へ。 ◇ ユーザーか収益か、Chrome の迷惑広告ブロック開始で変わる動き。 https://japan.cnet.com/article/35114834/ … 広告をブロックしてやったぞ、というメッセージが代わりに出る。 ◇ NEC、毎秒10万件超の取引可能なブロックチェーン技術を開発。 https://japan.zdnet.com/article/35114874/ … 仮想通貨の維持に必要な CPU パワーや電力を減らす。 ◇ 電通、2017年の日本の広告費を発表。インターネット広告は4年連続で2桁成長。 https://japan.cnet.com/article/35115175/ … インターネット広告も電通でという広告でピンハネ。 ■■ ソフトウェアデザイン館 Sage Plaisir 21 ■■ ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm