SAP官方发布的ABAP编程规范-阿里云开发者社区

开发者社区> jerrywangsap> 正文

SAP官方发布的ABAP编程规范

简介: 最近有朋友在公众号后台给我留言,“Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西”?
+关注继续查看

最近有朋友在公众号后台给我留言,“Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西”?


image.png


其实Jerry在刚开始写这个公众号的时候,是写过很多ABAP的技术文章:


Jerry的ABAP, Java和JavaScript乱炖


ABAP开发人员未来应该学些什么


Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现


Jerry的ABAP原创技术文章合集


300行ABAP代码实现一个最简单的区块链原型


使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数


在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务


ABAP vs Java, 蛙泳 vs 自由泳


聊聊C语言和ABAP


动手使用ABAP Channel开发一些小工具,提升日常工作效率


我用ABAP做过的那些无聊的事情


不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧


使用Visual Studio Code编写和激活ABAP代码


你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧


在SAP云平台ABAP编程环境上编写第一段ABAP程序


因为Jerry最近的工作,需要使用ABAP编程的场景不多,所以近期这方面的文章少了点。


在Jerry之前的文章 写在Github被微软收购之际 - Github的那些另类用法 曾经提到,SAP在Github上也有很多开源项目:


https://github.com/sap


截至到今天(2019年7月26日),已经有399个仓库了。


image.png


Jerry年初去成都天府软件园一家SAP partners公司拜访时,这家公司的技术主管曾经问过我,有没有推荐的ABAP编程规范。Jerry当时想了想,回答说,虽然SAP研究院内部确有严格清晰写成文档,多达七八十页的ABAP编程规则,但Jerry不确定这些编程规则是否能直接发给非SAP员工。


今天Jerry觉得这个问题我已经有完美的答案了:我们来聊聊上述SAP开源的Github仓库其中之一,包含了SAP官方推荐的ABAP编程规范:


https://github.com/SAP/styleguides


image.png


cheat-sheet文件夹里主要包含了CleanABAPCheatSheet和CleanABAPTheGoldenRules两个文件,前者包含了SAP认为要写出Clean的ABAP代码,需要遵循的准则和尽量避免的误区。


image.png


而CleanABAPTheGoldenRules这个文件,包含的就是SAP推荐的关于ABAP编程方方面面的最佳准则:


image.png


而Sub-sections文件夹里包含了一些话题的深入阐述:


image.png


这些话题每一个都值得用一篇文章展开聊,Jerry先挖个坑在这里,有机会再填:


Avoid Encodings


SAP这个github文件给出的推荐是,建议在给方法实现里的变量名取名时,避免使用前缀。下图红色高亮的代码是推荐的做法,而黑色的代码是应该避免的代码。


image.png


这很有趣,因为Jerry在SAP内部做ABAP开发,遵循的原则恰恰就是第二种做法。


作者也深知这个建议和SAP官网help.sap.com上定义的ABAP编程规范里变量命名规范有相矛盾的地方,但还是坚持认为变量名不要前缀,是更加符合现代编程规范的做法,并且让变量有更好的可读性。


image.png


Jerry的个人意见是,对于SAP partners的开发团队来说,不必纠结到底应该遵循help.sap.com上的变量命名规范,还是应该按照本文介绍的SAP github上介绍的规范来——更重要的是,整个团队内部达成一致,选择一套坚决执行。


Enumerations.md


在ABAP里使用枚举类型的几种方式:


image.png


Exceptions


ABAP异常处理的最佳实践。


Function Groups vs. Classes


给了为什么坚决推荐不再使用function group / function module,而是鼓励大家投入到面向对象编程怀抱的原因。


Modern ABAP Language Elements


搜集了一些现代的ABAP语法和ABAP关键字的用法。


Upper vs. Lower Case


ABAP 语言的大小写规范,经常会让很多刚刚从其他编程语言转过来的程序员觉得摸不着头脑,Jerry当年刚刚从C++编程转到ABAP编程也是如此。


这个子话题给出了推荐的大小写使用场景。


因为Jerry的日常工作几乎不会用到ABAP,所以我也没有时间就这些话题深入展开,大家可以好好利用这个Github仓库,让自己的团队都能开发一套clean的ABAP代码出来,感谢阅读。


更多阅读


Jerry的ABAP, Java和JavaScript乱炖


ABAP开发人员未来应该学些什么


Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现


Jerry的ABAP原创技术文章合集


300行ABAP代码实现一个最简单的区块链原型


使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数


在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务


ABAP vs Java, 蛙泳 vs 自由泳


聊聊C语言和ABAP


动手使用ABAP Channel开发一些小工具,提升日常工作效率


我用ABAP做过的那些无聊的事情


不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧


使用Visual Studio Code编写和激活ABAP代码


你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧


在SAP云平台ABAP编程环境上编写第一段ABAP程序


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
飞天加速计划·高校学生在家实践
关于使用小白对阿里云ECS的使用
33 0
【Elastic Engineering】Elasticsearch 简介
Elasticsearch 是一个非常强大的搜索引擎。
8 0
安卓平板体验Java开发,还能白嫖一年阿里无影云!真香
阿里无影云早有耳闻,前两天看朋友发体验照片,可能是程序员天生爱折腾的特性又发挥作用了,自己也没能忍住,赶快下载体验了一把,没想到“很香”。我体验了浏览器端、Windows 客户端和安卓平板端,下面就来聊聊使用的过程和使用体验。内含一年免费无影云的白嫖方法,千万别错过哦~
23 0
飞天加速计划-服务器使用经历
自我介绍,阿里云服务器使用体验,总结收获,个人作品链接。
15 0
用阿里云飞天计划提供的CES服务器为高中生活搭建“故事簿”网页
一名刚踏入大学的大一本科生利用阿里云提供的CES服务器为高中“故事簿”搭建网页
16 0
阿里云初体验
web开发打包部署到linux服务器
18 0
Ecs使用体验
通过几天都使用,给我最大的感觉就是,极大的方便了自己,节省了大量的等待时间,我自己之前使用的都是虚拟机,启动是非常的慢,还大量占用电脑内存,可以说是很麻烦,通过使用阿里服务器,这样的感觉没有了,需要的时候直接使用,不需要漫长的等待,因为云服务器一直是在运行着。
8 0
我的ECS使用体验
在阿里云ECS服务器使用中学习和收获了很多。
7 0
我的历程分享
简述我的学习生涯
10 0
+关注
2628
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载