Go 进阶 · 分布式爬虫实战
郑建勋
Go 语言技术专家,《Go 语言底层原理剖析》作者
15839 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
Go 进阶 · 分布式爬虫实战
15
15
1.0x
00:00/00:00
登录|注册

35|未雨绸缪:怎样通过静态与动态代码扫描保证代码质量?

你好,我是郑建勋。
这节课让我们继续优化代码,让程序可配置化。然后通过静态与动态的代码扫描发现程序中存在的问题,让代码变得更加优雅。

micro 中间件

首先,让我们紧接上节课的 go-micro 框架,对代码进行优化,设置 go-micro 的中间件。如下,我们使用了 Go 函数闭包的特性,对请求进行了一层包装。中间件函数在接收到 GRPC 请求时,可以打印出请求的具体参数,方便我们排查问题。
func logWrapper(log *zap.Logger) server.HandlerWrapper {
return func(fn server.HandlerFunc) server.HandlerFunc {
return func(ctx context.Context, req server.Request, rsp interface{}) error {
log.Info("recieve request",
zap.String("method", req.Method()),
zap.String("Service", req.Service()),
zap.Reflect("request param:", req.Body()),
)
err := fn(ctx, req, rsp)
return err
}
}
}
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何通过静态与动态代码扫描来保证代码质量,并提供了全面的代码质量保障和优化方案。作者首先介绍了在Go语言中使用go-micro框架进行代码优化,并详细介绍了使用golangci-lint进行静态代码分析的安装、配置以及使用示例。此外,文章还介绍了动态扫描中的数据争用问题,并提供了示例代码和解决方案。最后,通过介绍Makefile文件的编写,展示了如何执行预先定义好的脚本,更快、更优雅地书写项目代码。整篇文章涵盖了静态与动态代码扫描工具的使用、数据争用问题和配置文件处理方法,为读者提供了全面的代码质量保障和优化方案。通过本文,读者可以了解如何利用静态与动态代码扫描工具来提高代码质量,以及如何在项目中应用这些工具进行代码优化。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • konyo
    跨度好大啊
    2023-02-03归属地:江苏
    1
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部