云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

游戏服务器_云主机如何租用_最新活动

小七 141 0

在我看来——是的,大数据核心,意义重大。

倒带。让我们从头开始。

在得到关于M.Fowler的新版"重构"的信息之后(https://martinfowler.com/articles/201803-refactoring-2nd-ed.html)我开始思考ABAP世界中的重构过程,以及在几乎永无止境的代码制作过程中,安娜尔返利机器人,我会选择哪种技术作为赢家更干净,更易读。

我回到了时间,当我进入神秘的,有点封闭和无法到达的ABAP环境。我是一名Java程序员,有幸在一家拥有SAP系统的公司工作。在Java中,我主要编写Swing应用程序。我觉得把我的变量命名为"mainWindowHeader"、"currentTime"或"username"很好。我在读别人的代码,我在理解它。

然后,当我进入ABAP世界时,我突然感觉自己被空降到了一个国家,那里的人用英语说的话很少,但他们其余的单词很难理解,更不用说发音了。我的认知冲击很大——从面向对象的Java构造到report's hell,大数据汇总,它包含了大量的include、函数模块、子例程池、全局变量(还有许多伪面向对象,但这是另一个故事的主题)。在我的工作中首先要解决的问题是支持任务和一些报告/功能模块中的更正。

我所看到的每一段代码的共同点是变量"chg\u kstsn\u uzeit"、"howd\u maknr"、"cruname"、"br\u pernr"、"kur\u btrtl"、"old\u belnr"、"l\u dbblg"-这对你有意义吗?

如果是–很好,您是SAP模块的经验丰富的开发人员。但是,如果你不再考虑你在SAP的经历,你真的能说出最好的名字吗?还有——最重要的是——为什么还有那么多ABAP代码是用变量写的,比如我的猫在键盘上玩得很开心时输入的?

[来源:https://ghoscher.com/2011/03/]

第一个答案-也许作者和我一样,一个年轻的程序员曾经看到过很多这样的代码,认为在这个非常奇怪的ABAP世界里,这些东西就是这样工作的。是的,我已经习惯了这样的编码风格,我开始用同样的方式来做,我花了一段时间才看到和理解其中的区别。当然,我读了很多书,但作为一个新手,我专注于挖掘语言的精髓,而不是风格和可读性。也许我以前认为,那些复杂的代码是如此的好,先进和专业,但我今天却羞于承认…[沉默的面纱]

回到我们的BRTFL,ADASE,XCDER和其他-他们大多来自数据字典,我们有大量的数据库表与所有这些5个字母长的列名。然后在结构和其他DDIC工件中使用它们,最后以各种风格的代码结束-前缀,作为变量名的一部分等等。可以吗?

在我看来——不,这是一件非常痛苦的事情。你用另一种你(现在)能理解的"语言"来编码你的代码变量?哪一个不需要任何,大数据趋势,甚至最小的心理"解码"的变量?哪一个更容易被开发人员阅读?

当你在重构中走得更远,添加更多有意义的常量和小改动时……

…你可以把它当作一种自然语言来阅读。

使用有意义的、意图揭示的、可发音的和可搜索的名称,而不需要心理映射和快捷方式。我不会涉及这些技术,我是有意这么做的——如果你没有读过任何关于干净代码的书,那就去读一本吧——我真的很喜欢罗伯特C.马丁的《干净代码》。我把这些关于重构和编码技术的书当作指南,把它们放在身边,当我有疑问的时候经常使用它们。从我个人的角度来看,它在几年前就起作用了,但现在不适合了。为什么?

我会及时回来的。当我开始我的IT之旅时,有很多人,我认识的大多数ababers都在同一家公司工作,一年又一年地在他们熟悉的模块中开发代码。这实际上是一项集中化的工作;代码常常年复一年地在同一个人手里。但情况已经发生了变化——工作越来越多,要完成的人仍然不多。外包开始扮演重要角色。我们更经常地更换工作,公司希望拥有所有这些闪亮的、尖端的功能,唯一不变的事情就是改变。我们经常切换上下文。即使在我的"支持"职业生涯中,全民淘客,我是专门从事SAP HCM的,我也在修复MM、CO、FI、TM、PS和其他一些我现在想不起来的代码。当然,还有整个HR系列——PA、PM、OM、PD、PT、PY等和SAP网关。我不必是某个特定模块的专家,就可以在顾问的帮助下完成我的工作,当有人要求我更改某个报告中的ALV标题或检查某个成本区域的算法是否正确时,不清楚的名称确实没有帮助。

下一件事与我们的记忆有关-即使我是在我的模块很好,现在我可以被分配到其他任务,真的忘记了一些东西。两年后我不记得那是什么了。更不用说SAP表可能非常庞大,而且记住所有34个字段似乎很奇怪。乘以模块中的表数,就会得到大量的字段。