如何设置Google Cloud,以使用AngularJS客户端和Java服务器进行Web应用程序进行行为驱动的开发(B



我想在Google Cloud上进行行为驱动的开发(BDD)。我已经写出了我的BDD故事,看来基本的Web应用程序可以满足要求。我想将AngularJS用于为服务器编写客户端代码和Java,因为这些是我最熟悉的。我也对Maven有些熟悉。

我如何以允许我专注于编写代码的方式开始?

1]选择Google Cloud Service(App Engine,Compute Engine,Container Engine)?

2]查找并复制一个Hello World示例,用于与我想要使用的其他组件一样多的任何技术(JBEHAVE for BDD,AngularJS,Java,Java,上面的Google Cloud Service)?但是,我应该从哪个组件开始的指南开始,以便其他组件可以轻松整合?

3]找到合适的Maven原型?

4]调查Spring.io?我听说Spring.io试图使开发人员容易专注于编码。但是我对此并不了解。

我想花费尽可能少的时间设置项目,以便我可以尽快开始进行行为驱动的发展。我通常会发现这样的项目是我锁定要使用哪种技术的决定之一,请遵循他们的入门指南,但是当我开始集成其他组件时,我会遇到砖墙。

我如何启动这个项目,以便我可以在非编码方面花费最少的时间?

我个人不会专注于执行系统的位置。我的世界,开发是在本地计算机上完成的。CI在其他地方完成,最终工件在某个地方执行。这必须从您的CI构建中部署到某个地方,以便您可以在部署之前验证它实际上有效。

我将首先构建在计算机上本地工作的东西,然后向前迈进。我不会花任何时间搜索Maven原型,我会慢慢手动构建项目。这听起来可能是一种缓慢的做法,但它将使我了解正在发生的事情。添加的魔术是我添加的魔术,因此没有魔术。

那你应该从哪里开始?我建议从克隆https://github.com/cucumber/cucumber-java-skeleton开始,然后将其扩展到所需的业务功能。如果您需要更多的技术,请在需要时添加它。不是在需要之前。我的经验是,我通常需要比从一开始就可以想象的要少的技术。绝对不是我在开始项目之前能想到的工具。

一种方法是思考前后或背对面。从前到后思考意味着从用户界面开始,一旦构建,创建中间层,最后是后端。

从用户界面开始的问题是,您无法真正验证它是否在没有后端的情况下工作。但是我认为这是一个问题依赖注入(DI)可以解决的。您可以构建用户界面以及需要在堆栈中调用下一层(例如服务器API)的任何地方,都可以给它一个模拟服务器以致电。您可以实现足够的模拟服务器,以使用户界面的BDD故事通过。当每个BDD故事都通过用户界面传递时,您可以在堆栈中构建下一层。

应该可以通过找到前端技术(AngularJS)的Hello World示例来开发用户界面。寻找一个Hello World示例,其中包含了测试的两个必要部分:BDD和依赖注入。如果找不到一个,请从Angularjs Hello World开始,开始运行。然后,当一个单独的任务去为BDD做一个Hello World,希望在学习如何使BDD工作以使BDD与AngularJS项目一起工作后会很明显。然后对依赖注射做同样的事情。希望这能使您能够完全实现AngularJS的前端,您可以验证使用BDD和依赖注入的工作。

然后您可以在中层工作。您可以将其设置为一个单独的项目,独立于Angularjs项目,因此您不必担心将堆栈两层组合代码的麻烦组合成一个项目。Maven应该能够做到这一点,但是Maven的文档往往并不那么容易使用。

要开发中层层,找到一个Hello World示例,用于开发在Google Cloud上运行的基于REST的API服务器。此时,您不需要前端或后端。可以通过BDD故事来模拟前端,而后端可以通过DI模拟。一旦所有BDD故事都通过中间层,您就可以构建后端。

开发后端类似于建造中层。找到一个Hello World示例,用于开发在Google Cloud上运行的数据库应用程序。相关技术最有可能是使用Objectify作为面向反对的包装器的Google数据存储。但是,让我们将此层称为服务层,因为REST API和数据存储之间应该有一层抽象。独立于中间层独立于发展这一层可能并不是很简单的问题,但请尽可能尝试这样做。换句话说,创建一个基于Google DataStore Hello World示例的单独项目。使用BDD模拟中层。您可能不再需要DI,因为您在堆栈的底部,只需直接调用数据存储。但是,如果不可能在您正在开发的本地计算机上运行数据存储,则DI可能会很有用。

现在,您的BDD故事都在所有三层(用户界面前端,REST API中端,后端服务层后端)上运行,现在开始使其在生产服务器上工作。我不相信这是最好的方法,因为在最后一步中似乎会出现很多并发症。从理论上讲,如果每一层通过BDD测试,则应该很好地将其齐本。但是将它们整合在一起可能不会顺利进行。确保其顺利进行的一种策略是将每一层映射到自己的专用生产系统上。如果每件作品都在开发机上顺利运行,那么它不应该在生产机器上平稳运行吗?

希望,但是我希望其他人会提出一种更好的方法,使某人在编码上花费更高的时间和在此DevOps的时间上的时间更低。

最新更新