关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。
考虑:紧密耦合的前端和后端
许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。
以下几点支持为什么前端和后端应该保持在一起:
- 类似的概念和语法:功能抽象通过消除不必要的特征,将重点放在基本的项目功能上,成为主要帮助。为了解决这些问题,在客户端和服务器环境中使用了类似的概念和语法。例如,ReactiveX是一种具有可观察模式的API异步编程,可以用各种语言实现,这有助于在前面和后面的相同响应式抽象上轻松构建项目。
- 沟通不畅是最低限度的:通信需要完好无损,以实现无缝的应用程序开发过程。前端和后端的划分将造成沟通鸿沟,使两个团队不了解或不清楚有关各自端变化的信息。将前端和后端保持在一起将减少此类错误沟通的机会,从而促进应用程序的顺利开发。
- 高效利用资源:聘请全栈开发人员进行前端和后端耦合。当考虑大型项目时,需要在客户端和服务器端解决一些任务。在这种情况下,全栈开发人员从应用程序的一部分跳到另一部分,没有任何额外的开销。在开发团队中拥有全栈开发人员既经济高效又省时。
- 高效的团队合作,完全拥有所有权:如果对业务需求有清晰的了解,前端和后端的集成是富有成效的。这样,参与的多学科团队将迅速适应开发环境,并完全拥有项目。开发团队一起工作更长的时间,以有效地交付产品。
- 适用于简单和小型项目:对于简单的 CRUD(创建、读取、更新和删除)操作或较小的代码库,耦合的前端后端方法绰绰有余,因为在这种情况下,大多数任务已经解决,不需要额外的输入。
- 开箱即用的安全性:将前端和后端连接在一起具有许多安全优势。例如,在这种情况下,无法公开 API,从而保护 API 免受任何类型的攻击。
所以我们谈到了前端和后端加入到现在的优势。但是,现代应用程序开发模型由于其缺点,正在看到紧密耦合的前端和后端被其他方法取代。
以下是将前端和后端连接在一起的缺点:
- 在简单网站的情况下,前端和后端加入是成功的。在网站上添加网页会使系统效率低下,无法提供多种类型的内容、图像或其他媒体元素。
- 所有处理任务都由服务器在最终将内容交付给用户之前完成。这最终使服务器无法有效地处理多个用户请求。
- 自定义的范围较小,因为在后端执行的任何更改都会直接影响网站的前端。此外,任何开发更改或维护都需要比平时更长的时间。
为了处理大型项目,例如拥有数十亿行代码,前端后端紧密耦合将不起作用。由于大型项目太大,任何人都无法完全掌握。全栈开发人员将无法完全控制项目。
来源:呆伯特
在开发环境中分离前端后端
功能强大且高性能的Web浏览器具有增强的处理功能,有助于在Web应用程序开发模型中将前端和后端分离后实现无缝运行。
前端和后端分离的主要好处如下所述:
- 广泛的技术专家覆盖:在多层开发环境架构中,复杂的技术负责任务。因此,为了创建一个复杂的系统,需要特定的技术专家。划分前端和后端有助于获得各自技术专家的程序员。此外,消除双方可能对另一方施加的技术选择的限制。从而使该过程在这样的开发环境中顺利进行。
- 模块性:由于此类开发模型中的组件或模块是独立的,因此更换模块或对模块进行任何更改都是顺利的。Web 应用程序的后端模块中的更改不会影响前端部分,反之亦然。因此,不会覆盖或弄乱对方的工作。
- 快速开发和部署:由于各个团队在项目上并行工作并且完全连贯,这有助于快速同时开发 Web 应用程序,从而实现快速应用程序部署。
- API 整合:随着大量设备的可用性,需要对各种版本的代码(网站,iOS应用程序,Android应用程序)进行管理。其中大多数需要相同的代码库。基于 API 的网站简化了开发人员的一切,因为现在 API 处理代码管理。因此,开发人员需要处理的代码更少。
我们看到松散耦合的前端和后端带来了许多主要的好处。
但是这种分离也带来了一系列缺点,它们是:
- 与 API 的通信和代码管理增加了团队的文档开销负担。除此之外,没有明确的方法来解决前端的 API 更改。
- 工作量随着前端和后端的划分而增加。为了提交任何更改,需要进行两次同步提交,而不是一次。
- 前端和后端的集成会导致错误、进度延迟,在最坏的情况下会导致开发失败。此外,团队之间的沟通效率低下。
分还是分?选择什么
正如我们所看到的,前端和后端的鸿沟可能没有什么好处。但这些好处可以扩展到独立升级、熟练的员工集成、可重用的 API 等。最重要的是,较少的依赖项减少了开发块的机会。
我们并不是说这些扩展优势使前端和后端与前端后端连接区分开来最好。现实情况是,这一切都取决于具体情况。大量的优势清单并不能使一个优于另一个。
建议在做出有关应用程序的前端和后端的拆分或连接的任何决定之前,先考虑项目的传入和输出。
结论
前端和后端的加入和分离有一些优点和缺点。考虑到目前的发展情况,可以选择两者中最好的。
开发框架前后端分离的好处是什么