Không có nghĩa là con người có thể đọc được Có phải là một cách hiểu sai?


13

Hai ví dụ mùa xuân đến trong tâm trí:

  • Một trong những lý do mà các lập trình viên .Net được khuyến khích sử dụng các tệp .config thay vì Windows Registry là các tệp .config là XML và do đó con người có thể đọc được.

  • Tương tự, JSON đôi khi được coi là dễ đọc với con người so với định dạng độc quyền.

Các định dạng có thể đọc được của con người thực sự có thể đọc được bởi con người? Trong ví dụ về dữ liệu cấu hình:

  1. Định dạng không thay đổi ý nghĩa cơ bản của thông tin - trong cả hai trường hợp, dữ liệu đại diện cho cùng một thứ.
  2. Cả tệp đăng ký và .config đều được lưu trữ bên trong dưới dạng một chuỗi 0 và 1. Ở mức độ đó, đại diện cơ bản là không thể đọc được bởi con người.
  3. Cả tệp đăng ký và .config đều yêu cầu một công cụ để đọc, định dạng và hiển thị các số 0 và 1 đó và chuyển đổi chúng thành định dạng mà con người có thể đọc được. Trong trường hợp cấu hình được lưu trữ trong Windows Registry, đây là Registry Editor. Trong trường hợp XML, nó có thể là trình soạn thảo văn bản hoặc trình đọc XML. Dù bằng cách nào, công cụ này làm cho dữ liệu có thể đọc được, không phải định dạng dữ liệu.

Vì vậy, sự khác biệt giữa các định dạng dữ liệu có thể đọc được của con người và các định dạng không thể đọc được của con người là gì?


3
Phụ thuộc nếu định nghĩa của "con người" chỉ giới hạn ở các lập trình viên / v.v. hoặc áp dụng cho tất cả mọi người (nếu sau này thì hầu như tất cả các định dạng có thể không ở các mức độ khác nhau).
Peter Boughton

7
Định dạng tuần tự hóa có thể đọc được của con người là YAML . XML làm cho tôi muốn rời mắt ra.
NullUserException

Câu trả lời:


35

Về cơ bản con người có thể đọc được có nghĩa là nếu nội dung được hiển thị bởi một chương trình thiếu nhận thức trực tiếp, cụ thể về định dạng của tệp đó, thì ít nhất có khả năng một người có thể đọc và hiểu ít nhất một số nội dung đó.

Quan điểm cơ bản của bạn về việc thiếu một dòng phân định rõ ràng là hoàn toàn chính xác mặc dù - có một lần tôi biết một anh chàng có thể chẩn đoán các vấn đề với các chương trình (chủ yếu được viết bằng Fortran) thường trong năm phút hoặc ít hơn - chỉ từ một bát phân lõi đổ, mà không nhìn vào mã nguồn nào cả. Đối với hầu hết mọi người, định dạng đó khó có thể đủ điều kiện là "con người có thể đọc được", nhưng rõ ràng anh ta là một ngoại lệ ...


14
+1: Mọi thứ là "con người có thể đọc được" với đủ nỗ lực. Ý nghĩa thực tế của "con người có thể đọc được" trong máy tính là: văn bản thuần túy, không cấu trúc hoặc một số cấu trúc chỉ bao gồm các ký tự văn bản.
Allon Guralnek

35

Con người có thể đọc được có nghĩa là tôi có thể mở thứ trong Notepad nếu tôi muốn và thay đổi "password = foo" thành "password = bar" nếu tôi muốn. Tôi không phải sử dụng một công cụ độc quyền để xem hoặc chỉnh sửa nội dung.

Tương phản với PDF mà bạn không thể chỉnh sửa bằng trình soạn thảo văn bản đơn giản - bạn cần một công cụ cụ thể biết định dạng. Hoặc tệp nhị phân .dat đi kèm với một số ứng dụng từ 25 năm trước mà bạn không thể đọc, chỉnh sửa hoặc hiểu.


Bạn sẽ xem xét RTF con người có thể đọc được?
Peter Boughton

7
RTF có thể đọc được lập trình viên :-). Tôi đã chỉnh sửa bằng tay nhưng nó không dễ chịu. XML chắc chắn ít người đọc hơn JSON. Rất nhiều thứ phụ thuộc vào con người của bạn đã quen với điều gì - nhiều người trong số tôi thích .csv hơn XML, nhưng tôi chắc chắn là không!
Kate Gregory

3
Bạn có thể không thể chỉnh sửa một tập tin con người có thể đọc được. Tôi đã thấy nhiều nội dung có thể đọc được ở người nhưng chúng có thể có trường kiểm tra với giá trị tham số hex không dễ tính toán và dựa trên nội dung tệp. Giá trị này được sử dụng bởi ứng dụng để xác nhận tập tin.
uɐɪ

