Serverless For Frontend - 探索下一代 Node 研发模式
2020-02-23 257浏览
- 1. 3rd 蚂蚁金服体验科技大会
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9. A 0 10 7 22 10 7 P % A E C / B M
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17. ✓ ✓ ✓
- 18. ./sffdemo !"" src # # !"" component # !"" layout # !"" model # !"" page # %"" service # %"" sdk # # %"" user.ts # !"" function # SFF # !"" f.yml # %"" user.ts # !"" README.md %"" package.json
- 19. // function/user.ts export async function get(ctx, id: String): UserInfo { // await ctx.acl(‘User’); // const user = await ctx.oneapi.user.get(id); // await ctx.basement.messenger.send(`${id}` login`); // return { id: user.id, name: user.name, }; };
- 20. // feature: basement: true // await ctx.basement.messenger.send(...); // tnpm i @alipay/egg-basement --save // exports.basement = { package: '@alipay/egg-basement', }; // config.basement = { appId: 'sffdemo', appSecret: '123456', };
- 21. try { // const api = '/api/user'; const query = { id: ‘123456’ }; const userInfo = await request(api, { query, }); // do sth } catch (err) { // if (err.code === 'NO_AUTH') { // router.redirect('/login'); } else { messager.warn(err.message); } } // import user from ‘@functions/user’; await user.get(‘123456’);
- 22. // import { invoke } from ‘@alipay/oneapi-request’; export async function get(id: string): UserInfo { // const opts = { metadata, appName }; return invoke('user.get', { id }, opts); }; // import user from ‘@functions/user’; await user.get(‘123456’);
- 23. {
"user.get": {
"meta": {
"namespace": "user",
"method": "get",
"description": "
",
"request": [
{ "required": true, "title": “id", "type": “string” },
],
"response": {
"type": "object",
"$ref": "#/definitions/UserInfo"
}
},
"protocols": {
"http": {
"path": “/api/function/user/get”,
"method": "POST",
"parameters": [],
"response": {}
},
"mgw": {}
}
}
// function/user.ts
/**
*
*/
@http
@mgw
export async function get (
ctx: FunctionContext,
id: String
): Promise
{ … }; } - 24.
- 25. // import { invoke } from ‘@alipay/oneapi-request’; export async function get(id: string): UserInfo { // const opts = { metadata, appName }; return invoke('user.get', { id }, opts); };
- 26. // function/user.ts export async function get(ctx, id: String): UserInfo { // await ctx.acl(‘User’); // const user = await ctx.oneapi.user.get(id); // await ctx.basement.messenger.send(`${id}` login`); // return { id: user.id, name: user.name, }; };
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39. ‘ ,
- 40. ‘ ,
- 41. 3rd 蚂蚁金服体验科技大会,初衷是希望设计与技术能在碰撞中彼此融合,SEE 是 Seeking Experience and Engineering 的缩写,同时 SEE 也代表着 “看见”,希望技术能看见设计的价值,也希望设计能看见技术的力量,在 彼此看见中互相融合成长,一起让世界更美好。 语雀专栏 | https://www.yuque.com/seeconf SEE Conf 官网 | https://seeconf.antfin.com/ 参与知乎互动,赢下届门票 | https://www.zhihu.com/question/363807174 SEE Conf
- 42. 更多议题 体验科技与好的产品 玉伯(蚂蚁金服 体验技术部负责人) Evolution: Serverless For Frontend - 探索下一代 Node 研发模式 让价值被发现:如何在 B 端产品做增长? 天猪(蚂蚁金服 高级前端专家、Egg.js 核心开发者) 覃一(蚂蚁金服 高级体验设计师) 瀚雅(蚂蚁金服 高级体验设计师) 云凤蝶可视化搭建的推导与实现 围绕应用生命周期的企业级产品设计策略 江木(蚂蚁金服 高级前端工程师、antd-mobile 核心开发者) 壹乐(蚂蚁金服 高级体验设计师) “云”端的语雀 —— 用 JavaScript 全栈打造商业级应用 普惠金融体验设计创新思路:参与感对话设计 基于地域文化的设计创新 何人可(湖南大学设计艺术学院院长) Ant Design 4.0:创造快乐工作 林外(蚂蚁金服 高级体验设计专家) 线丝(蚂蚁金服 高级创意设计师) 不四(蚂蚁金服 高级前端技术专家,语雀产品技术负责人) 姚维(蚂蚁金服 体验设计专家) 决策机构体验科技:数字驾驶舱 逸达(蚂蚁金服 前端技术专家) 可言(蚂蚁金服 高级产品经理) 十喜(蚂蚁金服 高级体验设计师) 智能可视化体系 AVA 步茗(蚂蚁金服 数据技术专家、AVA 负责人) 璆鸣(蚂蚁金服 前端技术专家、DataWizard 负责人) 蚂蚁金服 Web 3D 技术探索之路 JCD 思维如何驱动复杂系统设计 烧鹅(蚂蚁金服 前端技术专家、Oasis 3D 引擎负责人) 今辰(蚂蚁金服 体验设计专家) 精雕细琢,打造极致可视化体验 资产的秩序之美: 通过模式化的方法构建设计资产的内在一致性 逍为(蚂蚁金服 高级前端工程师、AntV 核心贡献者) 吾笙(蚂蚁金服 高级体验设计师) 使用 React 开发小程序 - Remax 蚂蚁海外本地化设计 解放图形化设计生产力 — HiTu 边柳(蚂蚁金服 高级前端工程师、Ant Design 核心贡献者) 竹摇(蚂蚁金服 高级体验设计专家) 线丝(蚂蚁金服 高级创意设计师)