We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
proto
当前的瓶颈、痛点 API 需求多了、组件需求多了后,人不够,需求支持的慢
举例:
分析
需求响应时间= API 设计讨论时间 + [ API 数 * API 方法数 (比如 OSS API 有 20+个方法) * (API 开发人时 + 写集成测试用例 + 手动联调时间) + 组件数 * (组件开发人时 + 写组件测试用例 + 手动测试时间) ] / 人数 + PR Review 时间
分析上述公式,我们就能意识到,现在的设计不 scale: 我们希望支持更多 API(API 数↑)、支持并集 API (API 方法数↑)、集成不同云服务(组件数↑),但是人没有变多。 以 notify API 为例:有 4个 API, 每个 API 有2个方法,每个 API 要对接 3个服务(阿里云/ aws/私有云服务)。
所以,本提案的设计目标是研发提效,即使需求变多、人没变多时,依然能快速响应需求
High level design 实现一套工具链,减少工作量。 开发者写完 proto 文件后,敲一个 make proto命令,就能自动生成除了组件外的代码、文档,让开发者只需要花时间写组件
make proto
SDK 相关代码:
API 插件相关代码:
组件相关代码:
layotto runtime 相关代码:
pkg/runtime/config.go
pkg/runtime/options.go
自动生成的东西不需要 review。优化掉上述公式中的“PR Review 时间”
写组件时,不用写测试 每类 API 公用同一份测试用例,每次写组件不需要写测试
写组件时,自动联调 自动化可移植性测试,每次写组件不用手动联调,让 CI 自动联调
详细设计 SDK:
文档:
// TODO
The text was updated successfully, but these errors were encountered:
进展:
todo:
corner case处理:单个 proto 文件有多个 service 时 a. 拆成两个 proto b. 禁止 proto 这么搞,要求全塞到一个 service 里 选择 b
走一遍流程,测试
代码生成器支持一次传多个 proto 文件
代码生成器集成进 layotto make 脚本
在 make 脚本里自动 install protoc 插件
写个文档介绍 proto 编写规范、代码生成器用法
Sorry, something went wrong.
Now the code generator has been merged. Future works are recorded at: https://github.com/seeflood/protoc-gen-p6/issues
Successfully merging a pull request may close this issue.
当前的瓶颈、痛点
API 需求多了、组件需求多了后,人不够,需求支持的慢
举例:
feat: implement oss interface #556
5.11 提,7月25合并,不断完善周边建设中,java sdk 没空写
目前只写了几个 proto,没时间开发
用户新需求
分析
分析上述公式,我们就能意识到,现在的设计不 scale:
我们希望支持更多 API(API 数↑)、支持并集 API (API 方法数↑)、集成不同云服务(组件数↑),但是人没有变多。
以 notify API 为例:有 4个 API, 每个 API 有2个方法,每个 API 要对接 3个服务(阿里云/ aws/私有云服务)。
所以,本提案的设计目标是研发提效,即使需求变多、人没变多时,依然能快速响应需求
High level design
实现一套工具链,减少工作量。
开发者写完 proto 文件后,敲一个
make proto
命令,就能自动生成除了组件外的代码、文档,让开发者只需要花时间写组件SDK 相关代码:
API 插件相关代码:
组件相关代码:
layotto runtime 相关代码:
pkg/runtime/config.go
pkg/runtime/options.go
自动生成的东西不需要 review。优化掉上述公式中的“PR Review 时间”
写组件时,不用写测试
每类 API 公用同一份测试用例,每次写组件不需要写测试
写组件时,自动联调
自动化可移植性测试,每次写组件不用手动联调,让 CI 自动联调
详细设计
SDK:
文档:
// TODO
The text was updated successfully, but these errors were encountered: