web-dev-qa-db-ja.com

差分出力の赤/緑の代替

私はかつて、赤と緑はdiffの悪い選択であると主張する記事を読みました、なぜなら

  • 赤緑色の失明がある人もいます
  • 赤は「悪い」を意味し、緑は「良い」を意味しますが、削除されたコードはしばしば悪くはなく、新しいコードも常に良いとは限りません。

ただし、その記事をどこで見つけ、どの代替色が提案されたかを思い出せません。

赤/緑の賢明な代替色は何でしょうか?

2
Stefan Scherfke

西洋の文化は緑を「ポジティブ」状態と関連付け、赤は「ネガティブ」状態と関連付けるという意味で、赤と緑には一定の論理があります。この意味で、赤は、置き換えられたコードよりも正しいとは考えられないため、削除されたコードに適しています(そうでない場合、削除されなかったはずです。教師の赤いマークを覚えておいてください)あなたの紙に)。削除されたコードは、実行されないという意味でも否定的です。つまり、(緑の)置換コードは「実行」されますが、「停止」されます。 (元の記事がなければ、私はその議論のメリットを判断することはできません。おそらく誰かが熱心すぎる教師にトラウマを抱えていました)。

ただし、アクセシビリティ(色覚異常)の懸念は正当です。そもそもカラーコーディングが正しい選択であると仮定してこれに対処する通常の方法は、冗長なコードを追加することです。

たとえば、取り消し線を追加して、何が削除されたかを明確にすることができます。

![Red deleted text with strikethrough, normal text green

ただし、その場合、削除されたテキストが読みにくくなるため、削除されたテキストを実際に調査する必要がある場合は、適切な選択ではありません。

一般的な選択は、シェーディングコーディングを使用することです。背景が白の場合、非常に濃い緑(大丈夫、ほぼ黒)を使用して、すべてを維持できます テキストを最小限に読みやすく (およびピンク以外):

!["Green" is 0, 57, 40. "Red" is 239, 0, 0

上記の色合いは、3.0を相互に対比し、少なくとも4.5を背景と比較します。これは、必要な最小値であり、取得できる最大値でもあります。

削除されたテキストは、置換後のテキストよりも明るく表示されます。これは、色覚異常の方だけでなく、非カラープリントアウト(私の仕事ではデフォルト)を使用する方にも役立ちます。削除されたコードは、置換後のテキストほど存在しないかのように、軽くなった方が賢明です。

何らかの理由で否定的または肯定的な意味合いを避けたい場合は、brown-blueの組み合わせをお勧めします。

!["Blue" is 0, 0, 100. "Brown" is 185, 95, 0.

これらは西洋文化に特に強い関連性はなく、青黄色の色覚異常(および全体の色覚異常)は 非常にまれ 赤緑よりも多いため、より多くの人が色分けの恩恵を受けるでしょう。また、削除したコードを置換コードよりも明るい色にして、色分けコーディングも行いました。

5

あなたの質問への直接の答えは完全に意見に基づいているので、私はそれを無視します。代わりに...

2つの異なる色を任意に選択することは、十分に確立された基準に反することになります。これらの標準との一貫性を維持しないことにより、アプリケーションの学習要件が高まり、混乱の可能性が高まります。これはそのようなことをすることを本当に悪い考えにします。

「色覚異常」は色覚異常を理解していない人からよく聞かれる理由です。色覚異常...

  • 特定の色(赤/緑)が見えないという意味ではありません
  • 2つの色を区別できないという意味ではありません(赤と緑)。
  • 2人の人間の間で同じではない

このような条件を考慮することは重要ですが、そのような条件がどのように機能するかを理解することは重要です。

赤は悪いことを意味せず、緑も良いことを意味しません。あるコンテキストから色の意味を取得して、別のコンテキストに移動することはできません。

  • 赤は一時停止の標識で停止することを意味します。一時停止の標識は悪くありません。
  • イチゴは悪くありません。
  • 赤(停止)と緑(移動)のライトは悪くないです。
  • 緑は右舷を意味し、赤は船舶のポートを意味します-どちらも「良い」または「悪い」ではありません。
  • エルモは本質的に悪いわけでも、オスカーが本質的に良いわけでもありません。

では、差分プログラムで削除および追加されたコードに適した色は何ですか?それぞれ赤と緑で、ユーザーオプションで変更できます。

5