tl; dr Tại sao lưu trữ dữ liệu cấu hình trong tệp json được coi là tiêu chuẩn thực tế?Lưu trữ dữ liệu cấu hình (json)
Gần đây tôi đã đọc một số phần của sách Maintainable Javascript, đặc biệt là Lưu trữ dữ liệu cấu hình.
Đây là trích dẫn từ chương:
Cấu hình dữ liệu được bảo quản tốt nhất trong một tập tin riêng biệt để tạo ra một tách sạch giữa nó và logic ứng dụng. Điểm khởi đầu tốt là có tệp JavaScript riêng cho dữ liệu cấu hình. Khi dữ liệu cấu hình nằm trong một tệp riêng biệt, dữ liệu này sẽ mở ra thêm khả năng quản lý dữ liệu đó. Một tùy chọn đáng giá là di chuyển cấu hình của bạn dữ liệu vào một tệp không phải là JavaScript.
Mặc dù bạn đang viết một ứng dụng JavaScript, JavaScript không phải là cách tuyệt vời để lưu trữ dữ liệu cấu hình. Đó là bởi vì cú pháp vẫn là ngôn ngữ lập trình, nên bạn cần chắc chắn rằng bạn chưa đưa ra lỗi cú pháp.
Ông về cơ bản nói rằng lưu trữ dữ liệu cấu hình trong tệp .json hoặc tệp .js là một thực hành không tốt và nên tránh.
Từ json.org:
JSON (JavaScript Object Notation) là một định dạng dữ liệu trao đổi nhẹ.
Trao đổi có nghĩa là để tôi gửi và nhận dữ liệu, để truyền đạt hai quy trình theo cách được định dạng tốt.
Rất nhiều người đang lưu trữ dữ liệu trong file json, có thêm rất nhiều tiếng ồn: dấu ngoặc nhọn, thụt đầu dòng, dấu ngoặc kép, dấu phẩy, không thể viết ý kiến, vv
Java sử dụng dây chuyền giá trị khóa, có cách nào đơn giản hơn để lưu trữ dữ liệu này không?
a 1
Và với định dạng json (1):
{
"a": 1
}
Và với định dạng js (2):
module.exports = {
a: 1
}
Microsoft thích sử dụng .ini file mà thêm phần để những chìa khóa các dòng giá trị.
Tệp cấu hình Unix cũng sử dụng các dòng khóa-giá trị. Sau đó, nếu tất cả thế giới sử dụng các dòng khóa-giá trị vì chúng dễ đọc/ghi bởi con người, tại sao các tệp json lại là một tiêu chuẩn thực tế trong thế giới node.js? Xin vui lòng không cho tôi biết đó là bởi vì json và javascript là từ đồng nghĩa thực tế và bởi vì các nhà phát triển quá lười biếng và thích gọi require("./config.json")
.
Trong các ví dụ trên, tùy chọn đầu tiên (1) được sinh ra để giảm bớt khả năng thay đổi dữ liệu.Và thứ hai, imo, nó chỉ là xấu. Điều này giống như lưu trữ dữ liệu cấu hình trong một lớp Java. Nếu tôi muốn đọc tập tin này từ php bởi vì tôi có một máy chủ apache và nodejs cho những thứ thời gian thực, làm thế nào tôi phải phân tích cú pháp tập tin đó? Tôi cần một trình phân tích cú pháp javascript.
Cả hai tùy chọn đều không có lỗi cú pháp hoặc chương trình có thể gặp sự cố.
Tôi có một cách giải thích khác với báo giá: nó nói rằng việc lưu trữ cấu hình trong * JavaScript * (ví dụ: tệp .js) là xấu. Nó ** không ** nói rằng lưu trữ cấu hình trong JSON là xấu (nó không phải là). ** JSON! = JavaScript. ** – josh3736
Nó làm tôi buồn vì XML không được mời tham gia lồng ghép .. – dc5