Що означає "читабельність для людини"? Це неправильно?


12

Два приклади:

  • Однією з причин того, що програмістам .Net рекомендується використовувати файли .config замість реєстру Windows, є те, що файли .config є XML і, отже, читаються людиною.

  • Аналогічно, JSON іноді вважається читабельним для людини порівняно з фірмовим форматом.

Чи справді читаються люди формати? У прикладі даних конфігурації:

  1. Формат не змінює основне значення інформації - в обох випадках дані представляють одне і те ж.
  2. І реєстр, і .config файл зберігаються внутрішньо як серія 0 і 1. У цій мірі представлення, яке лежить в основі, не менш читабельне для людей.
  3. І реєстр, і файл .config потребують інструменту для читання, форматування та відображення цих 0 і 1 та перетворення їх у формат, який люди можуть читати. У випадку конфігурації, що зберігається в Реєстрі Windows, це редактор реєстру. У випадку XML це може бути текстовий редактор або зчитувач XML. У будь-якому випадку інструмент робить дані читабельними, а не форматом даних.

Отже, чим відрізняються формати даних, прочитані людиною, і нечитабельні люди?


3
Залежить, якщо визначення поняття "людина" обмежується програмістами / тощо, чи стосується всіх людей (якщо останні, то майже всі формати, ймовірно, не в різній мірі).
Пітер Бауфтон

7
Єдиний для людини читаний формат серіалізації - YAML . XML змушує мене вивести очі.
NullUserException

Відповіді:


35

Читання людини в основному означає, що якщо вміст відображається програмою, якій не вистачає прямого, конкретного усвідомлення формату цього файлу, то існує принаймні розумний шанс, що людина зможе прочитати та зрозуміти хоча б частину цього.

Ваша основна думка про відсутність чіткої лінії розмежування абсолютно правильна, хоча - колись я знав хлопця, який міг діагностувати проблеми з програмами (в основному написаними на Fortran) часто за п’ять хвилин чи менше - йдучи лише з вісімки дамп основної роботи, не дивлячись на вихідний код. Для більшості людей цей формат навряд чи кваліфікується як "читабельний для людини", але, очевидно, він був винятком ...


14
+1: Все "читається по-людськи", докладаючи достатньо зусиль. Фактичне значення "читабельного для людини" в комп'ютерах: звичайний текст, неструктурований або якась структура, що складається виключно з текстових символів.
Аллон Гуралнек

35

Читання людини означає, що я можу відкрити річ у Блокноті, якщо хочу, і змінити "пароль = foo" на "пароль = бар", якщо я цього хочу. Мені не потрібно використовувати власницький інструмент для перегляду або редагування вмісту.

На відміну від PDF, який ви не можете редагувати за допомогою простого текстового редактора - вам потрібен певний інструмент, який знає формат. Або двійковий файл .dat, який надійшов із додатком 25 років тому, який ви не можете читати, редагувати чи розуміти.


Чи вважаєте ви, що RTF читається людиною?
Пітер Бауфтон

7
RTF читається програмістом :-). Я відредагував це, але це було не приємно. XML, звичайно, менш читабельний, ніж JSON. Багато що залежить від того, до чого звикли ваші люди - багато хто віддає перевагу .csv XML, але я впевнений, що ні!
Кейт Григорій

3
Можливо, ви не зможете відредагувати файл, прочитаний людиною. Я бачив багато, де вміст є читабельним для людини, але у них може бути контрольне поле зі, наприклад, шістнадцятковим значенням параметра, яке не легко піддається обчисленню, і базується на вмісті файлу. Це значення використовується програмою для перевірки файлів.
uɐɪ

6
Хороший момент @Ian - оскільки ми обговорюємо термінологію, ми повинні розрізняти читабельну людину та людину, яку можна редагувати. На мою думку, обидва речі хороші.
Кейт Григорій

Я підтримую ваше твердження, що JSon набагато більш зручний для редагування (і читабельний), ніж xml, хоча б тому, що сутності xml викликають такий біль.
Матьє М.

10

У відповідь на ваше запитання "Чи справді читаються люди формати насправді читаються людиною", за визначенням, так вони є, ось що означає для людини читати.

Немає технічного визначення людського читабельного, це суб'єктивне, і можуть виникнути питання щодо того, який рівень знань людині потрібно мати, щоб кваліфікувати (наприклад, чи потрібно їм розуміти основні принципи XML, такі як теги та ієрархії , чи повинні вони розуміти бізнес-домен, в якому існують дані - особисто я б сказав обом), але ваш базовий тест повинен бути, якби я показав це комусь із базовими технічними навичками, хто зрозумів основи того, що ці дані мають на увазі представляти , чи можуть вони це прочитати.

На практичному рівні це, як правило, означає:

1) Дані зберігаються у вигляді тексту ASCII або іншого подібного поширеного та легко впізнаваного формату

2) Про те, що існує розумна структура, це очевидно з базової експертизи. Наприклад, вам не потрібно знати, що перші символи X пов'язані з Y, а наступні X відносяться до Z

3) що і дані, і метадані, як правило, англійською мовою (або будь-якою вашою місцевою мовою) і потребують розуміння лише обмежених знань про проблемний домен - значить, номер рахунку-фактури міститиметься в тезі "рахунок-фактура", а не " uDef_Inbr "

