二维码

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

Twilight发表于 2014-03-19 21:40z3765295 最后回复于 2018-04-18 11:47 [复制链接] 1818 2

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
在民营企业根本不关注代码质量。
回复 支持 反对

使用道具 举报

z3765295
代码检查,其实可以自定义一些用户配置。
回复 支持 反对

使用道具 举报

快速回帖

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

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