首页
学习
活动
专区
圈层
工具
发布

ABAP 和《道德经》

以下文章来源于ERP大师,作者一个Freelancer

老子《道德经》里的「上善若水」这四个字,可能是我见过最适合拿来理解 ABAP 这门语言转型的一句话。

每次和项目里的兄弟们聊 ABAP Cloud,我都会想起一个很有意思的反应。

很多老 ABAP 开发一听到 Cloud,第一感觉不是兴奋,是别扭。

别扭在哪?

以前在 On-Prem 的世界里,ABAP 很像一把老兵器,厚,重,趁手。

系统在自己机房里,代码在自己手里,想增强就增强,想贴着标准对象写,也不是不行。

很多问题,靠经验、靠熟悉度、靠对系统内部结构的直觉,真能很快解决。

结果一到 Cloud,画风突然变了。

你不能随便碰那些没有 release 的对象了,不能再理所当然地把自定义逻辑深深埋进标准代码里了,开发方式开始强调 released API、clean core、RAP、side-by-side,连语言版本和可见边界都被重新定义了一遍。

ABAP 还是那个 ABAP,但你会明显感觉到,它不再鼓励你做一个四处打洞的人了。

SAP 官方自己也说得很明确,ABAP Cloud 不是一个单独产品,而是一套开发模型。

在 SAP S/4HANA Cloud public edition 里,它还是唯一可用的 ABAP 开发模型。

在 on-premise 和 private cloud 里,经典 ABAP 仍然存在,但官方推荐尽量采用 ABAP Cloud。

很多人会把这种变化理解成,ABAP 被削弱了。

我倒觉得,不是削弱。

是换了一种强法。

然后我就想到了《道德经》里的那句,上善若水。

这句话太容易被说成鸡汤了,搞得像朋友圈配图文案。

但你真拿它去看一门语言的进化,会发现特别贴。

水这个东西,厉害的地方,从来不是硬碰硬。

它是润进去,流过去,绕过去,托住一切,但又不跟万物争那个正面控制权。

这不就是 ABAP 从 On-Prem 走向 Cloud 之后,最深的一层变化吗?

以前的 ABAP,强在贴身肉搏。

现在的 ABAP,开始追求若水。

若水,不是不做事。

恰恰相反,它做更多的事,但方式变了。

以前很多企业做 ABAP 开发,逻辑是这样的,业务要改,那我就往系统核心里钻。

哪里能插 enhancement,哪里能调隐式增强,哪里能直接摸表,哪里能绕过公开接口,先把事办了再说。

那套逻辑在本地部署时代是成立的,因为系统的生命节奏由你掌控,升级频率、运维窗口、技术债,很多时候都可以往后拖。

Cloud 不一样。

Cloud 的世界里,系统不是一口封闭的井,而是一条持续流动的河。

版本在更新,服务在演进,接口要稳定,升级要安全,扩展要尽量和标准解耦。

SAP 对 clean core 的定义,核心就在这里。

系统尽量保持靠近标准,自定义能力通过 cloud-compliant 的扩展和集成去实现,形成清晰稳定的边界,这样升级才不会一碰就炸。

看到这儿,你就会发现,ABAP Cloud 其实是在把开发者从「挖井的人」,慢慢训练成「治水的人」。

这两个角色,差别非常大。

挖井的人,追求的是我能不能最快打到水。

治水的人,追求的是这片水系能不能长久地流。

一个偏局部最优,一个偏系统稳定。

一个靠深入内部,一个靠尊重边界。

这就是为什么很多人第一次接触 ABAP Cloud,会有一种武功被废的错觉。

因为你以前最值钱的能力,可能是熟悉内部结构,知道哪儿能抄近路,知道哪些 unreleased object 其实也能用,知道怎么把需求直接塞进核心里。

可在 Cloud 的语境里,很多这类能力,一下子不再被鼓励了。

系统真正奖励的,不再是你能打多深,而是你能不能沿着 released API、release contract、extension point 这些被正式开放的水道,把东西接起来。

SAP 甚至专门围绕 released APIs 和 release contracts 去保证对象的生命周期稳定性,目的就是让你用的是能长期流的河道,不是今天能走、明天就塌的暗沟。

这时候再回头看「上善若水」,那个味道就出来了。

水善利万物而不争。

ABAP Cloud 也是。

它不再鼓励自定义逻辑和标准代码狠狠干在一起,争那一点局部控制权。

它更希望你在合适的位置发力,用合适的接口延展,用更松耦合的方式把业务托起来。

SAP 在 ABAP Cloud 里把扩展方式分成了 key user extensibility、developer extensibility、side-by-side extensibility。

你会发现这个设计特别像一套分层水网,小改动有小水渠,复杂扩展有主干道,真正需要松耦合和独立演进的东西,就把它引到系统外侧去,在 SAP BTP 这样的环境里流动。

这不是保守。

这是成熟。

很多技术一开始都崇尚自由,后来慢慢都得学会边界感。

因为自由到最后,常常会变成彼此缠绕。

我一直觉得,SAP ABAP On-Prem 时代的很多系统,看起来像一个强大的城池,实际上也很像一个年久失修的老城区。

每个时期都有人往墙上接一根线,往路边搭一个棚。

需求是满足了,城市也越来越拥挤。

你走在里面,熟人当然知道抄哪条小路最快。

但一旦要整体翻修,或者要接入更大的交通系统,问题就全来了。

Cloud 想做的事,有点像重新修排水。

甚至 SAP 也明确说了,ABAP Cloud 并不只在云里可用,在 SAP S/4HANA private edition 和 on-premise 里也可以使用,而且是推荐方向。

