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


全文共2160字,预计学习时长7分钟

来源:Pexels

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

 

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

 

·  你需要快速、安全地进行迭代

·  不太了解后端代码、主机或DevOps

·  专注于已经很复杂的前端开发工作

 

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

 

小芯告诉你:可以的。

 

下面我们就来一一介绍:

 

后端作为服务(BaaS)进行救援

 

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

 

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

 

·  Firebase可能是最知名的,它是由谷歌和谷歌云平台支持的。它非常高效和酷,是作为一个云黑盒工具托管的。

 

如果你需要本地工具,你可以使用自己的主机查看一些解决方案,比如

 

·  Kuzzle,一个基于NodeJS、弹性搜索和Redis的特别强大的物联网和高性能/流量应用服务(BaaS)。

·  FeatherJS,一个有各种连接器的NodeJS服务器,可用于MySQL, Postgres或MongoDB。

·  Strapi,一个帮助你快速建立CMS的NodeJS服务器。

 

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

 

来源:Pexels

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

 

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

 

请记住,当谈到“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;
}

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

 

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

 

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

 

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

 

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

 

那很昂贵吗?

 

来源:Pexels

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

 

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

 

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

 

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

 

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


推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:齐欣、高雪窈

相关链接:

https://medium.com/javascript-in-plain-english/can-i-make-an-app-without-any-backend-code-7ef22129e3d7

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值