2007年9月10日 星期一

系統開發心得

開始撰寫系統從88年開始, 至今也7年有餘了.

前三年寫網站系統, 後四年寫ERP系統, 到今年有開始寫網站系統.

有寫過很小的程式, 如網站活動, 一個活動三五頁就搞定.

也寫過很大很大的跨國系統. 如ERP, 一個系統幾萬支程式跑不掉.

寫了那麼多年的程式, 也寫了很多很多的程式, 但永遠不外乎三個動作.

連資料庫, 讀資料, 再關資料庫.




至於開發系統心中也早有一套標準的SOP做拿捏.


可以跟大家分享.

1.開發系統一定要遵照資料庫設計的三個正規化

(前人累積的心血, 而且經過幾十年市場驗証. 有一定的重要性)

2.資料序號要開一個序號檔統一管理.

儘量不使用資料庫序號自動產生功能. 因為當資料表序號更改,

那得去修改資料表設定. 或一旦資料庫毁了, 要重灌資料庫,

或換資料庫由昂貴的MYSQL改為免費的MYSQL

你可能光查你的資料序號使用情形, 就花上不少時間.

3.常用的代碼檔, 如郵遞區號, 地址也要開一個代碼檔來管理.

序號檔及代碼檔是系統最常使用的功能. 最好優先產生成元件或寫成FUNCTION

4.接下來首先要從功能列開發(這是這個系統的靈魂所在, 功能列好不好可以決定這個系統的生死).

系統隨時會增減程式.所以功能列一定要做成動態產生.

5.接著才是開發系統的主程式.

6.預先完成一個系統流程.

動態功能列加入一個程式頁面.

程式頁面就自動產生 預設是系統最常使用的程式當預設值.

以ERP來說. 假定它有一萬支程式, 每支程式開發三天.

那完成那個系統需要三萬天. 當然不可能.

所以當它要開一個新的程式, 它會在功能列打活動管理.

那活動管理頁面基礎功能就已產生.

如新增, 修改, 刪除, 查詢... 差別可能就在連的TABLE不同而已 .

7.儘量不使用資料庫的外鍵值功能, 或太過依賴某家資料庫本身功能.

如資料庫內鍵值, 外鍵值功能, 想想如果要把兩個資料表做串連,

是用where條件方便, 還是去修改資料庫方便.

而且太過依賴資料庫功能, 會變成你的程式只能在單一資料庫上使用,

一旦換資料庫. 如mssql換成mysql. 或資料庫重灌.

那麻煩就大了

8.系統可以有列外處理. 但同一個動作, 產生的結果應該相同.

如會員資料設定, 就不能甲乙案同時進行, 甲案要求進行會員資料設定, 乙案特別就不用會員資料設

定, 那統計出來的會員資料是可以參考的, 還是真的當作參考就好.

9.程式可以擴充. 但除非必要, 儘量不要短時間內後案推翻前案. 如果太過頻繁,

那我會想那個PM大概是有問題的. 想想如果一個公司上半年要經營網站, 下半年

要經營零售業, 隔年去開始做國際貿易, 你會說那家公司有創意. 還是認為那家公司快倒了.

沒有留言: