开发SPA的最佳方法是什么?

时间:2016-11-22 00:32:39

标签: javascript web architecture single-page-application singlepage

在开发单页应用程序时,我总是质疑自己哪个是设计项目的最佳方式。我应该解耦客户端和后端吗?我的客户端应用程序应该与我的后端代码在同一台服务器上吗?我应该为客户端和服务器投资多个托管计划吗?所以我问,这是组织和开发单页应用程序的最佳方法吗?

1 个答案:

答案 0 :(得分:6)

当我第一次开始时,这是我遇到的一个问题,很难在网上找到完整的答案。一般来说,虽然这将过于简单化,但公司在这个过程中是如何进行的。

Monolith:后端和前端代码位于同一项目中的应用程序。

这意味着什么:代码库很容易维护,因为它就可以了。最初的复杂性较低,生产的时间也少得多,因为它更容易获得“出门”#34;你没有复杂性,例如"系统的不同部分。所有初创企业都从这里开始。

这里的缺点是,随着开发人员将新的功能和想法融入其中,最终代码库变得非常难以维护。此外,您的API未公开,因此它只能用于此应用程序(详见下文)。

前端& API:前端代码和API分别位于不同代码库中的应用程序。 API仅提供数据,通常采用JSON格式,前端代码使用该数据并显示此数据。

这意味着什么:现在您已经分解了API和前端代码库,您可以使用API​​为需要它的任何前端应用程序提供数据。例如,想想网络与移动。他们都可以使用相同的API。对于更大的应用程序,这变得更加可维护,现在您可以围绕后端和前端流程构建团队。随着项目的发展,您现在可以实现更好的扩展和效率。

这里的缺点是你现在有两个独立的代码库来维护,保持,进行更新,确保同步等等。

FEBE&微服务:一个应用程序,其中"系统的所有部分"生活在非常孤立的代码库,架构等中。一个FEBE是一个前端,后端"微服务是一种服务(可以是API),它在业务逻辑中提供非常特定的功能。这个世界的前端可能需要消耗几个微服务来实现其目标。

这意味着什么:这是成功的,大公司最终落地的地方,如果他们成功的话。同样,过于简单化,但所有主要公司都在这个领域运行基础设施。对于团队来说,这种架构比编码或开发更多。拥有数百名工程师的公司可以为每个系统提供一个系统来拥有和维护,使他们能够按自己的速度发布到生产等等。

这里的缺点是系统现在被分解成数百个部分而没有人力变得极难维护。公司之所以这样做是因为它允许团队非常有效和独立地运作。

作为一家初创公司,所有公司通常会从这个名单开始向下迁移,因为它们存在,转变收入,变得有利可图,雇用更多人等等。

我给你的建议是:从使用Node.js(Express)后端和React.js或Angular前端的monolith开始。

我之所以这样说是因为Node.js是未来,而且非常容易学习,React或Angular在框架方面都是很好的起点。

当您转到第2阶段(前端和API)时,坚持使用Node.js并且可能在那时React或者如果是我,我只会在Handlebars中使用我的API数据并且完成它(根本不使用前端框架)。

希望这会有所帮助。我回答是因为我知道在几年前我找到答案时这对我来说是多么令人沮丧。