目前在某公司主程式的部分資料設定檔讀取方式的設計如下。
主程式(假設叫Main)執行時,必須讀取外部的設定資料並轉為對映類別的實例,又外部資料的企劃人員不懂程式,所以無法透過直接撰寫程式的方式來設定,因此目前的做法順序為:
在一個設計資料結構的專案(例如叫Structure)設計好對映的類別(假設類別名稱叫MyData
)結構後,將該專案匯出為jar檔,例如叫做Structure.jar
有另一套桌面Java工具程式(簡稱Converter)可以將MyData
類別結構轉成以Excel檔表示的結構,以及可將Excel檔轉為binary檔。Converter要透過Structure.jar讀取MyData
,所以Structure.jar
要放入Converter專案的lib
目錄中。
Converter因為有了Structure.jar
,所以可以匯出MyData
對映的Excel,叫MyData.xlsx
企劃人員將數值填寫到MyData.xlsx
將填寫好的MyData.xlsx
放回Converter專案的excel
目錄
使用Converter將excel
目錄中的MyData.xlsx
轉成MyData.bin
二位元檔。
將MyData.bin
放到Main專案的data
目錄。
Main專案啟動時,便會載入MyData.bin
的資料並轉回MyData
類別的值。
整理一下流程
- 在Structure專案設計MyData.java
- 將Structure匯出為Structure.jar
- 將Structure.jar放入Converter/lib
- 使用Converter將MyData.java轉成MyData.xlsx
- 請企劃人員填寫MyData.xlsx
- 將MyData.xlsx放入Converter/excel
- 使用Converter將MyData.xlsx轉為MyData.bin
- 將MyData.bin放入Main/data
以上問題在於手動操作的步驟很多,而且每次改動MyData.java的結構就要走完以上來測試設定的資料是否跑出正確的結果。
MyData類別的結構中,其實就是一些子類別與Map
,List
的組合。
若能改以json來設定的話會容易許多,MyData轉出及讀取json檔很容易也不需要額外工具,企劃人員直接填寫json檔。
問題是企劃人員填了那麼久的Excel檔,對改成填寫json檔會有抗拒。
沒有留言:
張貼留言