6
Điểm hay @Ian - vì chúng ta đang thảo luận về thuật ngữ, chúng ta nên phân biệt giữa con người có thể đọc được và con người có thể chỉnh sửa. Cả hai đều là những điều tốt đẹp, theo ý kiến ​​của tôi.
Kate Gregory

Tôi ủng hộ tuyên bố của bạn rằng JSon có thể chỉnh sửa (và dễ đọc) hơn nhiều so với xml, nếu chỉ vì các thực thể xml chỉ là một nỗi đau.
Matthieu M.

10

Để trả lời cho câu hỏi của bạn "Các định dạng có thể đọc được của con người thực sự có thể đọc được bởi con người", theo định nghĩa, đúng vậy, đó là những gì con người có thể đọc được.

Không có định nghĩa kỹ thuật về con người có thể đọc được, nó chủ quan và có thể có câu hỏi về mức độ kiến ​​thức mà con người cần phải đủ điều kiện (ví dụ, họ cần hiểu các nguyên tắc cơ bản của XML như thẻ và phân cấp , nếu họ hiểu miền kinh doanh mà dữ liệu tồn tại - cá nhân tôi sẽ nói đồng ý với cả hai) nhưng thử nghiệm cơ bản của bạn sẽ là nếu tôi đưa nó cho người có kỹ năng kỹ thuật cơ bản hiểu được những điều cơ bản về dữ liệu có nghĩa là gì , họ có thể đọc nó không

Ở mức độ thực tế, điều này thường có nghĩa như sau:

1) Dữ liệu được lưu trữ dưới dạng văn bản ASCII hoặc một số định dạng tương tự phổ biến và dễ nhận biết khác

2) Có một cấu trúc hợp lý là hiển nhiên từ một kỳ thi cơ bản. Chẳng hạn, bạn không cần phải biết rằng các ký tự X đầu tiên liên quan đến Y, sau đó X tiếp theo liên quan đến Z

3) Rằng cả dữ liệu và dữ liệu meta nói chung đều bằng tiếng Anh (hoặc bất kể ngôn ngữ địa phương của bạn là gì) và chỉ yêu cầu hiểu biết hạn chế về miền vấn đề để hiểu - vì vậy, một số hóa đơn sẽ nằm trong thẻ "billingNumber", thay vì " uDef_Inbr "

4) Đối với dữ liệu phi văn bản hợp lý, các quy ước có thể dự đoán được đã được sử dụng (ví dụ TRUE, FALSE, Y, N, 1, 0 thay vì một cách giải thích cởi mở hơn)


5

Các tệp .config dễ chỉnh sửa hơn (đối với hầu hết mọi người) so với Registry. Dễ dàng hơn để mở tệp cấu hình chuyên dụng, tìm dữ liệu liên quan và thực hiện thay đổi mà không cần mở khả năng chỉnh sửa nội dung nào đó sẽ ảnh hưởng đến các chương trình khác.


5

Đó là tất cả về sự dễ hiểu (và có khả năng thay đổi). Vậy "Con người X có đọc được không?" không nên trả lời bằng "có" hoặc "không". Thay vào đó, câu trả lời nên dọc theo một số loại thang trượt.

Ví dụ tiềm năng:

  • 90% lập trình viên có thể đọc và thay đổi tệp với bất kỳ trình soạn thảo văn bản phổ biến nào.
  • 60% người nói tiếng Anh có thể đọc tệp với bất kỳ trình soạn thảo văn bản phổ biến nào.
  • 80% nhà phát triển XYZ có thể đọc và thay đổi tệp, nhưng chỉ sử dụng công cụ ZYX.
  • 10% nhà phát triển YZX có thể đọc và thay đổi tệp này bằng trình chỉnh sửa văn bản phổ biến.

Bên ngoài bối cảnh giải thích "con người có thể đọc được" thực sự có nghĩa là gì, cụm từ này không giúp được gì nhiều. (Một số người ở đâu đó có thể có thể đọc bất kỳ định dạng nào, nếu bạn không cố gắng nhìn vào cực tính từ của các bit phần cứng ...)


4

Một sự khác biệt lớn giữa các định dạng có thể đọc được của con người và các định dạng không thể đọc được của con người là sự mạnh mẽ. Trong một hệ thống Linux, tất cả các loại thông tin sẽ được phân tán xung quanh trong các tệp văn bản khác nhau. Bạn cần phải tìm hiểu vị trí của chúng, nhưng bạn luôn có thể tìm thấy thông tin và đọc và thay đổi nó bằng trình soạn thảo văn bản. Nếu một tập tin biến mất, bạn thường có thể thay thế nó. Nếu một tệp bị hỏng, bạn thường có thể tìm ra nó nên là gì và sửa nó.

