在SAP领域,做开发的人很多,会ABAP的也不少,但真心懂ABAP,懂开发的人却不多。很多人从事开发行业,只是单纯为了开发而开发,为了写代码而写代码。只要能够实现功能,哪怕里面埋了很多雷挖了很多坑也无关紧要,甚至BUG百出。SAP系统最注重的是代码的质量以及运行高效率和简洁,否则一旦程序有问题,影响的并不是程序本身,而会影响到实际企业生产,甚至一定程度上影响到决策层的判断。跟SAP其他模块一样,ABAP没个大几年的累积经验是无法成为大神级别的,除非是天生天赋异禀。因此会点ABAP语法和开发并没有什么了不起,跟其他诸如.net、Java和PHP等语言一样,培训一段时间就能够上手了,但真的要做到把控需求,功能可扩展延展性就难了。也印证了一句话:会ABAP的不稀奇,懂ABAP才难求;会业务模块的不稀奇,即会业务又懂开发才万金难求!

以下列举几项,简要说说会开发和懂开发的区别:

一、更新错误问题

会开发的人:循环一百次,每次暂停一秒后再Insert表,直到成功为止,如果100次了还失败,那就忽略!所以一旦出现这样的情况,程序就会卡死;

懂开发的人:Try一下,捕获消息号和文本抛出,然后RollBack。但如果是无关紧要的表(如日志表),直接就忽略掉;

如下图神奇的代码:

二、多重逻辑判断问题

会开发的人:IF能写多少就写多少,哪怕功能里面都是重复的逻辑;

懂开发的人:采用ABAP的动态语法,将重复的功能整合在一起,区别就在动态语法判断上;

如下图代码:

三、SAP增强的写法

需要说明的是SAP增强是对系统标准功能和逻辑的一种延伸和更改,需要非常的慎重,同时最好有参数表来做开关控制,输出的消息也得有长文本做描述;

会开发的人:找到一个增强就兴奋不已,然后直接写代码,不考虑任何扩展和开关控制,也是直接Message出来消息,很难追踪;

懂开发的人:不仅做了参数控制,同时还会做事务代码或程序名的判断,至于Message则在SE91里面做消息号新建引用,方便维护和追踪!

如下图神奇的代码:(代码里还有很明显的错误,如果是修改采购订单,则会一直报错误,提示费用申请单已经存在)

四、前后逻辑不一致的问题

会开发的人:想到哪里就写到哪里,不用判断上下文的逻辑衔接;

懂开发的人:逻辑严谨性很强,做到前后数据和逻辑一致;

如下图神奇的代码:

以上程序运行的结果就变成了(金额和单价扩大一万倍):

五、SAP接口模式之争

会开发的人:认为Webservice是万能统一的,所以不管第三方系统是什么平台和语言,一律用Webservice来做接口,更要命的是所有接口都共用一个出口地址。并且认为RFC不安全不稳定;

针对接口的开发,不管是输入还是输出,一律用行类型来做多笔记录的传输。无视SAP系统警告说会降低接口的性能;

懂开发的人:除非第三方平台是上古时代开发的或者语言非常老旧,否则尽量能用RFC就用RFC,并且善用Table页签和“例外”的功能;

如下图神奇的代码:

又比如输出结构:

针对这种处理方式,SAP系统会毫不留情得给出这样的警告:

六、统一数据源问题

会开发的人:针对用户的需求,来一个写一个功能,哪怕报表逻辑都是类似的,于是写得多了难免会发现同样的数值往往在不同的地方不一致;

懂开发的人:针对用户的需求,凡是功能类似的都做成一个可重复使用的接口或函数,所有需要用到的地方都调用它取值,统一数据源;

这里没图!

七、注释问题

相信每个开发人员都会遇到看前人的代码,然后又没有任何注释的那种绝望感!

会开发的人:根本不知道啥叫注释,也重来不会注释;

懂开发的人:在非常重要的地方会加入业务需求的说明,以及每一行重要代码的设置说明;

如下图神奇的代码(谁能知道这个是什么鬼?)

八、导入模板是啥样的?

这个或许可以说是用户体验问题,但在IT眼里看来,这分明就是懂不懂开发的问题!

会开发的人:做好批导程序,就扔在那爱谁谁,一段时间之后连自己都不知道导入模板应该是啥样的,是TXT文本导入还是Excel导入,只能继续看程序;

懂开发的人:在批导的画面做一个按钮可以下载模板;

如下图(相信所有人看到下图都会一脸懵逼):

以上大概列举了我在做项目过程中所遇到的主要的问题,还有很多很多开发相关的事故,都是那些只会写代码而不懂系统逻辑的新手写的。比如基本的数据存在性校验、比如数据读取错误、基本的除数不能为0的判断、针对 FOR ALL ENTRIES IN 不做存在性检查、使用 BINARY SEARCH不做排序等,从来不懂什么叫测试。遇到这样的事故,有时候会哭笑不得,要给IT增加不少的负担。也只能感叹一句,会开发简单,懂开发难,懂业务又懂开发,简直万金难求!

【推荐】会开发和懂开发的区别相关推荐

  1. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  2. ZYNQ中裸机开发和Linux开发有什么区别?

    ZYNQ架构特征 从高层次的角度去看,Zynq架构包含PS和PL两部分以及之间的互连线.如图2.3所示.互联遵循AXI标准,AXI标准是Arm开发的片上通信技术标准. 将PS和PL集成到一起一方面能够 ...

  3. web端 刷卡器_新品推荐:WEB端免开发IC卡读卡器

    新品推荐:WEB端免开发IC卡读卡器 为了解决IC卡读写器做WEB集成开发过程中的麻烦,建和诚达推出了一款网页版专业IC卡读卡器-WEB读卡器,可免除WEB开发使用IC卡读写器的麻烦,实现免驱动.免开 ...

  4. 推荐爱码哥移动开发平台十大常用的原生UI控件

    imag.js是一种NativeScript形式的框架,它兼具 Web 应用的灵活和 Native 应用的高性能,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 Ja ...

  5. 初级开发和中级,高级的区别_如何从初级开发人员过渡到中级开发人员

    初级开发和中级,高级的区别 Getting that first developer job is the goal of many new programmers. But I've discove ...

  6. WebGIS开发和Web开发的区别

    很多对GIS开发有一定了解的朋友应该知道,WebGIS开发是GIS开发岗位招聘中需求最高的. 学习GIS开发,第一步都是先学习Web开发基础(HTML5/CSS/JS),那WebGIS开发和Web开发 ...

  7. 在外包公司从 Java 后端干到安卓开发,你醒醒吧,阿里大师推荐的这份 Java 开发必读书单

    先是工作内容的问题. 当初他应聘的岗位是后端开发,可现实却是他既要写后端,也要写客户端.本着做的多做的广可以学到更多的原则,他并不是非常在意这个问题,边做边学,渐渐地也上了手. 其次是工作量的问题. ...

  8. php前端与后端的区别,前端开发和后端开发有什么区别

    前端开发和后端开发有什么区别 这几很多小伙伴想转行web开发,但于前端端的区别却很清楚.那么前端开发人员和后端开发人员岗位要求方面有什么区别呢?下面小编给大家对比分析一下 (1)专业知识:前端 Web ...

  9. 主流html5桌面应用开发,主流HTML5开发工具推荐

    HTML5开发工具推荐 HTML5被看做是web开发者创建流行web应用的利器,增加了对视频和Canvas 2D的支持.HTML5的诞生还让人们重新审视浏览器专用多媒体插件的未来,如Adobe的Fla ...

最新文章

  1. 爱奇艺拟发行5亿美元可转换优先债券
  2. 最短Hamilton路径与旅行商问题联系与解决
  3. window.onload和3的小游戏
  4. css3--文字效果
  5. 生成某一文件夹内文件清单(批量处理)
  6. win10 ie中没有java,win10没有ie浏览器怎么处理_window10找不到ie浏览器如何解决
  7. 自学python能找到工作吗-通过自学python能找到工作吗
  8. Windows自动更新API (1)
  9. redis运维常用的server端命令
  10. gradle 区分系统_Android 学习记录_系统结构, res 目录, App 目录下的 build.gradle 文件...
  11. 360黑客攻防技术分享会
  12. -XX:PretenureSizeThreshold的默认值和作用浅析
  13. fms 连 mysql_FMS+Thinkphp+Mysql 直播源代码,开源可消耗
  14. 香蕉派 BPI-R2 作为4G多路聚合融合通信应用开发平台
  15. 274. H 指数(中)
  16. VC/PE乐见:简化基金注册程序,鼓励险资流向股权投资...
  17. 惠普ZBOOK 15V G5 安装黑苹果
  18. 上古卷轴5附魔挣钱方法
  19. cached in the local repository的解决办法
  20. 【3D可视化】3D可视化在智慧园区的应用

热门文章

  1. 鹅厂分享:AB实验只是开始?如何归因和解读才是王道!
  2. 协同推荐算法没有这么复杂,真的
  3. 在哪个瞬间你感觉自己是一个产品经理?
  4. musical.ly体验-这款国产外销的APP凭什么登上美国榜首?
  5. PMCAFF | 从200块到300万,史上最全自媒体报价单
  6. 新人与三年经验的交互设计师有多大的差距?
  7. 《统一沟通-微软-实战》-6-部署-2-中介服务器-6-语音路由-路由
  8. JSONP简单入门介绍
  9. tomcat变量环境脚本setclasspath.sh分析
  10. 十大迷你iPhone天气应用