SAP_代码评审

从大的方面考虑,有5个要点:
1、标准工具检查SLIN、SCI;
2、程序的格式;
3、命名规则与代码规范;
4、代码逻辑与语法;
5、程序性能。
1 标准代码检查工具SLIN、SCI
1.1 SLIN检查结果没有ERROR,WARNING控制在每2000行代码5个以内;
1.2 SCI检查结果没有ERROR,WARNING控制在每2000行代码5个以内;
2 程序的格式
2.1 是否使用了ABAP编写模版;
2.2 程序头部注释内容是否完整;
2.3 程序变更记录是否完整,变更处是否有注释;
2.4 关键查询语句和处理逻辑是否有注释;
2.5 子程序是否有注释,注释是否准确清晰;
2.6 代码是否使用PRETTY PRINTER格式化;
2.7 关键字是否大写,其他小写;
2.8 单行代码是否过长;
3 程序命名规则和代码规范
3.1 程序命名是否符合规范;
3.2 对象属性设置是否完整和正确;
3.3 全局变量、局部变量、内表、工作区命名是否符合规范;
3.4 FORM子程序和参数命名是否符合规范;
3.5 数据字典对象命名是否符合规范,包括透明表、结构、视图、索引、数据元素、域、搜索帮助、锁对象;
3.6 事务代码命名是否符合规范;
3.7 消息命名是否符合规范;
3.8 屏幕、逻辑流命名是否符合规范;
3.9 函数组命名是否符合规范;
3.10 函数及其参数命名是否符合规范;
3.11 ENHANCEMENT/USER-EXIT项目命名是否符合规范。
4 代码逻辑与语法
4.1 程序中不能使用“硬代码”;
4.2 程序的连续代码是否过长,是否按逻辑划分子程序;
4.3 程序中可重复使用的代码,是否用子程序封装,不同程序中可重复使用的代码,是否用函数封装;
4.4 函数中是否包含了异常处理机制;
4.5 SYMBOL指针使用时确保之前的ASSIGN是成功的;
4.6 相乘相加相减是否导致溢出,除数是否可能为0;
4.7 程序中是否存在未使用的分支或者变量;
4.8 BDC的使用是否是必须的,是否有标准的BAPI或者函数代替;
4.9 多个IF…ELSE语句是否使用CASE语句代替;
4.10 同时更新多个关联数据表时,是否能保证数据更新的一致性。
5 程序性能
5.1 在循环中使用SELECT语句是否考虑性能问题;
5.2 READ语句是否使用二分法查找数据,READ使用之前是否按关键字排序;
5.3 尽可能的SELECT具体字段而不是用SELECT *取数;
5.4 使用INNER JOIN抓取关联表中数据的时候,不能超过三张表的关联,并且应该用小表关联大表;
5.5 SELECT语句的WHERE条件中应该避免使用<>和NOT;
5.6 WHERE语句中是否将限制结果集最少的条件放前面;
5.7 尽可能避免使用LOOP嵌套,无法避免的应该使用索引;
5.8 使用FOR ALL ENTRIES IN,内表不能为空;
5.9 使用FOR ALL ENTRIES IN,内表必须先排序再排重;
510 使用CASE语句时,将最可能的值放在结构最顶端WHEN条件中;
5.11 使用SELECT语句查询业务表,是否用ST05确认使用索引;
5.12 用SORT BY代替ORDER BY;
5.13 SELECT/SORT…BY/DELETE ADJACENT DUPLICATE FROM…COMPARING代替SELECT DISTINCT…;
5.14 内表求和,能够在SQL层次上实现就用SQL实现,不能实现的,在内表循环中用AT END OF之类的进行求和,COLLECT直接求和在数据量很大时,效率会比较低。

猜你喜欢

转载自blog.csdn.net/linmingqiang506/article/details/80487426