ABAP开发中的画蛇添足现象

1、NUMBER_GET_NEXT取流水码的时候加锁

b607a7b8da74adfc0478b9cf41f89c21.png

好家伙,NUMBER_GET_NEXT为了高并发想尽了各种办法,这一个锁把所有的并发可能性都给堵死了。
NUMBER_RANGE_ENQUEUE调用的是函数ENQUEUE_ESNRIV,这个锁函数是在修改Number Range Object的编号范围的时候加的锁,你用到每一次取号的时候你觉着合适吗?

2、SMOD做完增强后再弄一个CMOD

有些项目出于管理的原因要求在SMOD增强后再定义一个CMOD,这个也纯粹是脱裤子放屁多此一举,为什么这么说呢?因为一个SMOD增强里面可能是好几个流程的逻辑,因为不像是BADI可以定义多个实施,所有流程的增强都得写到一个Function里面,这就决定了一个SMOD不可能统一的激活/取消激活,也就不可能放到CMOD里面统一开关。而且一个SMOD只能放到一个CMOD里面,不可以交叉。

3、报表程序先定义TYPE再定义DATA

说实话这个学院派的做法我一直不知道有啥用处,为啥要弄一个TYPE,这个倒是没有什么明显的坏处,只是我不明白为啥非要这么做。

4、报表使用END-OF-SELECTION事件

你随便抓10个喜欢用这个事件的ABAPer,问他这个事件是什么时候触发,得有9个回答是取数完就会触发。这个回答是错误的,其实这个事件最早是逻辑数据库使用,在关键字GET结束后触发END-OF-SELECTION,OPEN SQL并不会触发这个事件。后来LDB已经极少使用了,除了HR模块在不讲究性能的ABAPer手里还偶尔用一点。

如果程序没有使用LDB,则START-OF-SELECTION事件结束就会触发END-OF-SELECTION,跟START-OF-SELECTION没有区别,所以毫无使用的必要了。

5、普通报表开发中的所谓的CLASS思想

这是一个涉及政治正确的问题,大炮打蚊子也能打死蚊子,但是没有必要。这个问题让AI回答吧:

使用CLASS进行ABAP报表开发会增加代码的复杂性。CLASS是面向对象编程的基础,它包含了数据和方法的封装。虽然这种封装可以局部提高代码的可读性和可维护性,但是在ABAP报表开发中,这种复杂性是不必要的,因为报表通常只需要简单的数据处理和展示。而且,使用CLASS进行报表开发可能会增加开发时间。使用CLASS进行编程需要定义类,实例化对象,调用方法等步骤,这些步骤都需要时间。而在报表开发中,时间通常是非常重要的因素。使用更简单的编程结构,如子程序或函数,可以更快地完成报表开发。再有,使用CLASS可能会增加代码的错误率。在ABAP中,使用CLASS进行编程需要更多的编程知识和技能。如果开发者对面向对象编程的理解不够深入,可能会导致错误的使用CLASS,从而增加代码的错误率。故,在ABAP报表开发中,由于其复杂性,开发时间和错误率的原因,可能不是最佳的选择。

时间有限,先写这么多吧,下次再补充。

b8b8c67bd0168b6e6bdfc8c1caea8fa7.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值