簡體   English   中英

我應該為代碼生成使用單個還是多個配置文件

[英]Should I use single or multiple configuration files for Code Generation

我有一個 php 腳本,它生成 php 和 javascript 包裝類,這些包裝類基於配置文件處理 json 編組。

我最初的計划是使用一個配置文件來生成應用程序使用的所有類。 但是,我的團隊領導建議我為每個功能使用一個單獨的文件,以避免創建一個巨大的配置文件,並創建一個目錄來定義由多個功能共享的 json 個對象

我將它與 struts-config.xml 進行了比較,其中所有定義都在一個文件中。 另一個例子是用於生成數據庫訪問類的數據字典和生成這些表的 SQL; 在以前的工作中,總是有一個文件定義所有的數據庫表,所以我什至沒有考慮太多,因為我已經習慣了。

他將它與 idl 進行了比較(它很像 idl),我們並沒有將所有 idl 定義保存在一個地方。

所以我想 arguments 支持和反對使用單個文件。 這里有一些:

單個文件

  • 好的

    • 您可以在一個地方看到所有 json 對象(這是我們 web API 的核心,用於記錄服務器 Ajax 調用)
    • 您只需要一個 makefile(或 ant 目標)
  • 壞的

    • 文件一旦變得太大就很難編輯

多個文件

  • 好的
    • JSON 僅用於單個功能不暴露(私有項目)
  • 壞的
    • 一旦一個 JSON object 被兩個功能使用,它需要移動到不同的文件

感謝任何反饋,如果你想插話但不太確定我在說什么,請讓我澄清一下。

是否編程我認為以下原則是不錯的建議。 因此,將這兩個應用到您的情況中,您就會回答自己;-)

單一責任原則的凝聚力:將相關的事物組合在一起

為了使配置與代碼分離,我在包含配置文件的Web文件夾(htdocs)之外創建了一個文件夾,它們模仿htdocs中的文件夾結構。 然后,將從配置文件編譯的文件移至將要使用的位置。 所以我想我使每個人都高興。 所有配置文件都位於單獨的文件夾中,但仍按功能進行組織。 因此,將所有配置文件都放在一個位置是一致的,同時仍按功能對每個配置文件進行分組。 對不起,一個令人困惑的問題...

還有另一種解決方案可以匹配兩個優點。

使用配置文件支持“導入”另一個配置,如 javascript。


例如,yaml 配置格式。

這是一個鏈接, 如何在另一個文件中包含一個 YAML 文件? .

它顯示了“單個大配置文件”如何包含“多個小配置文件”。

如果 0.yaml 是:

file1: !include include.d/1.yaml
file2: !include include.d/2.yaml

結果是

  file1:
    name: "1"
  file2:
    name: "2"

總而言之:

配置文件“0.yaml”是“單個大型配置文件”

“1.yaml”和“2.yaml”都是“多個小配置文件”。

1.yaml 和 2.yaml 由 0.yaml 組成。

可以簡單地用下式來表示

1.yaml + 2.yaml = 0.yaml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM