寫程式的原則...
1.一定要testing...每一行程式都要testing
在除錯工具的 [工具]->[涵蓋日誌] 給它一個檔名,
然後在 VFP 的 [工具] -> [範圍描述檔案] 就可以知道那些沒執行過了.
2.一定要善用 write one exectution anyplace的精神
同邏輯的程式,能合併就合併,差異處用Flag來處理
3.Debug要發揮想像力....
4.在做版本管理時,在簽入時,可以加上注解,即可得知此版改了什麼
5.請先了解程式架構再下手寫程式,不要破壞原來的程式架構
6.胸有成竹,才下手寫程式,不要想到那,寫到那
7.細心的注意每一個小細節,不要只注意自己認為重要的點,程式不只要能用,而是要好用!
8.少用 messagebox() , 除非你要挑選是或否時才用.
否則一定要用thisform.mess(),以符合程式架構
9.在寫程式時,要時時想到,如果資料量很大時,程式之效能是否
會減低,甚至會無法運行!
10.請徹底了解何種狀況下VFP本地的Table會被佔用,而產生檔案被
使用的狀況。
11.精讀SQL語法!了解如何寫SQL語法,效率才會高,了解Index及SQL
執行的底層做法,以提昇SQL執行效率。
12.FeederModify Form 啟動時速度很慢, 要有習慣意識到程式剛起動時的速度, 不要讓
太多資料在啟動時抓進來, 以免影響速度.
13.沒有針對畫面上的細節作測試的習慣, 像是畫面放大時, 相關元件沒跟著位移或放大, 對
自己寫的程式, 沒有徹底破壞的決心及習慣.
14.一個 Column 下面除了有 Header 物件外, 不要有二個以上的其他物件
15.注意FORM中排板及設計原理的合理性!!在資料量大時,要考慮User使用操作
上的便利性
曾犯的錯誤~~
設定保養及檢修週期功能, 要有查詢某個料架的功能, 否則愈來愈多資料時, 很難設定.
16.beforeopentable 這個 method , 要記得加入 thisformset.setstatus , 否則日期的格式跟其他 form 不同.
17.不合理的資料一定不可讓User輸入, 一定要防, Garbage in garbage out
18.系統內介面定義之文字要統一,不可讓User混淆
我曾犯過的錯誤~~
名詞不統一, 像是 menu 叫作 [料架維護及使用標準設計] , 但進入後的標題卻是 [ 設定維
修及保養週期 ] , 然後內文卻是 [保養標準週期] 及 [檢查標準週期 ] , 同一個人寫的, 卻有
三種文字表述, 要如何看得懂.
19.介面的一切資訊,必須依合理性,自動更新,以便利User操作
曾犯過的錯誤~~
料槽數 3 與明細應該產生互動關係, 當明細為 3 筆時, 料槽數應該自動為 3 , 這裡沒有連動
料槽數沒變,也可以存檔,會形成問題!
20.要加強測試,不放過任何一種可能
21.每一個Form要設定User輸入的順序,方便User輸入資料
22.寫程式時,要寫的乾淨,不要留一些沒有用,被mark掉的東東,就算之前有bug的程式被mark掉,也要
註明清楚!
23.在使用View時,View的生命週期盡量與Method同步,如果一個Method要呼叫另一個Method,而這另一
個Method用到同一個view的資料,要傳入View name!
要傳入View Name
24. a.要插程式前,先了解程式Structure
b.再把要插入的程式邏輯順(整理)一次
c.再把有相關的邏輯包裝為Method
需要包裝為Method的地方...
c.1:if/then/else, Do Case , Loop
c.2:條件判斷式
d.再檢查包裝的合理性
以上這些方法...在寫的時候不一定能達成,因為需要經驗去體會
(日本人把這樣的知識稱為:暗未知),加油!一定可以達成!
在系統愈來愈大之後,物件導向化的程式設計理念就要愈強,不然程式
將會走向失控狀態!
25.寫程式時,要採用預防性寫法!(這是我自己的體會),在寫某些程式碼A時,
可能會因為其他程式碼B邏輯上的錯誤,使得這些程式碼A出現error,所以
就會很肯定不會有這樣的狀況發生,也要在程式碼A中盡量加上防錯機制
EX: IF USED('TV_VIEWNAME')
SELECT TV_VIEWNAME
USE IN TV_VIEWNAME
ENDIF
26.寫程式時,不要寫死...可以拉出參數的,就拉出參數...
27.Method的介面一定要定義好,要把可能的傳入參數及回傳參數設想週全,不然等到開始寫了,程式中開始用
到這個Method時,要改就不容易了,因為只要是參數改了,所有呼叫他的地方,都要改,所以要特別注意!