伟德国际1946之所以程序的修改也是

制止全局变量

全局变量倒霉,那是具备开拓者的共同的认识。之所以专门还要拿出它来作为一个小节,是因为本身感觉那个标题莫过于普及且严重。也许因为当先二分一ABAP一遍开辟程序都是内容很少的表格,最常用的ALV报表类(函数)则须求其输入的数目内表必得是全局变量,初入行的开垦者平常是从全局变量写起的,而较轻巧的程序逻辑也让开垦者未有收受全局变量带来的麻烦….这种惯性使得广大开辟者在随后付出相对大型的主次时也会大方行使全局变量。而前后相继的跟随者平日未有生命力或工夫来鉴定识别全局变量对先后的熏陶,进而在修改程序时产生了预想之外的结果。其余,不加释放的全局变量也会带来品质上的担当。所以本人以为开拓者应该时时考虑是或不是足以用一些变量代替全局变量、用值传递取代援引传递,时时注意制止全局变量带来的劳动。 

专长相当

可怜是个很有用的东西,不过本身比较少见到有ABAP开垦者用它。作者来看的超越四分之二主次选择错误码可能不当标志的方法来管理错误。以自个儿的经历来看,错误码在单层的调用关系中是相比较好用的,不过在多层的、复杂的动静下,分外比错误代码要更便于管理和保安。何况特别有着较好的本人描述技能,那在程序的保险中是很有含义的。而众多错误码是可是的法力数字,独有开采者本身知道是怎么着看头,后续维护的人在阅览错误代码时,只可以认知到:这里有个错误…并不知情各样错误代码的涵义。

SAP系统作为集团的消息体系,其生命周期日常是旷日悠久的,比单个技师的在职时间要长得多。开始时代施行阶段花大力气开辟的自定义程序,会交付给公司内部或外界的运营共青团和少先队来敬服——不管怎么,一般不是前期的开采者了。即便是在运转阶段,程序的开创者与修改者也时不时不是一位。差异的开辟者,其文化底子、技艺水平、编码风格难免有所不相同,最初创立的前后相继,经过若干个盖世的开荒者的改变,大概会变得面目全非,失去可维护性。那时的次序能够说已经邻近于过逝…由此,作为程序的开发者,大家要求让本身的程序对修改有抵抗力,从而能在后人的保卫安全下活的更加久一些。

理之当然,抵抗修改的意味,并非指妨碍后人修改程序。集团的工作是形成的、大家对供给的明亮是绵绵深化的,由此程序的改造也是必要的。抵抗修改的靶子应该是:在合理的必要变动产生时,尽量让修改变得轻便,并减小修改带来的毁坏,进而让程序能经受更频仍的改动。

开源工具

开拓人士在工作中大概会必要有的类库,不常大家会本人写类库。在投入时间自个儿写类库从前,能够先物色是还是不是存在现有的美貌开源工具。因为个人的东西恐怕会因为文书档案不齐全也许人士变动变得无人能知道,也会给新人一点都不小的读书开销。而好的开源工具的生机越来越强一些,也是有更加的多同行知道该怎么用。

举例,非常多少人在写使用OLE生成Excel的次序时会进行一定的包装来管理麻烦的call
method
of语句。在此基础上,大家会产生各自的卷入情势,阅读相互的OLE程序时,就大概要花点时间来察看对方在包装习于旧贯上的微薄分裂。不过,如若能应用XLSX
Workbench
这一妙不可言的开源工具,我们就足以由此大同小异的议程生成Excel。它使用起来轻易、品质优秀,况兼(在大多气象下)能够幸免写维护起来麻烦的OLE代码。

耦合度即模块之间的关系强度。高耦合度的次第一着不慎满盘皆输,只适合于须要相当平安的程序。对于产生的ABAP程序来讲,缩小耦合度能够减少程序修改对其余一些的熏陶,是非常重大的。

原创内容,转载请证明出处

动态手艺

动态技艺是双刃剑,FieldSymbol和RTTS的选用能够使大家的次序变得可怜心灵手巧,但后果是前后相继的可读性经常不太好,况且对菜鸟来讲也断然是很难修改的。因而,作者建议尽量把它看成基础功能的实现,和程序中的硬编码、配置表相结合,可能是经过新建子类的点子来兑现效果与利益的扩展,而且附以文书档案,表达程序的扩大方法。尽大概幸免让后代直接修改大气利用动态技术的程序。

上面结合现实的ABAP开拓能力来研商自个儿对它们的主张,因为只是依据自个儿的一些经验的来写,恐怕不是系统完善的介绍。

一味的解耦职业有一点都不小希望让我们陷入为解耦而解耦的牢笼。明白程序的天任务配能够让大家更是理性地选用本领,而且使程序对修改有越来越好的适应性。

 

硬编码与配置表

那二者的法则在于将对先后的修退换为“扩充”,在不干涉或比较少干预程序代码的情景,完结功效的改动。若是程序的读者看到了程序中的枚举只怕常量,那么她就能够精晓这个东西的退换会形成哪些的影响。多个好的命名可以支持读者知道它们的功能。

ABAP
7.51中引进了枚举对象,它对于完成程序中的数据的一致性有很好的支持,相比较常量来说壮大许多。在长久以来的场所,能够考虑是或不是能够用枚举来升高可维护性。

写有意义的笺注

