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

天翼云_恶作剧之吻1百度云_哪个好

小七 141 0

在这篇文章中,我在SAP云平台应用程序编程模型的背景下思考重用和扩展,并注意到Björn Goerke在巴塞罗那发表的SAP TechEd 2018主题演讲–"保持核心清洁"。

上周观看了SAP TechEd 2018巴塞罗那版,SAP CTO Björn Goerke和一个伟大的榜样团队在台上给我们做了一个主题演讲,内容是面向每个人的——技术和商业。在主题演讲中,我在推特上写道:

我想考虑一下"重用"和"干净"的关键字,因为在很多方面它们是互补的,重用(通过关联、扩展)可以帮助实现干净核心的目标。

当然,还有很多,但是重用和扩展定义和服务是在核心之外构建的关键部分,无论是对于新的应用程序还是扩展现有的解决方案。这意味着应用程序编程模型,它将重用作为一种"超级能力",返利app可信吗,是一个非常有用的模型来了解。

所以我想我会研究一个重用和扩展的例子,让我们思考和学习。

云示例itelo

今年早些时候,Oliver Welzel写了"itelo–一个示例业务应用程序"对于SAP云平台的新应用程序编程模型",他在其中描述了一个带有ra产品目录的应用程序,并对虚构的公司ITelO进行了评论。数据模型分为三层,每层建筑都在它下面的一层上。

本文中的图表提供了一个很好的总结:

组件概述,显示了数据模型是如何分层构建的

(也许在继续本文之前,值得您去阅读Oliver的文章。不过,别忘了回来!)胡迪多层的概念是,在"基础"层中有核心的人工制品,"产品目录"层建立在上面,然后在顶部有"ITelo"特定的应用层。每一层都由GITHUB中的一个存储库来表示,所以所有的源都是可供学习的。如果我们从顶部开始,看看"itelo"层的数据模型定义,这就是我们看到的*,特别是在db中/型号.cds来源:

*我在每种情况下都特别使用"rel-1.0"分支,因为这也是我们稍后将看到的依赖引用中使用的分支,它代表了一个我们可以检查的稳定版本。

通过"using"语句重用

看前几行,nba大数据,我们看到一些"using"语句:

所以这已经很有趣了。这种重用在起作用吗?它是。但这到底是什么意思?让我们调查一下。把第一个"using"语句称为云产品产品在sap帮助门户文档的模型重用部分,我们可以看到这实际上是从另一个CDS模型导入定义。好的,哪一个?好吧,我们可以识别"云样本目录"的名称,因为它是我们前面看到的图表中的一个层。但这是如何解决的呢?

为此,我们必须查看"itelo"层项目的包.json文件,其中,除其他外,我们看到一些依赖性定义:

哦,好吧,这是令人兴奋的,作为一个开始!这个包.json文件来自Node Package Manager(NPM)世界,企业管理软件排行,dependencies部分是定义对其他包(通常是"express"之类的包)的依赖关系的地方,例如,如果您正在构建处理HTTP请求的服务。但我们这里有什么?好吧,我们可以看到前面的"使用"语句中引用的名称,换句话说"@ SAP/云样本目录"和"@ SAP/云样本基金会"。但是它们不是简单的包名,而是映射到GitHub url。不仅仅是任何GitHub url,还有引用特定存储库的url,甚至是特定分支的url!以"@sap/cloud samples catalog"名称的URL为例,我们有:

它是指属于sap的云样本目录库的rel-1.0分支。

在"产品目录"层

看那里,我们看到了一个完全成形的应用程序–我们前面看到的中间"产品目录"层,带有应用程序,srv和db文件夹分别表示基于应用程序编程模型的典型成熟解决方案的三个组件。

在db文件夹中,我们看到型号.cds文件,它是这样开始的:

分形

以一种奇妙的分形方式,我们立即注意到,这个模型定义还引用了另一个带有"using"语句的包,但是现在我们不要再深入下去了。相反,我们可以把注意力集中在"使用"这句话上,我们在前面的消费定义中看到过,构建云服务器,它是这样的:

我们意识到云产品产品"指中的产品实体"云产品"命名空间,在这里用"实体"定义:

但那是什么fnd.BusinessObject公司"坐在实体名和大括号中的块定义之间?为什么,这是更多的重用,这是底层的"基础"层。就在上面的同一个文件中,我们可以看到这个层在一个"using"语句中被引用,这一次定义了一个本地别名"fnd":

现在让我们简单地进入分形。"的引用"fnd.BusinessObject公司"是"在"基础"层中定义的实体,如果我们遵循"产品目录"层的包.json:

(值得注意的是,在这一层中,大数据分析数据库,我们只有数据定义-以".cds"文件的形式-而不是包含app、srv和db文件夹的完整解决方案。)

在这个存储库中(同样,分支"rel-1.0")我们可以在通用.cds文件如下: