36、测试的艺术:依赖注入、表格测试与压力测试

你好,我是郑建勋。 对代码的功能与逻辑进行测试是项目开发中非常重要的一部分。这节课,我们一起来看几个在Go中进行代码测试的核心技术:单元测试、压力测试与基准测试。它们共同保证了代码的准确性、可靠性与高效性。 单元测试单元测试又叫做模块测试,它会对程序...

Go进阶-分布式爬虫实战

37、工具背后的工具:从代码覆盖率到模糊测试

你好,我是郑建勋。 开始今天的学习之前,我想先问你一个问题,你认为什么样的代码才是高质量的? 代码覆盖率,也就是有效代码的比例为我们提供了一种重要的衡量维度。 代码覆盖率指的是,在测试时被执行的源代码占全部源代码的比例。测试代码覆盖率可以衡量软件的质...

Go进阶-分布式爬虫实战

38、高级调试:怎样利用Delve调试复杂的程序问题

你好,我是郑建勋。 工欲善其事,必先利其器。这节课,我们来看看怎么合理地使用调试器让开发事半功倍。调试器能够控制应用程序的执行,它可以让程序在特定的位置暂停并观察当前的状态,还能够控制单步执行代码和指令,以便观察程序的执行分支。 当我们谈到调试器,一...

Go进阶-分布式爬虫实战

39、性能分析利器:深入pprof与trace工具

你好,我是郑建勋。 这节课,我们来学习分析Go程序的利器:pprof和trace。 pprof及其使用方法先来看pprof。pprof用于对指标或特征的分析(Profiling)。借助pprof,我们能够定位程序中的错误(内存泄漏、race 冲突、协...

Go进阶-分布式爬虫实战

40、资源调度:深入内存管理与垃圾回收

你好,我是郑建勋。 程序的快速运行离不开内存这个重要的资源,存储在内存里的数据可以比磁盘等介质更快地被CPU访问。但是内存是有限的,当多个进程共用内存空间时更是如此。因此,合理安排、组织、管理、释放内存是构建高效程序的基础。 现代高级语言一般都为我们...

Go进阶-分布式爬虫实战

41、线上综合案例:节约线上千台容器的性能分析实战

你好,我是郑建勋。 当我们对Go程序进行性能分析时,一般想到的方式是使用pprof提供的一系列工具分析CPU火焰图、内存占用情况等。 诚然,通过分析CPU耗时最多的流程,设法对CPU耗时最多的函数进行优化,毫无疑问能够改善程序整体的状况。然而,优化了...

Go进阶-分布式爬虫实战
156789