「Human Readable」とはどういう意味ですか?それは間違った名前ですか?


13

2つの例が思い浮かびます。

  • .NetプログラマーがWindowsレジストリの代わりに.configファイルを使用することが推奨される理由の1つは、.configファイルがXMLであり、したがって人間が読めることです。

  • 同様に、JSONは、独自の形式と比較して、人間が判読できると見なされる場合があります。

人間が読める形式は、実際に人間が読める形式ですか?構成データの例:

  1. この形式は、情報の基本的な意味を変更しません。どちらの場合も、データは同じものを表します。
  2. レジストリと.configファイルの両方は、一連の0と1として内部的に保存されます。その程度まで、基礎となる表現は人間によって等しく読めません。
  3. レジストリと.configファイルの両方には、これらの0と1を読み取り、フォーマットし、表示し、人間が読み取れる形式に変換するツールが必要です。Windowsレジストリに保存されている構成の場合、これはレジストリエディターです。XMLの場合、テキストエディターまたはXMLリーダーである可能性があります。いずれにしても、ツールはデータ形式ではなくデータを読み取り可能にします。

では、人間が読み取れるデータ形式と人間が読み取れない形式の違いは何ですか?


3
「人間」の定義がプログラマーなどに限定されているか、すべての人間に当てはまるかどうかに依存します(後者の場合、ほとんどすべての形式がおそらくさまざまな程度で失敗します)。
ピーターボートン

7
人間が読める唯一のシリアル化形式はYAMLです。XMLを使用することで、目を見張ることができます。
NullUserException

回答:


35

人間が読める形式とは、基本的に、そのファイルの形式を直接的かつ具体的に認識していないプログラムによってコンテンツが表示される場合、少なくともその一部を読んで理解できる合理的な可能性があることを意味します。

明確な線の欠如に関するあなたの基本的なポイントは絶対に正しいです-かつて私はプログラムの問題を診断することができる人を知っていましたソースコードを見ることなく、コアダンプ。ほとんどの人にとって、そのフォーマットは「人間が読める」ものとしてはほとんど資格がありませんが、明らかに彼は例外でした...


14
+1:十分な努力があれば、すべてが「人間が読める」状態になります。コンピューターでの「人間が読める」という事実上の意味は、プレーンテキスト、非構造化、またはテキスト文字のみで構成される何らかの構造です。
アロングララネク

35

Human Readableは、必要に応じてメモ帳で開くことができ、必要に応じて「password = foo」を「password = bar」に変更できることを意味します。コンテンツを表示または編集するために、専用のツールを使用する必要はありません。

単純なテキストエディタでは編集できないPDFとは対照的に、フォーマットを認識している特定のツールが必要です。または、25年前のアプリケーションに付属していて、読み取り、編集、または理解できないバイナリ.datファイル。


RTFは人間が読めると考えますか?
ピーターボートン

7
RTFはプログラマーが読み取り可能です:-)。私はそれを手で編集しましたが、それは心地よくありませんでした。XMLは確かにJSONよりも人間が読めるものではありません。多くはあなたの人間が何に慣れているかに依存します-私の多くはXMLよりも.csvを好みますが、そうではありません!
ケイトグレゴリー

3
人間が読めるファイルを編集できない場合があります。内容が人間が読める場所を多く見ましたが、たとえば、簡単に計算できず、ファイルの内容に基づいた16進数のパラメーター値を持つチェックフィールドがある場合があります。この値は、アプリケーションによってファイルの検証に使用されます。
uɐɪ

6
良い点@Ian-用語を議論しているので、人間が読める形式と編集可能な形式を区別する必要があります。私の意見では、両方とも良いものです。
ケイトグレゴリー

JSonはxmlよりも人間が編集(および読み取り)しやすいという主張を支持します。これは、xmlエンティティがまさにそのような苦痛だからです。
マチューM.

10

「人間が判読できる形式は実際に人間が判読できるか」という質問に対する答えとして、定義によりそうです、それが人間が判読できることを意味します。

人間が読める形式の技術的な定義はなく、主観的であり、人間が資格を得るために必要な知識のレベルについて質問があるかもしれません(例えば、タグや階層などのXMLの非常に基本的な原則を理解する必要があるのでしょうか) 、データが存在するビジネスドメインを理解する必要があります-個人的に私は両方にイエスと言います)が、あなたの基本的なテストは、データがそれを表すことの意味を理解した基本的な技術スキルを持つ人にそれを見せた場合です、彼らはそれを読むことができます。

実用レベルでは、これは一般的に次のことを意味します:

1)データはASCIIテキストまたは他の同様の一般的で容易に認識可能な形式として保存されます

2)基本的な試験から自明である合理的な構造があること。たとえば、最初のX文字がYに関連し、次のX文字がZに関連することを知る必要はありません

3)データとメタデータの両方が一般的に英語(または現地の言語)であり、理解するために問題ドメインの限られた知識のみを必要とする-したがって、請求書番号は「invoiceNumber」タグではなく、 uDef_Inbr」

