二维码

[代码检查] ABAP代码检查的注意事项有哪些

Twilight发表于 2014-03-19 21:40zhongguomao 最后回复于 2017-12-15 10:08 [复制链接] 1619 1

ABAP代码检查关注点:标准检查工具、命名规则与代码规范、代码逻辑及语法、程序性能等
标准工具检查
SCI检查结果没有ERROR,Waring控制在每2000行代码不超过5个
SLIN检查结果没有ERROR,Waring控制在每2000行代码不超过5个
程序的格式
是否使用了ABAP编写模板?
程序头部注释内容是否填写完整?
程序变更记录是否完整,变更处是否有注释?
关键查询语句和处理逻辑是否有注释?
子程序是否都有注释,注释是否准确清晰?
代码是否用Pretty Printer格式化?
关键字是否都大写,其他小写?
单行代码是否过长?
命名规则与代码规范
程序名命名是否符合规范?
对象属性设置是否完整和正确?
全局变量、局部变量、内表、工作区命名是否符合规范?
Form子程序和参数命名是否符合规范?
数据字典对象命名是否符合规范?    包括透明表、结构、视图、索引、数据元素、域、搜索帮助、锁对象
事务名称命名是否符合规范?
消息类命名是否符合规范?
屏幕命名和Module命名是否符合规范?
函数组命名是否符合规范?
Function Module及其参数命名是否符合规范?
Enhancement/User Exit项目命名是否符合规范?
代码逻辑与语法
程序中不能使用“硬代码”?
程序的连续代码是否过长,是否按逻辑划分子例程?
一个程序中可重复使用的代码,是否用子程序封装?多个程序可重复使用的代码,是否用函数进行封装?
函数中是否包含了异常处理机制?
Symbol使用时必须确保之前的Assgin是成功的?
乘法或加法结果是否会导致溢出、除法除数是否可能为0?
是否存在未使用的程序分支或变量?
BDC的使用是否是必须,能否有标准BAPI或函数代替?
多个IF…ELSE语句是否用CASE语句代替?
同时更新多个关联数据表时,是否能保证数据更新的一致性?
READ语法是否使用二分法查找数据?Read之前是否按照关键字段排序?
程序性能
在循环中使用Select语句是否考虑性能问题?
尽可能的select具体字段而不是用select *取数
使用Inner Join抓取关联表中数据的时候,不能超过3张表的关联并且应该用小表关联大表
SELECT语句的Where条件中应避免使用NOT和<>
WHERE语句中是否将限制结果集最少的条件放前面?
尽可能避免使用Loop嵌套,无法避免的时候应该使用索引
使用FOR ALL ENTRIES in itab,那么内表必须进行检查确保它不为空
使用FOR ALL ENTRIES in itab,itab内表必须先排序再排重
使用CASE语句时,将最可能的值放在结构最顶端WHEN条件中
使用Select语句查询业务表,是否用ST05确认使用索引?

SCI检查和SLIN检查(se38进入需要检查的程序)
ABAPCHECK.jpg
回复

使用道具 举报

zhongguomao
在民营企业根本不关注代码质量。
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表