1 不要異地釋放內存,釋放內存請用FreeAndNil。
僞代碼:
procedure TForm1.btn2Click(Sender: TObject);
var
p: Pointer;
begin
//FList存放了很多的同類型的指針
p := FList[0];
DoSomething(p); //我指的錯誤是不能在DoSomeThing中進行釋放內存的行爲,否則下面下面的FreeAndNil就會出錯。
FreeAndNil(P);
end;
2. try finally end; 申請內存的需要在try之外,這主要是防止申請內存失敗,導致釋放無效指針。
3. 無效代碼(特別是是指Coder爲了Debug方便定義的一些常量、特殊路徑),爲了更好的管理這些無效代碼,最好用編譯條件管理。
4.儘量減少硬編碼,主要是減少筆誤,方便維護,增強閱讀性
5.存儲路徑請用函數,而不是自己隨意填一個路徑,因爲有些目錄,桌面程序是沒有訪問權限的.
6.Delphi特殊結構裏面最好使用定長的數據類型,所以,請不要使用string,可以用字符數組或者PChar類型代替。
7.最小鎖原則,在設計鎖的時候,一定要想清楚這個問題,否則,後患無窮!
8 局部變量一定要初始化,因爲這個工作你不做,變量就處於一個隨機指向的狀態,有時候就會出現一些莫名奇妙的問題。
9 申請的內存空間一定要初始化。FillChar,ZeroMemory。
10 不要吝嗇空格、空行、begin end,這些可以增強代碼的可閱讀性。
11 多次使用的字符串、數字,強烈定義成常量,節省手工成本、維護成本、減少筆誤造成的錯誤
12 使用Code Template定義一些常用的註釋格式、字符串的輸入,定製自己的Delphi。
13 使用To Do List進行邏輯分析、註釋。