4)非テキストデータの場合、賢明で予測可能な規則が使用されています(たとえば、解釈により開かれたものではなく、TRUE、FALSE、Y、N、1、0)


5

.configファイルは、レジストリよりも編集がはるかに簡単です(ほとんどの人にとって)。専用の設定ファイルを開き、関連するデータを見つけ、他のプログラムに影響を与えるものを編集する可能性を開かずに変更を加える方が簡単です。


5

それはすべて理解しやすさ(そしておそらく変化すること)にかかっています。「Xは人間が読めるのですか?」「はい」または「いいえ」で答えるべきではありません。むしろ、答えはある種のスライディングスケールに沿ったものでなければなりません。

潜在的な例:

  • プログラマの90%は、一般的なテキストエディタでファイルを読み取って変更できます。
  • 英語話者の60%は、一般的なテキストエディターでファイルを読むことができました。
  • XYZ開発者の80%は、ファイルを読み取り、変更できましたが、ツールZYXのみを使用していました。
  • YZX開発者の10%は、一般的なテキストエディターでこのファイルを読み取って変更できました。

「人間が読める」とはどういう意味かを説明する文脈以外では、このフレーズはあまり役に立ちません。(ハードウェアビット自体の磁気極性を調べようとしないと、どこかの人間がおそらくどのフォーマットでも読むことができるでしょう...)


4

人間が読み取れる形式と人間が読み取れない形式の大きな違いの1つは、堅牢性です。Linuxシステムでは、あらゆる種類の情報がさまざまなテキストファイルに散らばっています。それらがどこにあるかを学ぶ必要はありますが、いつでも情報を見つけて、テキストエディターで読み、変更することができます。ファイルが消えた場合、通常は置き換えることができます。ファイルが破損した場合、多くの場合、ファイルの内容を把握して修正することができます。

MS Windowsシステムでは、これの大部分はレジストリにあります。これは、ユーザーの観点から、1つの大きな不透明なシステムであり、さまざまなツール(Linuxシステムの一部の構成ファイルと同様)を介して部分的にアクセスできます。レジストリエディタで。すべてがうまくいく限り、これは大丈夫です。それが壊れた場合、専門知識なしでできることは何もありません。


1
Linux:「彼らがどこにいるのかを学ぶ必要がある」対Windows:「専門知識がなければ何もできない」。私は(多くの異なるオペレーティングシステムのユーザーとして)それらすべてが専門知識を必要とすると主張ます。問題を修正するためにレジストリを微調整する場所を知ることは、LinuxまたはSolarisシステムでviを使用して編集できるファイルを知ることほど複雑ではありません。
ベヴァン

3

「人間が読める」と見なすことができる最も簡単なチェックは次のとおりです。

  • 外部エディタが簡単にアクセスできる場所/ファイル内(これにより、レジストリは「人間が読めない」ようになります)
  • データ構造で非表示文字を使用しません。「test」というテキストを含むOffice 2000 Word文書を作成すると、それをメモ帳で開き、4文字の「test」を内部のどこかに見つけることができるかもしれませんが、周囲には他にもたくさんのものがあります。
  • 必須ではありませんが、説明的なメタデータを含む形式はプラスです。を含むファイルは、2番目のフィールドが(少なくとも一般的には)何であるかを知っているため、にJohnSmith|34|T|F比べて友好的ではありません<User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>

2

用語としての「人間が読める」が時々間違って適用されているかどうかを尋ねているのではないかと思うかもしれません。レジストリエントリと.configファイルの例では、データに応じてさまざまな方法でXMLを配置したり、コメントを散在させたりできると便利だと思います。

.configファイル内のコレクションは一般に複数の要素として処理されますが、レジストリではより難しく、多くの場合MULTI_SZとして処理されます。

また、アプリケーションの構成データの詳細を一度に表示できます。regeditを使用すると、そのキーに移動するために必要な別のキーにあるものを表示できます。つまり、以前に表示していたエントリを表示できなくなります。.configファイルを使用すると、ファイルに階層データが含まれている場合でも、ファイル全体を一度に表示できます。


レジストリは両方です。非常に読みやすいものもありますが、かなり専門的な知識がなくても誰にとっても完全に不可解なものもあります。
ジョンホプキンス

確かに、いくつかの.configファイルは意味不明なように見えます。COMレジストリ情報についても考えていなかったことに注意してください。レジストリに入るアプリケーション設定、つまり.configファイルで取得する設定のピアについて考えていました。COM情報を人間が読むことを意図している人はいないと思います。
JohnL

2

「人間が読める」バイナリと比較してください。たとえば、通常、実行可能ファイルまたはデータベースインデックスをバニラテキストエディタで開いて、コンテンツが何であるかを理解することはできません。10進数32未満のバイトには、可視文字としてのグローバル標準表現さえありません。


1

簡単な答え:バイナリや16進数などではなく、テキストとして情報が入力されることを意味します。コンピューターの「マシン言語」ではなく、読みやすい「言語」と同等のもの。それを超えると、定義は曖昧になります。


1

また、コードにも適用されます-論理的で思慮深い方法でプログラムを構築して、初めてそれを見る人の仕事が少し楽になるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.