版:1000
编写:邱建伟
文件历史表
版
作者
说明
完成日期
草稿
Jianweiqiu
DELPHI编码规范
200479
前言
该规范参考网资料结合验起草程序设计编码规范草稿验限难免许足方请指正
目录
1 概述 5
11 目 5
12 范围 5
13 术语 5
14 容 5
2 总体说明 6
3 外部文件组织 7
31 文件夹文件命名 7
32 文件理 7
33 文件夹文件分布 7
34 文件修改踪 7
4 般代码书写规范 8
41 源代码格式 8
411 缩进 8
412 边距 8
42 Object Pascal语句书写规范法 8
421 beginend 语句 8
422 括号 8
423 保留字关键字 8
424 变量 8
425 类型 9
426 语句 9
427 函数(例程) 9
428 结构化异常处理 10
429 语句构造 10
5 正确性性 11
51 正确性 11
52 性 11
521 容错处理 11
522 调试测试 11
523 版封存修改 11
6 易理解性 12
61 命名规范 12
62 注解规范 12
7 效率性 13
71 程序运行时间 13
8 移植性重性 14
9 附录 15
1 概述
11 目
现代软件合作结晶程序设计风格否统直接关系软件项目读性维护性合作难易程度软件编程程中风格统利整项目利开展程序员间交流果程序员惯风格编写程序种异程序风格势必降低程序读性软件测试交流重软件维护产生极利影响
文档Delphi开发员提供源代码书写标准程序文件命名标准编程时致格式遵循样编程员编写代码够理解
12 范围
文档适程序设计编码程规范规定编码规范性求编程员具体语言时应时遵循具体语言编码标准
13 术语
14 容
2 总体说明
l 贯彻软件设计中模块化信息隐藏等原努力提高程序正确性理解性移植性重性程序运行效率性
l 结合结构化程序设计关方法原采面象技术方法
3 外部文件组织
31 文件夹文件命名
l 根系统设计规定结构建立相应文件夹根需建立子文件夹
l 文件夹文件名称应够表达意义必须英文命名
l 确保台兼容性文件夹文件名称必须全部写字母
l 单元文件模块名字项目中单元名字相
32 文件理
l 工程文件集中应该文件集根文件夹中设置readmetxt文件模块文件进行说明
33 文件夹文件分布
见附件
4 般代码书写规范
41 源代码格式
411 缩进
l 缩进级间两空格
l 源代码中放置制表符
制表符宽度着设置代码理实程序(印文档版控制等)
通 Tools|Editor 菜单 Editor Porperty话框 Souce Option 页
选中 Use Tab Character Optional Fill 复选框样制表符会保存
412 边距
l 边距设置80字符
源代码般会写单词超边距规较灵活
长度超行语句应逗号运算符换行
换行应缩进两字符
通 Tools|Editor 菜单 Editor Porperty话框 Display 页设置Right margin
42 Object Pascal语句书写规范法
421 beginend 语句
l begin end语句必须单独占行
for i0 to 10 do begin 错 begin for 行
for i0 to 10 do begin 外行中begin
begin
end
422 括号
l 必须易引起误解错误方括号语句中必括号
423 保留字关键字
l Object Pascal 语言保留字关键字总完全写
424 变量
4241 局部变量
l 局部变量程部果需话应程入口处立初始化变量
局部AnsiString类型变量动初始化空字符串
局部接口dispinterface类型变量动初始化nil
局部VariantOleVariant类型变量动初始化Unassigned
4242 全局变量
l 般鼓励全局变量
l 时候需应全局变量限制需环境中
例全局变量单元实现部分全局
全局数果许单元应移动公单元里象
注意全局变量动进行零初始化全局变量初始化诸0nilUnassigned等空值
零初始化全局变量EXE文件中占空间零初始化数保存虚拟数段中虚拟数段应程序启动时分配存非零初始化全局数EXE文件中占空间
425 类型
4251 浮点类型
l 鼓励Real类型老Pascal代码兼容保留
通常情况浮点数应Double
Double处理器优化IEEE定义标准数格式
需Double提供范围更时ExtendExtendintel专类型Java支持
浮点变量物理字节数重时(语言编写DLL)应Single
4252 VariantOleVariant
l 般建议VariantOleVariant
数类型运行期知道时(常常COM数库应程序中)两类型编程必进行诸动化ActiveX控件COM编程时应OleVariant非COM编程应VariantVariant够效保存Delphi原生字符串OleVariant字符串转换OLE字符串(WideChar字符串)没引计数功
426 语句
4261 ifcase
l 避免出现许if语句 case 语句代果5级 if 语句请改更清楚方法
l if 语句中余括号
4262 whileforrepreat
l 循环嵌套超五级深度
l 建议Exit程退出while循环
果需话应循环条件退出循环while循环进行初始化代码应位while入口前关语句隔开业务辅助工作应循环立进行
l 果循环次数确定应for语句代while repeat语句
4263 with
l with语句应心
避免度with语句尤with语句中象记录
例:
with Record1Record2 do
情况容易迷惑编程员导致调试困难
427 函数(例程)
4271 形参
l 类型形参应起:
procedure Foo(Param1Param2Param3ImtegerParam4string)
4272 常量参数
l 记录数组短字符串接口类型参数程修改应形参标 const
样编译器效方式生成代码保证传递参数变果类型参数希程修改标 const
效率没影响程调者带更信息
428 结构化异常处理
4281 try…finally法
4282 try…except法
4283 try…except…else法
l 鼓励带else子句tryexcept阻塞异常包括没准备处理异常
43 语句构造
431 结构化求
l 量采三种基控制结构编写程序
l 循环嵌套超五级深度
l 量避免嵌套if语句种情形应if语句判断种
l 禁止出现两条等价支路
l 般应禁止GOTO语句
l CASE 实现路分支
l 避免循环引出出口
l 函数出口
l 避免必分支
l 行中写语句
l 括号清晰表达出逻辑表达式算术表达式运算次序
l 利添加空格清晰表示语句成分
432 逻辑求
l 量条件赋值语句
l 轻易条件分支换逻辑表达式
l 避免测试条件非常
l 避免复杂条件测试
较浮点数相等: 100 * 01 10
5 正确性性
51 正确性
l 程序必须首先满足正确性求程序必须满足需求规格说明关求精心选择合法测试例应该出符合规格说明求结果
l 显式说明切变量变量前必须进行初始化应该该变量作范围起始处进行初始化
l 数说明次序应规范化先常量说明简单类型说明然构造类型说明
l 变量出现说明语句中时变量名应字母序排序便查找
l 函数(程)中局部变量应遵循变量命名约定时变量取名应合理
l 量减少全局变量必须时候全局变量量保证段文范围全局变量果算单元全局数应该放置公单元中然单元
52 性
521 容错处理
l 程序环境状态发生关系时必须动处理发生意外事件
文件否逻辑锁定印机否联机等
522 调试测试
l 程序编写完进行代码检查
l 改错误时产生新错误修改前首先考虑程序影响
l 程序编写完成应进行必单元测试
523 版封存修改
l 版封存修改定老语句注释符号(* * )封闭删修改文件函数修改记录中加记录
6 易理解性
61 命名规范
请附件
62 注解规范
7 效率性
71 程序运行时间
l 写程序前先简化算术逻辑表达式
l 仔细研究嵌套循环量语句层外移
l 量避免维数组
l 量避免复杂表
l 执行时间短算术运算
l 表达式中混合数类型
l 量整数运算布尔表达式
l 非常必时汇编语言
l ifthenelse语句中常发生行应放then子句中发生性较行应放else子句中
l 果if语句中条件需测试条件应计算强度少序左右排列样做编译器编译代码时获布尔估算逻辑捷径代码获佳优化
注:果条件1快条件2条件2快条件3if语句中排列应: if 条件1 and 条件2 and 条件3 then
l 形参序考虑寄存器调规常参数应作第参数
8 移植性重性
l 量标准库函数公函数
l 重复完成相独立功算法代码应抽象公控件类
l 公控件类应考虑面象思想减少外界联系考虑独立性封装性
l 公控件类应建立模板
9 附录
10 文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档