Trong hệ thống MS Windows, hầu hết trong số này sẽ nằm trong Registry, theo quan điểm của người dùng, một hệ thống mờ lớn, có thể truy cập một phần thông qua các công cụ khác nhau (giống như một số tệp cấu hình trong hệ thống Linux) và nói chung với một trình soạn thảo đăng ký. Miễn là mọi thứ đều ổn, điều này là ổn. Nếu nó bị hỏng, không có gì có thể được thực hiện mà không có kiến ​​thức chuyên môn.


1
Linux: "Bạn không cần phải học chúng ở đâu" so với Windows: "không có gì có thể được thực hiện mà không có kiến ​​thức chuyên môn". Tôi cho rằng (với tư cách là người dùng của nhiều Hệ điều hành riêng biệt) rằng tất cả chúng đều cần có kiến ​​thức chuyên môn. Biết nơi chỉnh sửa sổ đăng ký để khắc phục sự cố không phức tạp hơn (hoặc ít hơn) so với việc biết tệp nào có thể được chỉnh sửa bằng vi trên hệ thống Linux hoặc Solaris.
Bevan

3

Các kiểm tra đơn giản nhất tôi có thể nghĩ rằng đủ điều kiện là "con người có thể đọc được" là:

  • trong một vị trí / tệp có thể dễ dàng truy cập bởi các biên tập viên bên ngoài (điều này sẽ làm cho sổ đăng ký không "có thể đọc được")
  • không sử dụng các ký tự không hiển thị trong cấu trúc dữ liệu. Nếu tôi tạo tài liệu Office 2000 Word với văn bản "kiểm tra" bên trong, tôi có thể mở nó trong notepad và tìm 4 ký tự "kiểm tra" ở đâu đó bên trong, nhưng sẽ có rất nhiều thứ khác xung quanh nó.
  • Mặc dù không bắt buộc, các định dạng chứa siêu dữ liệu mô tả là một lợi thế. Một tệp chứa JohnSmith|34|T|Fít thân thiện hơn <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>, như biết các trường là gì (ít nhất là nói chung) trong phần 2.

2

Tôi nghĩ rằng bạn có thể đang hỏi liệu "con người có thể đọc được" như một thuật ngữ đôi khi được áp dụng không chính xác, và không còn nghi ngờ gì nữa. Trong ví dụ về các mục đăng ký so với các tệp .config, tôi nghĩ rằng nó giúp bạn có thể sắp xếp XML theo các cách khác nhau tùy thuộc vào dữ liệu, xen kẽ các nhận xét, v.v.

Các bộ sưu tập trong các tệp .config thường được xử lý dưới dạng nhiều phần tử, trong khi đó, việc đăng ký sẽ khó khăn hơn, thường là MULTI_SZ.

Bạn cũng có thể xem thêm dữ liệu cấu hình cho một ứng dụng cùng một lúc - với regedit, để xem thứ gì đó nằm trong một khóa khác mà bạn cần điều hướng đến khóa đó, điều đó có nghĩa là bạn không còn thấy các mục bạn đang xem trước đây. Với các tệp .config, bạn có thể xem toàn bộ tệp cùng một lúc, mặc dù tệp đó có thể chứa dữ liệu phân cấp.


Đăng ký là cả hai. Có một số phần của nó rất dễ đọc, những phần khác hoàn toàn vô nghĩa với bất cứ ai mà không có kiến ​​thức chuyên môn khá.
Jon Hopkins

Đúng, và bạn có thể nói rằng một số tệp .config trông giống như vô nghĩa. Lưu ý rằng tôi thậm chí không nghĩ đến thông tin đăng ký COM, tôi đã nghĩ đến các cài đặt ứng dụng sẽ đi vào sổ đăng ký - ngang hàng với các cài đặt bạn nhận được trong các tệp .config. Tôi không nghĩ bất cứ ai có ý định cho thông tin COM được đọc bởi con người.
JohnL

2

Tương phản "con người có thể đọc được" với nhị phân. Ví dụ: bạn thường không thể mở một chỉ mục thực thi hoặc chỉ mục cơ sở dữ liệu trong trình soạn thảo văn bản vanilla và hiểu nội dung là gì. Các byte dưới thập phân 32 thậm chí không có các biểu diễn tiêu chuẩn toàn cầu dưới dạng các ký tự hiển thị.


1

Câu trả lời ngắn: Có nghĩa là thông tin được nhập dưới dạng văn bản, thay vì nhị phân hoặc hex, v.v ... Một cái gì đó tương đương với một "ngôn ngữ" có thể đọc được chứ không phải là "ngôn ngữ máy" của máy tính. Ngoài ra, định nghĩa trở nên u ám.


1

Nó cũng áp dụng cho mã - bạn cấu trúc chương trình của mình một cách hợp lý và chu đáo để công việc của bất cứ ai nhìn vào nó lần đầu tiên được thực hiện dễ dàng hơn một chút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.