6

Đối với chương trình python tôi viết, tôi muốn cung cấp cho cơ hội cấu hình nó theo ba cách khác nhau. Biến môi trường, tệp cấu hình và đối số dòng lệnh.Thứ tự giá trị cấu hình đọc nào?

Về mặt logic, tôi cho rằng đối số dòng lệnh phải luôn có mức độ ưu tiên cao nhất. Tôi là một chút nghi ngờ liệu các biến môi trường nên có ưu tiên hơn các tập tin cấu hình? Và nó sẽ quan trọng cho dù các tập tin cấu hình là hệ thống rộng, người dùng cụ thể hoặc đưa ra như là đối số trên dòng lệnh?

(Lưu ý rằng nền tảng của tôi là Unix/Linux)

Trả lời

15

Các tiêu chuẩn mà tôi biết là cái nhìn đầu tiên cho một tham số dòng lệnh, nếu không tìm thấy môi trường var, sau đó địa phương tập tin cấu hình sau đó tập tin cấu hình toàn cầu.

Vì vậy, khi gói được cài đặt ở đâu đó. Nó sẽ có một tập tin cấu hình mặc định. Điều này có thể được thay đổi với một tập tin cấu hình địa phương. Có thể được ghi đè bằng tham số môi trường và sau đó tham số dòng lệnh có mức ưu tiên cao nhất.

Nếu tệp cấu hình được khai báo trên dòng lệnh, nội dung của tệp cấu hình sẽ được ưu tiên hơn thông số môi trường hoặc bất kỳ tệp cấu hình nào khác. Nhưng các tham số dòng lệnh sẽ được ưu tiên hơn. Nhưng hãy nhớ rằng đường dẫn tìm kiếm vẫn tồn tại. Nếu gói tìm kiếm một var nó tìm kiếm.

Command line. 
Config file thats name is declared on the command line. 
Environment vars 
Local config file (if exists) 
Global config file (if exists) 

Tôi nghĩ rằng nhiều trình biên dịch dòng lệnh và Boost thư viện cấu hình công trình pak trong một thời trang tương tự

+0

Tôi không biết nếu thứ tự nhất định của bạn là chính thức hay lúc nào cũng có ý nghĩa, nhưng nó có vẻ khá tốt với tôi:) +1 – Mecki

+0

Vâng, chúng tôi luôn có thể chi tiêu rất nhiều tiền và làm cho một tiêu chuẩn IEEE. Na. Quá nhiều thời gian và công sức cho phần thưởng nhỏ. Microsoft và Google và các nghi phạm thông thường khác sẽ có hàng nghìn lý do tại sao họ không thể tuân theo hướng dẫn của Mecki/King. – kingchris

+1

Vị trí "tệp cấu hình trên dòng lệnh" có thể tranh cãi được. Từ kinh nghiệm của tôi, nó thường thay thế các tập tin chứng khoán. –

Các vấn đề liên quan