据他们说写程序不写注释是一种比较不佳的习于旧贯,也会有开拓规范约束大家:必须求写注释。注释当然是不可缺少的,可是在试行中,超越八分之四人的笺注水平是不太好的,往往对读书起不到如何正面功效,于是乃至催生了一种反叛的、矫枉过正的见识:好的程序没有须要注释。

前不久观察的叁个第一名的倒霉的笺注:

*处理数据
PERFORM frm_process_data.

这段代码至少犯了3个谬误。

  1. 如以小说来对待,FROM的名字就是小说的标题,大家不应有在题目中写明标题是标题。显明,FRM的前缀是对事情未有什么帮助的,它给不了我们怎样新闻。
  2. “管理数量”如同是对FORM作用的叙说,这有的内容应该献身FORM的定义处,并非调用地方。在调用地方的笺注,需求写的是:为啥这一个FORM须求在此处被调用?为啥不是调用别样一个看起来相似的FROM?
  3. 在讲解中写“处理数量”这种肤浅之辞平日产生持续什么意思,更毫不说FORM名已经是process
    data(管理数据)了。这种重新有毒无益。

如此的声明过多,大致正是众多人不喜欢注释的来头吗。好的注释须求现身在合理的职位,需求写“为啥”实际不是“做了如何”。那依旧挺考验写笔者对程序的明亮的,须要有“同理心”,预感读者的急需技巧够。

长于编辑器为自动生成的笺注模板,比如:

 伟德国际1946 1

设如果函数、恐怕类的话,还能写特地的文书档案:

伟德国际1946 2

自己认为难题的关键在于收缩耦合度、理清程序职分的分红,清晰的次第描述也很首要:

程序的描述满含命名、程序结构这种“自己描述”,也包涵程序注释、本领文书档案,以及须求文书档案。这大概是最轻便改良的三个上面。

本文链接:http://www.cnblogs.com/hhelibeb/p/7891401.html

CDS视图

SQL是让广大程序猿感觉恶感的东西。过去,由于内表的留存,我们会用简单的SQL抽取比较多的数额,然后在内表中管理它们,总计首要在应用服务器中开展。但在HANA推出之后,SAP提议了code
pushdown形式,鼓励将越多的办事付出数据库服务器来做,也为ABAP的Open
SQL提供了越来越强硬的效劳。可知日后的SQL将变得日益复杂。在纷纭的SQL上海展览中心开修改也许会耗费时间非常多、测验困难,偶然也会相当大心变成品质难点。ABAP
CDS
视图的引进可以较好的应对那一个标题。借使开始的一段时代的开拓者能够运用CDS抽象出安宁的数据模型,把经过若干SQL管理的数码作为已存在的数码来看,那么就会简化ABAP程序中的SQL复杂度,同偶然间也下降后续的开垦者和事情顾问的心智担任和交流花费。

(想一想大家是否平常说这种冗长的话:XX属性是经过关联A表和B表,使它们的商店、业务编号和平运动动序号相等,在撤废标记不等于’X’等景色下,获取它的某一性质,再到属性对应到的分配表C,获取保藏期内的笔录——看完并了解这么长一段话之后,或许调换的四头一度注意着精通XX属性毕竟什么获得,忘记了和睦在思维的别的东西。假若这种关涉逻辑在公司的需要中是平稳的竟是平日出现的,大家完全可感到它造三个“新词”,即CDS视图。基于CDS视图,之后的沟通形式得以成为:到视图ZCDSXX中,依据撤除标记不对等’X’,获取大家必要的XX属性)

术语表/词汇表

随时间和空中变化的,不止是程序语言和大家的编码技术,业务语言和普通的调换语言其实也会变动。即使在八个一定的行当领域里,总会有些大家都晓得的名词,但是在软件的生产过程中,关键客商、业务顾问、从前是客商/开辟者/业务顾问的老董等人工宫外孕,终归有着不一样的背景和经历,对一样个词的知情可能并不均等(具体的案由想必是复杂的,这里不张开斟酌)。因为大家的交换是确立在那样不相同的根底之上,所以临时就能难免产生误解和低效能的沟通。多量的交换时间,往往会浪费在澄清三个基础概念上,有时照旧因为误会产生一定的损失。这种景色在分裂的团体/部门之间的交换中国和越南社会主义共和国来越常见,也极其有剧毒。

高效能的调换应该以定义作为起初,而非以定义作为实现。为了促成这一目标,引进词汇表只怕是个有利的不二秘籍。假使要求描述、开垦文书档案、测验用例等都选择约定好、定义显然的作业词汇,客户、业务顾问、开荒时期的牵连就不会有歧义,也得以制止某个人在写代码时胡乱命名。那样一来,就能够越来越好地调控词的意义的一致性和扭转。由变化引起的有限协助困难,便通过缓慢化解。

 

从没哪个单一的方式能够保证程序的可维护性,它要求靠各方面包车型大巴奋力来推动。以上是本人的局地感想。也招待大家发布自个儿对可维护性的眼光,或许对本文的内容进行指正。

 

中间层

在炮制与其他系统接入的接口时,由于各方面包车型大巴缘故,会时有的时候遭逢对方愿意改动接口的输入输出格局也许格式的景观。那时候,不是一直提供给对方满含业务管理逻辑的接口,而是建设构造一个外层接口,把原来的接口包装起来,特意用来回应对方的修改,是多个好措施。相似的笔触也足以用在其余平时改动的地方。

相关文章