首页 博客 相册 演讲

FaasJS 是如何提升开发体验的?

For Ruby Tuesday 2021-09-14

Ben (https://github.com/zfben)


如何让开发从入门到转行?#left

👆 这些都是必须的吗❓


Serverless 是如何提升开发体验的?


FaaS 是如何提升开发体验的?


FaasJS 是如何提升开发体验的?


FaasJS 的 Hello world #left

云函数的生命周期

  1. 初始化
  2. 执行业务逻辑
// hello.func.ts
import { useFunc } from '@faasjs/func'

export default useFunc(function () {
  // 初始化

  return async function () {
    // 执行业务逻辑
    return 'Hello world!'
  }
})

添加网络请求处理器 #left

// hello.func.ts
import { useFunc } from '@faasjs/func'
import { useHttp } from '@faasjs/http'

export default useFunc(function () {
  const http = useHttp<{ name: string }>({
    validator: { params: { rules: { name: { requeired: true } } } }
  })

  return async function () {
    /* @returns {
     *  statusCode: 200,
     *  headers: { Content-Type: application/json },
     *  body: {"data": "Hello world!"}
     * }
    */
    return `Hello ${http.params.name}!`
  }
})

FaasJS 的网络请求包含了什么?


添加数据库访问 #left

// hello.func.ts
import { useFunc } from '@faasjs/func'
import { useKnex, query } from '@faasjs/knex'

export default useFunc(function () {
  useKnex()

  return async function () {
    return query('users').first()
  }
})

为什么不用 ORM?#left

ORM 有悖于原子化开发

同样的原因也适用于 GraphQL


一个开箱即用的 FaasJS Application

Talk is cheap, show me the code.

git clone https://github.com/faasjs/starter


感谢

致敬国金的 Costa