道冲而用不盈,RAP 开发里的留白、节制与业务对象之道
「道冲,而用之或不盈」这一句,放在 SAP ABAP RESTful Application Programming Model 开发里读,我会把它理解成一种很强的工程提醒,真正成熟的 RAP 应用,不是把所有能力都塞进一个行为池,不是把所有字段都暴露到一个服务,也不是把所有业务变化都做成显式按钮,而是让业务对象像一个中空的器皿,有边界,有容量,有回旋余地。它能承载当前业务,又不被当前业务填满。它能被消费端使用,又不被某一个 UI、某一个流程、某一次项目需求榨干。SAP 官方对 RAP 的定位也很贴近这个思路,RAP 用来构建 cloud-ready 的事务型业务应用、服务和扩展,覆盖 SAP BTP ABAP Environment、SAP S/4HANA Cloud Public Edition、SAP S/4HANA Cloud Private Edition 以及 SAP S/4HANA,还是 ABAP Cloud 在事务场景里的核心模型。(SAP Community)
老子讲「冲」,不是空无一物的空,而是器物中间那个可用的空间。杯子之所以能盛水,不在杯壁本身,而在杯壁围出的空处。房子之所以能住人,不在砖瓦木梁堆得多,而在墙体围出的空间。RAP 里的 BO,也就是 Business Object,如果只看代码,很容易只看到 CDS view、behavior definition、behavior implementation、service def