4) Для нетекстових даних, використовуваних передбачувані, використовуються передбачувані конвенції (наприклад, TRUE, FALSE, Y, N, 1, 0, а не щось більш відкрите для тлумачення)


5

.config файли набагато простіше редагувати (для більшості людей), ніж Реєстр. Простіше відкрити виділений конфігураційний файл, знайти відповідні дані та внести зміни, не відкриваючи можливості редагувати те, що вплине на інші програми.


5

Вся справа в простоті розуміння (і, ймовірно, зміни). Отже, "Чи читається X людина?" не слід відповідати "так" або "ні". Швидше за все, відповідь повинна відповідати деякій шкалі ковзання.

Потенційні приклади:

  • 90% програмістів могли читати та змінювати файл будь-яким загальним текстовим редактором.
  • 60% носіїв англійської мови могли прочитати файл у будь-якому загальному текстовому редакторі.
  • 80% розробників XYZ могли читати та змінювати файл, але лише використовуючи інструмент ZYX.
  • 10% розробників YZX могли читати та змінювати цей файл за допомогою звичайного текстового редактора.

Поза контекстом, який пояснює, що насправді означає "читабельність для людини", ця фраза не допомагає так сильно. (Деякі люди десь можуть, напевно, читати будь-який формат, якщо ви не рахуєтеся, намагаючись переглянути магнітну полярність самих апаратних бітів ...)


4

Важливою різницею між форматами, що читаються людиною, і нечитабельними для людини форматами є надійність. В системі Linux всі види інформації будуть розкидані навколо різних текстових файлів. Вам потрібно дізнатися, де вони є, але ви завжди можете знайти інформацію та прочитати та змінити її за допомогою текстового редактора. Якщо файл зникає, його можна взагалі замінити. Якщо файл стає пошкодженим, ви часто можете з'ясувати, яким він має бути, і виправити його.

В системі MS Windows більшість цього буде в Реєстрі, який є, з точки зору користувачів, однією великою непрозорою системою, частково доступною за допомогою різних інструментів (подібно до деяких конфігураційних файлів в системах Linux) та загалом з редактором реєстру. Поки все йде добре, це нормально. Якщо вона зламається, нічого не можна зробити без спеціальних знань.


1
Linux: "Вам потрібно дізнатися, де вони перебувають" проти Windows: "нічого, що не можна зробити без спеціальних знань". Я заперечую (як користувач багатьох різних операційних систем), що всі вони потребують спеціальних знань. Знати, де налаштувати реєстр, щоб виправити проблему, не є більш (або менш) складним завданням, ніж знати, який файл можна редагувати за допомогою vi в системі Linux або Solaris.
Беван

3

Найпростіші перевірки, які я можу вважати такими, що можна зрозуміти як "читабельні для людини", це:

  • у розташуванні / файлі, до якого легко отримати доступ зовнішні редактори (це зробить реєстр не "зрозумілим для людини")
  • не використовує символи, що не відображаються в структурі даних. Якщо я зроблю документ Office 2000 Word з текстом "тест" всередині, я, можливо, зможу відкрити це в блокноті і знайти "тест" чотирьох символів десь усередині, але навколо нього буде ще маса інших речей.
  • Хоча це не потрібно, формати, які містять описові метадані, є плюсом. Файл, який містить JohnSmith|34|T|F, менш дружній, ніж <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>, оскільки знайте, які поля є (принаймні загалом) у 2-му.

2

Я думаю, ви можете запитати, чи поняття "читабельне для людини" поняття іноді неправильно застосовується, і, без сумніву, це так. На прикладі записів реєстру проти файлів .config, я думаю, що це допомагає, що ви можете упорядкувати XML різними способами залежно від даних, перехресних коментарів тощо.

Колекції у файлах .config, як правило, обробляються як декілька елементів, тоді як це складніше в реєстрі, часто як MULTI_SZ.

Також ви можете побачити більше даних про конфігурацію програми для програми - за допомогою regedit, щоб побачити щось, що знаходиться в іншому ключі, вам потрібно перейти до цього ключа, а це означає, що ви більше не можете бачити записи, які ви раніше переглядали. За допомогою файлів .config ви можете побачити весь файл одразу, навіть якщо цей файл може містити ієрархічні дані.


Реєстр є обома. Є його шматочки, які дуже легко читаються, інші, які є абсолютно безглуздими для будь-кого без досить спеціальних знань.
Джон Хопкінс

Щоправда, і ви можете сказати, що деякі файли .config виглядають як хитрість. Зауважте, що я навіть не думав про інформацію реєстру COM, я думав про налаштування додатків, які входитимуть у реєстр - рівнозначні налаштуванням, які ви отримуєте у файлах .config. Я не думаю, що хтось має намір читати людину інформацію про COM.
JohnL

2

Контраст "читабельний для людини" з бінарним. Наприклад, ви не можете відкрити виконуваний файл або індекс бази даних у ванільному текстовому редакторі і зрозуміти, що таке вміст. У байтах, що знаходяться нижче десяткових 32, навіть немає глобально стандартних уявлень як видимих ​​символів.


1

Коротка відповідь: Це означає, що інформація вводиться як текст, а не двійковий чи шістнадцятковий тощо. Щось таке, що прирівнюється до читаної "мови", а не до комп'ютерної "машинної мови". Крім цього, визначення стає мутним.


1

Це стосується і коду - ви структуруєте свою програму логічно і продумано, так що робота кожного, хто вперше дивиться на неї, трохи полегшується.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.