什么样才是好的 ABAP 程序

作者:ABAP老白 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
什么样才是好的 ABAP 程序 - 封面图
什么样才是好的 ABAP 程序 - 封面图

(注: 本篇 的ABAP 程序和代码都是指的SAP实施的二次开发 程序 )

什么才是 好的ABAP 代码呢?

作为SAP二次开发者, 我 多年前就 思考了 这个问题。

从2004年入行,我从事ABAP开发工作接近20年了,一直是狂热的ABAP爱好者,一年365天至少有360天在思考如何写出更好的程序。在正常的工作外,读取大量标准代码,利用业余时间写了大概有两百余通用工具程序,并且在有了新思路后或者SAP推出新版本后会对这些程序不断的做更新迭代。最近几年又侧重研究程序的各种性能优化方案以及如何高效率的

实现 SAP和外部系统的的接口。

2007年开始在 老白的ABAP博客

分享ABAP的知识,开始只是考虑到了功能的实现,代码写的并不怎么样,乱七八糟的。分享了几年后突然意识到了这个问题,于是减少了分享, 开始

沉下心来有意识的提高自己代码的水平。对比后来公众号分享的代码,就可以明显看出来跟当初的博客代码不是同一个水平了。

那么什么才是好的ABAP二次开发程序?甲方对代码的要求是怎么样的?就像马斯洛需求层次理论,我觉着ABAP代码也有一个层次需求,从合格代码到高水平代码的一个层次需求。如图:

什么样才是好的 ABAP 程序 - 封面图
什么样才是好的 ABAP 程序 - 封面图

从下往上,对代码的要求是依次提高的。

对代码的最基本的要求,也就是金字塔最下面的,也是甲方对代码最看重的部分。可靠指的是程序运行的准确性,如果一个程序连准确性都不能保证,那就连上线都不能上,无需判断好坏了。高效指的是程序的性能,是一个相对的概念,其实也是最考验ABAP的一个部分,以后我会专门写一写这个问题。程序上线后就意味着切换到运维阶段,而是否易于运维也是甲方很看重的一点。所以这三部分可以说是甲方最关注的点,也是一个程序是否及格的标准。

第二层次开始就属于锦上添花,也稍微对开发者的要求提高一些了,简洁清晰的代码是一个开发者能否全局控制代码的体现, 看 起来也让人赏心悦目

,而适当的注释也可以让运维工作变的不那么麻烦。举个例子,一般的开发人员写的代码冗长拖沓,放到一个程序里面很难控制到一千多行结束,只能分成几个INCLUDE(代码很短也分成几个INCLUDE的属于教条主义,不值得学习)。而好的代码,在一般复杂度的需求下,通常很少超过1500行代码,一个单一程序就可以了,运维起来也轻松很多。

第三个层次:扩展和移植。相信大家对程序需求的不断更改不会陌生,偶尔会添加一些功能,或者更改一些功能,还有可能会把程序COPY到其他系统去用,所以就要求程序具有很好的扩展能力和移植能力。其实程序在开发的时候,能做到这一点的ABAPer已经是凤毛麟角了,一个是项目上线时间紧张来不及考虑这么多,再有就是非通用程序往往也不需要考虑的如此体贴。

最后一个层次,优美!

这个太难做到了,看这种代码是一种美的享受!小到变量名的定义,大到程序采用的整体结构,FORM的使用、CLASS的使用等等,每个地方都是如此的让人舒服,多一分则腴,少一分则瘦。偏偏又性能极高,极度的简洁和清晰,这种代码只有偏执狂才能写出来,遇到就珍惜吧。

亲爱的各位ABAPer,您的代码到了哪个层次了?

什么样才是好的 ABAP 程序 - 封面图
什么样才是好的 ABAP 程序 - 封面图
ABAP老白

关于作者:ABAP老白

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「什么样才是好的ABAP程序.md」整理生成,仅用于内部技术分享与学习交流。