go-workwx icon indicating copy to clipboard operation
go-workwx copied to clipboard

Add makefile for generate codes

Open liut opened this issue 3 years ago • 5 comments

为了方便尽快依据文档定义生成相应的模型,建立一个Makefile,提供两个生成指令

make errcodegen
make sdkcodegen
make sdkcodegen MDs=apis.md
make sdkcodegen MDs='apis.md oa.md'

liut avatar Mar 10 '22 10:03 liut

hmmmm go generate 就够了?

xen0n avatar Mar 10 '22 11:03 xen0n

这个事情我觉得可能改下 README 在最底下加个二次开发相关说明就好了。。因为我前两年维护不力,导致大量人适配了自己场景不往上游(此处)推,这个虽然别人也可能没时间做“合理”、“正确”设计,不能怪别人,但提供帮助我认为是合适的。提不提交上游毕竟是他们的事。

xen0n avatar Mar 10 '22 11:03 xen0n

hmmmm go generate 就够了?

真是尴尬,才发现有个 dummy_for_generate.go 🤪。 那除了README里需要提到之外,是不是有必要加个 make generate?

liut avatar Mar 11 '22 06:03 liut

这个事情我觉得可能改下 README 在最底下加个二次开发相关说明就好了。。因为我前两年维护不力,导致大量人适配了自己场景不往上游(此处)推,这个虽然别人也可能没时间做“合理”、“正确”设计,不能怪别人,但提供帮助我认为是合适的。提不提交上游毕竟是他们的事。

我不太了解这个库的历史,早年我也有写过零散的一些企业微信以及其他一些类似接口(tencent, lark 都不是很完整,凑合着用)。但你这个由markdown倒推model是个非常棒的思路,我以为应该继续维护。

liut avatar Mar 11 '22 07:03 liut

go generate 是无条件运行生成代码,但是这样用makefile生成指令有两个好处

  1. GOMOD允许临时打开或关闭GO111MODULE (make cmd GOMOD=on|off),以及变更不同的go版本(make cmd GO=/usr/local/go1.18rc1/bin/go);
  2. 只处理一个或几个指定的文件(make sdkcodegen MDs=apis.md) 还有个额外的好处,errorcode和model区分开

liut avatar Mar 11 '22 07:03 liut