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

use*_*653 4 javascript architecture singlepage web single-page-application

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

sid*_*lsa 8

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

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

这意味着什么:代码库很容易维护,因为它就可以了.最初的复杂性较低,生产时间也少得多,因为它更容易"出门".您没有复杂性,例如"系统"的不同部分如何相互通信等等.所有初创公司都从这里开始.

这里的缺点是,随着开发人员将新功能和想法融入其中,代码库最终变得非常难以维护.此外,您的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数据并完成它(不使用前端框架.)

希望这可以帮助.我回答是因为我知道这对我来说在多年前寻找答案时是多么令人沮丧.

  • 这是一个完整的答案,FEBE方法对我来说是全新的。感谢您的指导。我认为这是一个很好的答案候选人。 (2认同)