问:但这也意味着我必须将业务逻辑放在Angular2 Web应用程序的前端,对吗?
是。如果没有服务器支持,则应在某处实施业务。
在Google收购之后,Firebase演变成一个移动应用程序开发人员的平台,这些开发人员负担不起(或不需要)部署自己的后端。尽管大多数服务都是横向的:存储,登录,分析和消息服务,但确实它还提供了Cloud Functions(某种lambda),可用于执行某些特定于业务的规则。但是,对于企业应用程序或具有复杂域和业务逻辑的大型应用程序,这种支持不足。
因此,您可能会猜到,Firebase不会免除我们拥有专门用于托管和运行业务特定操作的后端的权利。
问:因此,如果将来有一天我想做一个移动应用程序的前端,我是否必须复制业务逻辑代码?
不必要。如果该Web应用程序是基于Angular构建的,则诸如NativeScript之类的跨平台可能允许您重用Web组件,库,实用程序,模型等。我没有深入研究该主题,因此无法保证完全兼容。关键在于TypeScript,Angular和NativeScript都要求我们在TS上进行编码。
然后,问题是在何处托管Javascript以进行发布和版本控制。单词CDN。
问:我想替代方案是创建一个包含业务逻辑并使用Firebase进行数据存储的后端,但这似乎有点不可思议(我不能仅在后端使用ORM或其他东西来实现相同功能结果,而无需进行更多工作?)
一些注意事项。
一方面,托管,推出,管理和维护数据库并非易事。更不用说处理安全性,可伸缩性,可用性等了。因此,让数据库提供者来照顾这些事情很有趣。如今,将我们的数据库存储在云中并不是一个疯狂的想法。当然,如果我们为银行实现中间件和后端,我不会建议这样做。但这对于客户端的会话,用户的配置文件,首选项以及通常驻留在客户端的此类数据或我们不关心的数据可能是有意义的。
另一方面,出于简单的原因,将我们的后端去耦是有用的。
与其将客户耦合到我们不管理和控制的各种服务上,我们还从那里管理这些事情来部署服务器端应用程序,从而使我们的客户不必担心服务关闭或中断等问题。变化。此外,由于后端的作用就像立面一样,我们获得了简单性。
问:例如,如果人们想使用Firebase,人们通常会如何构造这类应用程序?
各个项目的差异很大。例如,我们使用Firebase +后端。