2008-10-27 52 views
8

我正在尋找在不使用repeating yourself的情況下在不同地點使用相同數據的最佳做法 - 這可能包括配置或業務規則。如何在語言之間共享配置信息或業務規則

示例1.您要在客戶端上使用javascript驗證的數據驗證規則,但您希望通過服務器上的驗證來確認。

示例2.數據庫訪問您的Web服務器和您的cronjobs使用相同的密碼,用戶名。

易於處理和人性化的解決方案將是一個優點。

+0

這不是通常意義上的「配置」。這是代碼。請放下「配置」,在代碼中加入「代碼」或「業務規則」或其他內容。 – 2008-10-27 13:27:04

+0

我已將業務規則添加到標題和標籤,但我認爲配置適用於第二個示例。例如,MySQL將.my.cnf文件(包括用戶,密碼,主機等)稱爲配置文件。 – Ken 2008-10-27 14:30:32

回答

6

將您的數據編碼爲JSON。對於任何您想要的語言,都有一個JSON庫,如果不是,那麼編寫一個代碼非常容易。如果JSON不夠,請查看YAML

+0

我認爲這隻適用於示例2(數據),而不適用於示例1(邏輯)。 – 2008-10-27 13:23:31

+0

如果你想完全不依賴語言,那麼你將不得不在某種數據中編碼邏輯。當然,你可以一路走,並使用Lisp S表達式,所以你的代碼*是*數據。 :-) – 2008-10-27 13:41:57

3

XML在全球範圍內非常普遍。易讀,易寫,易讀。如果您擔心空間開銷(如果您想要人類可讀的話,實際上並不是這樣),然後在發送之前將其壓縮,XML壓縮得相當好。

0

儘管討厭分享數據驗證規則,但我不得不說Regular Expressions。我知道,我知道,每個人都討厭他們,但他們(通常)是語言不可知的。

0
  1. 使用O/S環境變量(envvars中)來存儲應用程序的配置信息(諸如分貝密碼)

  2. 驗證規則通常需要的邏輯。你可以用JavaScript編寫規則,然後在瀏覽器,服務器(使用Nashorn)和數據庫(使用Postgres的PLV8)中運行它們。