1. 程式人生 > >java web一次需求改動的教訓

java web一次需求改動的教訓

一個需求:考勤統計上顯示請假,出差等資訊。(這裡簡化為:統計表與請假表)

原來設計:請假後直接更改統計表

現在需求更改:請假後可以撤銷

問題:如何將資料還原,之前直接儲存在統計表裡面,如果要還原有兩種辦法

  1.反向計算出原統計的資料

  2.建一箇中間表,用於儲存請假之後的統計資訊

實踐:我選擇了第二種,因為我們的統計資料非常複雜,第二種方式更靈活。在寫程式碼的時候,我將新的統計資料與舊的統計資料的差值儲存在中間表,這樣當我想還原的時候加上這個差值就可以了。這樣做是為了防止同一天有多條請假,如果都撤消了,就需要每個都計算。這樣一來,舊的資料被新的資料替換,後臺找出資料,前臺直接顯示就夠了。撤銷的時候再計算一次,然後就還原成舊的資料。

但是,我的組長對我說,這樣不行,你這有點面向過程的程式設計,如果中間哪個環節出錯,最後寫入到表裡面的資料就是錯的。他讓我想一下如何物件。

最後我改成統計表不改變,中間表存放新資料與舊資料的差值,通過計算讓前臺顯示出新的資料。這樣一來,我不用去動統計表,根據中間表顯示新資料,更加方便,當撤銷時,直接刪除中間表的資料就行了,這樣顯示的就還是舊的資料。