ps:这个应该不是最终的,可能还需要一次的调整.
书名:
Delphi Pitfalls
篇目:
第一部分:开发环境
第一章.集成开发环境
item1: 功欲善先利其器——配置Delphi开发环境
item2: 审慎对待Class Complete功能
item3: 使用ToDo列表代替书签
item4: 不要将特定项目的配置设置成缺省配置
item5: 将项目中所使用到的所有Delphi源文件文件包含入项目
第二章.编译器
item1: 请注意源代码最终是否被链接器链接入程序文件
item2: 尽量使用build all方式编译项目
item3: 清楚了解Delphi编译器选项
item4: 不要忽视Delphi编译器给你的权力
item5: 请不要在Tools/Environment Options/Library选项中包含自己的程序文件路径
第三章.调试器
item1: 在调试时有选择的关闭优化器?
item2: 尽量不要在项目选项的Conditionals处设置预编译条件
item3: Debug Dcu的使用
item4: 手工复位含有表达式的断点
第二部分:语言基础元素
第一章.基础类型
item1L Integer类型和Cardinal类型的区别
item2: 使用for循环时需要注意的问题
item3: 区别不同的bool类型
item4: 使用浮点数
item5: 用单元名来约束对枚举成员的引用
item6: 在使用记录变量之前一定要对其进行初始化
item7: 将函数的参数标识为const类型
item8: 尽量不使用with语句
第二章.字符串间的互操作性
item1: 空字符串与nil
item2: 使用SetLength函数分配字符串的注意事项
item3: 不同字符串类型之间的转型
item4: 以数组代替字符串返回
item5: 操作字符串的rtl函数
专题 : 字符串与字符指针的本质区别
第三章.数组
item1: 以初始化表达式取代通过赋植对数组进行初始化
item2: 以Low和High函数来取数组的最高维和最低维
item3: 动态数组的使用
item4: C风格的指针数组
第四章.单元
item1: 务必在项目当中包含SysUtils.pas单元
item2: 注意单元的包含顺序
item3: 单元的初始化和结束化问题
item4: 避免项目所引用单元间的名称污染
第三部分:语言高级元素
第一章.类、对象与接口
item1: 在适当的时候TObject.NewInstance方法创建对象
item2: 在子类中完全覆盖基类的方法
item3: 类引用的使用
item4: 对象类型引制转换与as关键字
item5: 请在编写构造函数时调用基类的构造函数
item6: 注意构造函数和析构函数的调用顺序
item7: 将基类的构造函数设置为virtual
item8: 不要创建名称非Create的构造函数
item9: 重载AfterConstruction方法,以在构造阶段调用虚方法
item10: Delphi接口的自维护引用计数问题
item11: 在面向对象程序设计当中使用接口
专题 : 面向接口设计的驳论
第二章.异常
item1: 在编码时有选择的拦截异常
item2: 小心在构造函数中抛出的异常
item3: 不要在析构函数当中抛出异常
item4: 为基类定义一个异常类型
item5: 尽量不要覆盖系统的异常函数地址
item6: 不要在动态链接库导出函数中抛出异常
item7: 尽量不要使用ExceptObject变量
item8: 保持异常结构的稳定
专题 : Delphi异常与SEH异常
第三章.其它高级语言元素
item1: 使用无类型参数
item2: 使用方法数组
item3: 使用联合记录
第四部分:VCL Framework Classes
第一章.TForm&TApplication
item1: 注意自定义消息的消息号。
item2: 记得给自定义的消息方法调用inhreited关键字
item3: 不要使用基于Form单元中所定义的Form变量
item4: 不要为exe程序的Application.Handle赋值
item5: 如果程序需要同步等待那请调用TApplication.ProcessMessages方法而不是WinApi
专题 : VCL Framework Classes的基础架构
第五部分:Rtl Functions
第一章.内存的分配与使用
item 1: 有选择的使用New/Dispose函数为记录指针分配内存
item 2: 尽量避免直接使用GetMem和FreeMem函数分配释放内存
item 3: 请不要重新定义内存管理器
item 4: 为内存用光的时候做准备
item 5: 遵守谁分配谁释放的内存使用原则
item 6: FreeMem函数的Size参数
专题 : Delphi
第二章.文件I/O
item 1: 使用File族函数代替pascal file函数
item 2: File open mode枚举类型的使用
item 3: 调用FileCreate方法时请注意
item 4: FindFirst方法的使用
第六部分:常用操作系统元素封装
第一章.线程
item 1: Thread类的重入问题
item 2: 不要直接使用Winapi来创建和结束线程
item 3: TEvent对象的问题
item 4: 线程中的未处理异常
专题 : Win32线程编程常见方式和问题小览
第二章.动态链接库
item 1: 动态链接库导出对象
item 2: 在编写动态链接库的时候将IsMultiThread全局变量的值设为True
item 3: 在动态链接器的代码中抛出异常
item 4: 在动态链接库的代码中调用COM组件
item 5: 不要在程序当多次装入一个动态链接库
item 6: 使用SafeLoadLibrary函数动态装入动态链接库
附加部分:编程实践
终章.改良你的程序设计实践
item1: 拥有自己的编程风格
item2: 使用XP的实践改良程序设计过程
item3: 善用工具发现/解决问题(delphi的desktop设置)
item4: 使用Delphi开发大中型项目