Closed gaocegege-bot closed 5 years ago
https://github.com/google/graphd The Metaweb graph repository server, backend for Freebase https://developers.google.com/freebase/
https://github.com/golang/tools/tree/master/internal/lsp go 官方已经在做 language server 了 /w\ https://mattn.kaoriya.net/software/lang/go/20181217000056.htm
https://github.com/bradfitz/exp-httpclient Rethinking Go's HTTP client 有一些我在 go.ice 里的 httpclient 里可以解决 增加 type 对 encode/decode 更好的支持 cc @gaocegege (之前在公司已经实现了一个 ....
@at15 go.ice 做的不是说是自动生成 client 么
@gaocegege 说是这么说么 ... spec 该怎么弄我都还没想好 ... 虽然用 swagger 也是可以的 ... 但是我更想从go 的代码生成 ... 不过生成下面这种应该是很简单的 ...
func GetDogFoods(dogs []Dog) ([]Food, error) {
req := json.Marshal(dogs)
c.do(req)
foods := json.Umarshal(res)
return foods, nil
}
k8s 的 client 是生成的么?
k8s 是的,不过我觉得更值得参考的是 https://caicloud.github.io/nirvana/zh-hans/guides/client.html
k8s 的实现过于复杂。不知道目前针对 openapi 的研究如何了,能通过它间接支持 client gen 么,可以的话估计还能做到多语言支持
@gaocegege 好像主要逻辑是在 https://github.com/caicloud/nirvana/tree/master/utils 下, 扫代码然后生成 client, 还有一种更简单的方法, 直接要求生成器调用 spec 的代码然后直接用 reflect 连 go/ast
都不需要了 ... 我先写点 prototype 试试, openapi 好像什么都支持 https://github.com/OpenAPITools/openapi-generator 但不知道自定义程度如何 ...
另外我看到 nirvana 也支持生成 swagger 所以也可以生成 swagger 然后让 openapi/swagger 生成其他语言的 .... 我很讨厌把 spec 写在 yaml 里 ... 很容易就 out of sync 了 ...
嗯我觉得最 awesome 的方式就是根据代码/spec 定义的 API 产生 swagger,再借由 openapi 等等之类的产生 client/stub server
重复造轮子可能 bug 会不可控
https://github.com/go-internals-cn/go-internals
go-internals 本书是关于 Go 程序设计语言内部实现原理的阐释,当前正在进行中。
https://blog.golang.org/modules2019
Interested in Go modules? Learn what the Go team has planned for modules in 2019
https://github.com/kubernetes-sigs/kubebuilder and https://github.com/operator-framework difference? And controller runtime? @gaocegege
我都没用过,我是硬核手写的老师傅
他们都是简化 operator 开发的 framework 吧,差别大概就像 beego 和 gin 的区别?
https://github.com/gardener/gardener from SAP used to create kubernetes cluter https://kubernetes.io/blog/2018/05/17/gardener/
https://github.com/kyma-project/kyma also from SAP, wrapper on top of knative which is wrapper on top of istio
https://github.com/strapdata/elassandra Elassandra = Elasticsearch + Apache Cassandra ... saw it when looking at a k8s cassandra operator https://github.com/instaclustr/cassandra-operator
联合周报第 106 期开始投稿 :tada: