21|自动化(上):DRY,如何自动化一切重复性劳动?
叶剑峰
该思维导图由 AI 生成,仅供参考
你好,我是轩脉刃。
不知道你有没有听过这种说法,优秀程序员应该有三大美德:懒惰、急躁和傲慢,这句话是 Perl 语言的发明者 Larry Wall 说的。其中懒惰这一点指的就是,程序员为了懒惰,不重复做同样的事情,会思考是否能把一切重复性的劳动自动化(don’t repeat yourself)。
而框架开发到这里,我们也需要思考,有哪些重复性劳动可以自动化么?
从第十章到现在我们一直在说,框架核心是服务提供者,在开发具体应用时,一定会有很多需求要创建各种各样的服务,毕竟“一切皆服务”;而每次创建服务的时候,我们都需要至少编写三个文件,服务接口、服务提供者、服务实例。如果能自动生成三个文件,提供一个“自动化创建服务的工具”,应该能节省不少的操作。
说到创建工具,我们经常需要为了一个事情而创建一个命令行工具,而每次创建命令行工具,也都需要创建固定的 Command.go 文件,其中有固定的 Command 结构,这些代码我们能不能偷个懒,“自动化创建命令行工具”呢?
另外之前我们做过几次中间件的迁移,先将源码拷贝复制,再修改对应的 Gin 路径,这个操作也是颇为繁琐的。那么,我们是否可以写一个“自动化中间件迁移工具”,一个命令自动复制和替换呢?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何利用命令行交互和模板创建自动化工具,以减少重复性劳动。作者强调了优秀程序员应具备的“懒惰”美德,即思考如何将重复性劳动自动化。文章详细介绍了通过cobra框架创建命令行工具,以及使用模板和交互实现自动化服务创建的过程。重点解释了交互式命令行工具的实现方式,以及如何使用模板创建文件并填充内容。通过这些自动化工具的实现,读者可以更高效地进行服务创建、命令行工具创建和中间件迁移,从而节省开发时间。此外,文章还介绍了自动化中间件迁移工具的实现逻辑,为读者提供了实用的技术指导。整体而言,本文深入浅出地介绍了如何利用命令行工具和模板创建自动化工具,为读者提供了实用的技术指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- zzq大佬, 在 framework/command/middleware.go 文件中缺少了 默认: 同中间件名称。 if folder == "" {folder = name}
作者回复: 感谢,github已经更新,也合并到hade的master上了
2021-12-01 - kkxue课程设计的好棒2021-11-053
- qinsi中间件也要拷贝代码吗...是否可以安装以后在go.mod里replace呢?2021-11-0511
- taoistgo-git 配置http代理: res_url := "https://github.com/gin-contrib/" + repo + ".git" fmt.Println("下载中间件 gin-contrib:", res_url) //自定义 http proxy proxy_url, _ := url.Parse("http://127.0.0.1:7890") customHttp := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxy_url), }, } client.InstallProtocol("https", githttp.NewClient(customHttp)) _, err := git.PlainClone(path.Join(middlewarePath, repo), false, &git.CloneOptions{ URL: res_url, Progress: os.Stdout, })2024-01-20归属地:山东
收起评论