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进行逻辑分析、注释。