22、超时和重试:如何提升高并发重要请求的成功率

你好,我是徐逸。 首先预祝你春节假期快乐。这节课是春节前最后一次更新,1月28日到2月4日期间我们会暂时停止更新,2月5日再恢复更新。 在这一章前面的课程内容里,咱们一同深入学习了如何从编码以及单元测试这两个关键层面,来全力保障服务上线之后的稳定性。...

Go服务开发高手课

21、单元测试:如何mock外部依赖并提升覆盖率

你好,我是徐逸。 通过前面课程的学习,想必你已经掌握了从编码角度规避代码陷阱的方法,也了解了如何合理地打印日志与返回错误码。然而,即便我们在编码过程中十分谨慎,也无法完全杜绝代码出现问题的可能性。幸运的是,我们能够借助测试手段提前发现潜在的代码问题。...

Go服务开发高手课

20、日志和错误码:如何快速定位线上问题

你好,我是徐逸。 通过上节课的学习,相信你已经掌握了Go 代码中潜藏的四类陷阱。然而,除了编写健壮的代码来预防线上问题之外。当出现线上问题时,能够快速定位和修复问题同样至关重要。而日志和错误码,是我们快速定位线上问题的得力工具。可以说,日志记录的质量...

Go服务开发高手课

19、代码陷阱:最易导致程序出错的四类代码坑

你好,我是徐逸。 在多年 Golang 编程实践里,我发现不少 Go 研发人员,因未透彻理解部分 Go 语言特性,导致在一些编程场景中不慎陷入代码陷阱。这些陷阱不仅影响程序的正确性与稳定性,还可能让我们耗费大量时间调试修复。 因此,在今天的课程里,我...

Go服务开发高手课

18、函数设计:重复编写相似函数,怎样实现逻辑复用

你好,我是徐逸。 上节课我们学习了如何使用设计模式,来提升我们代码的可维护性。不过除了设计模式之外,Go 语言本身所提供的反射和泛型特性,同样是我们手中的得力工具。借助这些特性,我们能够达成逻辑复用的目标,避免重复编写那些功能相近的函数,让代码更加简...

Go服务开发高手课

17、设计原则和模式:功能持续迭代,如何减少改动

你好,我是徐逸。 上节课我们学习了如何构建一个规范的目录,不过对于一个快速迭代的项目,即便有了清晰的目录结构,但如果写代码不讲究一定的方法,后续修改和扩展也会非常困难。针对写代码过程中面临的一些场景,业界早就总结归纳出了一些通用解决方案,而这些场景和...

Go服务开发高手课