2013-02-03 81 views
2

什麼是最普遍和最好的​​應用程序配置管理方法?我想,以具有「良好的配置管理」有這些屬性:
如何正確管理應用程序配置

  • 在一個 地方所有可用的屬性及其默認值的列表。
  • 應用程序用戶可以更改的屬性列表,也位於一個 位置。
  • 當我檢索一個特定的屬性時,它的值將從 第二個列表(用戶可更改配置)返回,或者如果它不存在,則從 第一個列表中返回。

到目前爲止,我所做的是硬編碼一日清單作爲一個對象(更具體的作爲dict),寫了使用ConfigParser,使應用程序用戶可以很容易地改變某些屬性.conf文件(第二列表),並且在配置對象上寫了一個公共方法來通過它的名字來檢索一個屬性,或者如果它不在那裏,引發一個異常。最後,一個對象負責管理所有的東西(解析文件,引發異常,重寫屬性等)。但是我想知道,如果有一個內置的庫,它或多或少地做了相同的事情,或者甚至更好管理配置的方式,它考慮到所有KISS,DRY和其他原則(我並不總是用這種方法做到這一點)?

在此先感謝。

+1

我不關注,ConfigParser是內置的,似乎適用於您的用例,KISS和DRY是您的責任,應該有一點思考。 - 當然你可以使用'pickle'或'marshal'來保存你的應用程序的整個狀態,但這是不可配置的。 – danodonovan

+1

'ConfigParser'確實是你想在這裏使用的。儘管你的解釋讓我有點困惑。是否有一個特定的原因,你不能/不想使用'ConfigParser'? – johnharris85

+0

我可以使用它,並使用它,但'ConfigParser'有點太低級,我想知道是否有辦法通過更多的抽象來實現它。我認爲我試圖達成的目標是一項常見任務,所以只想問問任何人是否有更好的方法來管理配置。感謝您的迴應 – and3p

回答

0

創建一個默認設置模塊,其中包含您想要的默認設置。創建第二個模塊,供用戶在頂部使用from default_settings import *語句,並指示用戶將替換內容寫入此模塊。

Python很有表現力,所以在大多數情況下,如果您希望用戶在任何級別上理解它,您可以使用Python模塊本身作爲配置文件。

相關問題