2007年7月12日 星期四

B24 程式執行時直接操作資料

2007年初時部門進來三位新人由我先給予基礎的訓練。某一天我安排了讓他們寫一個程式讀取XML檔案的內容並依序把每個Node名稱一行,每個Attribute的name與value都放一行集中到最後儲存為一個文字檔。

果然如同預期那樣,第一次使用XML DOM的人都認為這已經把檔案內容物件化,因而在程式的處理過程中直接操作;輸出的部分則使用一個StringBuffer收集所有的輸出後一次把字串寫回檔案中;而且所有的程式都集中在一個Class裡。以這次提出的程式需求來說,全部的人都成功做出符合功能的程式。

接著我對他們說,現在客戶的資料因為系統升級改成從純文字檔輸入,你們要如何改變程式?再來,讀到的內容在轉出為文字檔前,客戶希望可以出現一個Table逐筆顯示所有的內容確認後再行存檔,這又要怎麼改呢?以現在的設計方式,會不會改到死?他們想了想後全都點頭。

Data Model的存在就是在預防未來資料的存取方式改變時,不會造成資料物件的改變進而影響其他使用資料的程式跟著要變更。我也不大贊同使用SQL代號找出SQL Command來存取資料庫而把資料放在兩維陣列物件的方式,雖然在開發時可以有較快的開發速度也較容易測試,可是在資料庫定義有改變的時候沒有Data Model居中緩衝,結果造成需要改變的功能必須另外做出一套類似機制的結果。

為了開發時的快速,面對重大的改變時無法將差異融入到先前的設計而必須另外拉出成一套機制,其至更多。如果設計的人面對這樣的情況時,會有想從一開始就改變的想法嗎?

沒有留言:

張貼留言