「知其白,守其黑,为天下式」出自《道德经》第二十八章。把这句话放到 SAP ABAP RESTful Application Programming Model 的开发里看,它不是一句玄学格言,而是一种很清醒的工程方法。所谓「白」,是已经显露出来、可以被命名、可以被建模、可以被审查、可以被协议消费的部分。在 RAP 里,它对应 CDS view entity、behavior definition、service definition、service binding、OData 暴露、Fiori Elements 注解、released API、authorization、validation、determination 这些摆在台面上的东西。所谓「黑」,不是混乱,也不是偷懒,而是那些在表面之下维持系统韧性的东西,是边界感、克制感、事务一致性、升级稳定性、并发控制、错误语义、扩展治理、对框架运行时的信任,以及不随手绕过模型的自律。RAP 最容易让人兴奋的地方,是它把一个业务对象从数据库表、CDS 模型、行为定义、业务服务一直推到 UI 和 API。SAP 官方文档对 RAP business service 的描述很直接,一个业务服务是可被消费者调用的 RESTful service,由数据模型和相关行为共同暴露,并且由 service definition 与 service binding 组成。service binding 则把 service definition 绑定到 OData 等客户端服务器通信协议上,同一个 service definition 可以有多个 service binding,从而把协议与业务逻辑分开。这里的「白」非常清楚,模型、行为、服务、协议,各自站在自己的位置上。(
知白守黑,RAP 开发里的光明边界与幽微功夫
「知其白,守其黑,为天下式」出自《道德经》第二十八章。把这句话放到 SAP ABAP RESTful Application Programming Model 的开发里看,它不是一句玄学格言,而是一种很清醒的工程方法。所谓「白」,是已经显露出来、可以被命名、可以被建模、可以被审查、可以被协议消费的部分。在 RAP 里,它对应 CDS view entity、behavior definition、service definition、service binding、OData 暴露、Fiori Elements 注解、released API、authorization、validation、determination 这些摆在台面上的东西。所谓「黑」,不是混乱,也不是偷懒,而是那些在表面之下维持系统韧性的东西,是边界感、克制感、事务一致性、升级稳定性、并发控制、错误语义、扩展治理、对框架运行时的信任,以及不随手绕过模型的自律。RAP 最容易让人兴奋的地方,是它把一个业务对象从数据库表、CDS 模型、行为定义、业务服务一直推到 UI 和 API。SAP 官方文档对 RAP business service 的描述很直接,一个业务服务是可被消费者调用的 RESTful service,由数据模型和相关行为共同暴露,并且由 service definition 与 service binding 组成。service binding 则把 service definition 绑定到 OData 等客户端服务器通信协议上,同一个 service definition 可以有多个 service binding,从而把协议与业务逻辑分开。这里的「白」非常清楚,模型、行为、服务、协议,各自站在自己的位置上。(