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

2019-04-14 21:21发布

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进入需要检查的程序)