不使用任何后端代码可以开发应用程序吗?

耗尽温柔 提交于 2020-02-27 14:33:20

在一个一切都在加速的世界里,你需要快速迭代以避免被抛弃。

技术有很多,但你不可能掌握每一项。你可能会问自己:“我怎么能在不了解后端代码的情况下构建应用程序呢?”

  • 你需要快速、安全地进行迭代
  • 不太了解后端代码、主机或DevOps
  • 专注于已经很复杂的前端开发工作

那么,在没有任何后端代码的情况下,你能开发出一个可以工作的应用程序吗?

小芯告诉你:可以的。

下面我们就来一一介绍:

后端作为服务(BaaS)进行救援作为服务的后端是一个远程工具箱,不需要一行代码,它就可以帮助你快速构建通用的应用程序功能,比如自动验证、数据库持久性、搜索和统计信息。

有很多工具提供了这样的工具。

  • Firebase可能是最知名的,它是由谷歌和谷歌云平台支持的。它非常高效和酷,是作为一个云黑盒工具托管的。如果你需要本地工具,你可以使用自己的主机查看一些解决方案,比如
  • Kuzzle,一个基于NodeJS、弹性搜索和Redis的特别强大的物联网和高性能/流量应用服务(BaaS)。
  • FeatherJS,一个有各种连接器的NodeJS服务器,可用于MySQL, Postgres或MongoDB。
  • Strapi,一个帮助你快速建立CMS的NodeJS服务器。

当使用Baas时,你需要稍微改变主意。

与调用将根据自定义逻辑更改数据的自己的端点不同,与根据自定义逻辑调用端点来更改数据不同,你通常会直接使用前端的格式化数据查询与数据库交互的服务端点,因为这些数据必须出现在数据库中。

因此,前端代码被认为是安全的,惟一要做的就是在后端应用一些验证策略来保证某些场景中的数据完整性。

请记住,当谈到“backendless”时,实际上它有一个正在运行的后端,只是你不需要为此编写任何(或只编写很少)代码。几乎一切都已为你准备好了。

把后端作为服务的一个小例子

假设你需要创建一个博客帖子,如果没有BaaS,你可能会调用一个名为post/blog/create的端点,并且可能会传递这样的对象

  "title": "My newpost", 

  "content":"<h1>Some HTML…" 

然后在后端,你将添加一个postID、一个带有创建日期的服务器时间戳,可能还添加了一个字段,作者使用的是使用会话令牌找到的当前用户。

使用BaaS,你可以像使用SDK这样直接在集合上进行调用(我将在下面向你展示一个FirebaseFirestore示例,在其他工具中类似)。

constarticleReference = db.collection("blog_posts").add({ 

  "title": "My newpost", 

  "content":"<h1>Some HTML…", 

  "owner":"<user_unique_id>

  "creation_date": 1578855978 

}) 

.then(success => console.log(success)) 

.catch(error => console.warn(error)); 

并且在后端添加一些限制策略,例如通过验证作者。

match/blog_posts/{postId} { 

      allow read if true, 

      allow create, update: ifrequest.auth.uid == resource.data.owner; 

这样,可以更快地编写代码,而且为安全策略定义自动化测试套件也比后端代码更容易。默认情况下,所有东西都是禁用的,可以一点一点地启用它们。

这也可以定义一些后端函数来“挂钩”某些事件,如文档创建、编辑或删除。这样就可以定义一些副作用或额外验证。

使用后端作为服务能创建什么?

这就是问题所在……你可以构建的东西是没有限制的,如果遇到了限制,可以用其他工具甚至自定义后端来扩展这些工具。

大多数情况下,在基于云的解决方案上有合理的免费层,所以开始构建时没有问题,当应用成功时你就要开始支付少量费用了。

那很昂贵吗?

记住,任何帮助你更快、更安全的事情通常都有不利的一面。在使用内部包时,成本是关于开发人员支持和协助许可的。

但是当使用云BaaS时,当它们扩展到一个非常大的数据集时,通常就很昂贵了,你还需要设计应用程序来大规模地使用它们,但是工程师最大的问题是花时间优化一些根本不应该存在的东西。

使用BaaS进行快速迭代,如果你的产品获得了一些成功,请考虑稍后对其进行优化的方法,有可能的话切换到另一种技术。

BaaS很酷的一点是,你可以很容易地迁移到其他工具。

现在轮到你了,快来试试吧。

每天都有内容更新看过的朋友可以点波关注,更多详情可以点击【Java】

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!