这个点特别重要,因为它说明,ABAP 的转型不是简单的部署位置变化,不是把服务器从机房挪到云上就结束了。

它更像是一套新的开发伦理,先在语言、接口、生命周期和扩展方式上,把未来十年的规则立起来。

所以,ABAP 从 On-Prem 到 Cloud,真正变的不是语法。

是价值观。

以前你会问,我能不能做到。

现在你更该问,我这样做,能不能长期存在。

这个问题的变化,特别像水。

水从来不执着于某一个形状。

杯子给它什么形状,它就先进去。

河道怎么弯,它就怎么走。

但它并不是没有原则。

河岸、坡度、重力、流向,都是它的秩序。

ABAP Cloud 也是一样。

它没有让 ABAP 消失,而是在告诉 ABAP,进入云时代之后,你的力量不能再建立在对系统内部的占有欲上,而要建立在对边界、稳定性和演进节奏的尊重上。

很多人觉得这种约束不爽。

我非常理解这种不爽的感觉,只因我曾经也有过。

你明明是个很能打的开发,结果忽然被告知,这个不能碰,那个别直连,这里要包装成 released API,那边要走 RAP,要建 service definition,要遵循 cloud-ready 的模式。

束手束脚。

你会觉得,尼玛,怎么以前一把瑞士军刀,现在非要我拿着儿童安全剪刀干活。

但你往后多看几年,就会发现,这个约束未必是在削你。

可能是在保护你。

SAP 在 private edition 和 on-premise 里提出的 3-tier model,其实就是这种现实感的体现。

第一层尽量只写 ABAP Cloud,第二层给那些还没有 released API 的地方做隔离接口,第三层才保留必要的 classic ABAP。

这个设计特别妙,它没有天真地说老世界今天就该全部消失,而是承认过渡期一定存在,承认遗产系统就是现实,承认有些地方现在还做不到纯净,但同时又给你画出一条往云时代收敛的河道。

这就很像《道德经》里传达的思想。

老子不是那种喜欢硬掰世界的人。

他更像是在观察势。

水为什么高级,因为它不跟势对着干,它找到势,然后借势。

ABAP Cloud 也一样。

RAP 为什么会变得这么重要?

不只是因为它新,而是因为它更适合在这个时代组织业务对象、服务、行为和生命周期。

released API 为什么被反复强调?

也不是 SAP 单纯想多设门槛,而是只有当消费关系建立在被正式承诺的接口上,升级、安全、兼容这些事,才有可能真的成立。

clean core 为什么反复被念叨?

因为只要你的自定义还和标准代码死死缠在一起。

所谓云转型,很多时候就只是把一坨旧问题搬到了另一台机器上。

所以我越来越觉得,用「上善若水」去理解 ABAP,不只是一个文艺比喻。

它甚至点中了一个很硬的工程事实。

真正适合云时代的语言,不是那种能让你无限伸手进系统腹地的语言。

而是那种能在复杂业务、持续升级、跨系统集成、长生命周期维护之间,保持流动、保持边界、保持稳定的语言。

你看,水最厉害的地方,不是淹没一切。

而是让一切有序地活着。

ABAP 也一样。

On-Prem 时代的 ABAP,像一条你自己家的地下水管。

你知道阀门在哪,知道哪里能凿,知道哪里能临时接个头,出事了也大不了周末加班修。

Cloud 时代的 ABAP,更像城市供水系统。

你不能因为自己家厨房想多接一个龙头,就去刨主干道。

你得看接口,看规范,看承压能力,看会不会影响整个系统的运转。

听起来麻烦多了,对吧。

但这才是面向大规模、长期运行、持续演进的现代工程。

很多 ABAP 开发者真正要转过去的,不只是技术栈。

是心理模型。

不是从 SE80 转到 Eclipse 这么简单,也不是从写 report 转到写 RAP 这么简单。

更大的迁移是,从「我能改进去」转向「我能接出来」,从「我知道内部秘密通道」转向「我能在公开水道上,把业务做漂亮」。

这个过程,说实话,不浪漫。

甚至一开始会有点憋屈。

但它很像成长。

年轻的时候,你总觉得力量就是穿透、占有、改造。

后来才慢慢懂,真正高级的力量,是你不需要把所有东西都攥在手里,系统照样能被你组织好,流起来,长起来,稳下来。

这就是若水。

它没有放弃力量,只是把力量从冲撞,变成了流动。

而 ABAP 从 On-Prem 到 Cloud,走的也是这条路。

不是从强,走向弱。

是从硬,走向柔。

从贴身肉搏,走向有边界的协同。

从我进核心,走向我沿河而行。

写到这儿,我反而会觉得,ABAP 这门语言其实挺幸运的。

不是每一种老语言,都有机会在新时代里重新长出哲学。

但 ABAP 有。

它没有被云时代直接扫进历史角落,而是在 SAP 的体系里,被重新整理出一套更克制、更清晰、也更长久的生存方式。

public cloud 里,ABAP Cloud 已经是唯一模型。

on-prem 和 private cloud 里,它也被官方当成推荐方向,还配上了 clean core、3-tier model、released API、key user 和 side-by-side 这一整套方法论。

你会感觉,这门老语言没有死扛过去,它是在学着变成水。

大概,这才是我理解的那句上善若水。

最好的技术,不是看起来最猛的技术。

最好的技术,是它进入一个更大的时代之后,依然知道怎么让自己流动,怎么避开无谓的争夺,怎么托住业务,怎么穿过升级,怎么绕开僵硬,最后,去往它真正该去的地方。

而 ABAP 从 On-Prem 到 Cloud。

就是这样一条河。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OEIsOTlEqy6HkxyEmwgJpB8w0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

领券