这篇文章写什么

Serverless 离"好用"还有一段距离

本文适合谁阅读

开发者。
读者如果有 serverless 基础当然更好。
没有也没关系

正文

我们先看这张图:
(代码来自 serverless.com 官网:https://serverless.com/examples/aws-node-rest-api-with-dynamodb/)

仔细看 yml 里 functions 部分

看看,就一个增删改查写了多少行?

作为 Ruby on Rails 开发者,这我不能忍。

如果是 Ruby on Rails:

  1. routes.rb 里加一个 resource
  2. 再加一个 controller 文件

就两处改动,易懂。

YML 看了,我们再来看看实际代码:

的确是 serverless 了没错,这写起来并没有更简单了

再补一个 Youtube 教程截图:

https://www.youtube.com/watch?v=Pa99PT16tmw

都是这样写。增删改查一个个定接口。

结论1

serverless 做 CURD app 的写法还需要不少改进。
因为增删改查的应用到处都是。如果写起来这么痛苦,没人用的。

如果规模小也就忍了(比如 10个以下的 API 接口)
稍微再复杂一点的应用(如今任何一个简单 Web 应用都比这个复杂)
我还是回头去用 Ruby on Rails 吧。
折腾 Docker 和 CI/CD 部署之类的东西,麻烦点也就算了,第一次搞定了后面就流畅了,可以自动化了

不是在黑 serverless 说这个不行,
只是说 serverless 还需要再多发展一点。

查了下,找到一个东西叫 Ruby on Jets

https://rubyonjets.com/

我还不了解这东西,不发表评论了。

结论2

我想用 Serverless 冲着的就是 Simple & Cheap。
现在看来 Simple 是做不到了。只有 Cheap 可以。

我的最终目的

做一个简单 License API。
类似 https://keygen.sh/

生成激活码+验证激活码,就俩 API 接口 + 一张数据库表。

具体细节:

  • 一张数据库表里就两列,email(string) 和 license_code(string),就像账号密码一样。
  • 激活时验证这个组合是否存在,存在就是对的

总耗时

(2020年1月) 大概花了2-3天断断续续的看了 Serverless 的教程。

结论3

我最后放弃了 Serverless 方案。

全文完

感谢阅读