手把手带你写一个 Web 框架
叶剑峰
腾讯高级工程师,前滴滴技术专家
23524 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
特别放送 (1讲)
手把手带你写一个 Web 框架
15
15
1.0x
00:00/00:00
登录|注册

4 个示例,带你理解 Golang 代码最佳实践

你好,我是轩脉刃。
很多同学都有这样的困惑:为什么我用了框架,还是写不好业务代码?
其实,框架只是搭建了一个架构,它只能解决一项业务至多 20% 的问题,剩下 80% 的内容需要你在业务中填充业务代码,以此来实现各种各样的功能。而每个人又都有自己的编码风格和开发思路,所以就会有“写得好”和“写得不好”的区别了。
那么是否存在一种最佳实践,可以让所有人统一 Golang 代码的编写风格和思路呢?其实是有的,过去 2 年,我就一直在做这项工作。我不仅为部门制定了一套 Golang 代码最佳实践,还参与了公司级别的代码最佳实践的编写工作。我发现,代码最佳实践并不只是一项项的代码规范,用来教我们怎么写代码。更重要的是,它告诉了我们如何避免编写错误的代码,即在我们的脑海中建立起对错误代码清晰的认知。
所以今天,我不想重复列出 Golang 代码最佳实践的所有规范,而是会为你展示错误代码示例,它们都是 Golang 编码中最容易犯的,并且在演示完代码后,我会为你详细讲解代码中不符合最佳实践的地方,帮助你彻底掌握。
因此,希望你在看到错误代码时,先别急着下拉,而是能多留一些思考的时间,看看自己是否能发现这些问题。

示例一:获取单个用户数据

确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 数据库查询尽量使用预处理机制 2. 下层 error 要封装后再返回给上层 3. 全链路必须传递 context 保证超时 4. 在 for 循环中使用 goroutine 要注意“range 循环的指针副本问题” 5. 使用 defer 关键字来 recover panic 6. 对 slice 的操作进行加锁以保证线程安全 7. 使用 goroutine 池来控制并发的数量 8. IO操作需要先处理操作错误,再定义 defer 关闭行为 9. 配置初始化加载错误就直接 panic,将报错提前 10. 函数调用都要处理 error,不处理的要明确标识

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部