Go语言入门-工程实践 | 青训营笔记

160 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记,笔记的内容是关于Go语言工程实践的内容的。

1.语言进阶:

go语言可以并发运行,充分发挥多核优势。

go语言有goroutine协程,运行在内核态,栈KB级别,而线程运行在用户态,栈MB级别。

CSP:提倡通过通信共享内存而不是通过共享内存实现通信。

channel管道:有缓冲和无缓冲的管道可以使两个goroutine之间更好的进行交流。

Lock:可以保证并发执行时的安全。

Waitgroup:对计数器进行加法,每执行完一个goroutine后对计数器-1,到0时结束main函数。

2.依赖管理:

环境变量gopath的管理;

govendor的环境变量管理;

以上两种环境变量的管理均存在弊端,因此使用go module对依赖包进行管理。

依赖管理的三要素:go.mod配置文件,描述依赖; 中心仓库管理依赖库Proxy; 本地工具 go get/mod。

3.测试

1)单元测试

单元测试包括输入,测试单元,输出以及校对,单元的概念比较广,涉及接口,函数,模块等;用最后的校对来保证代码的功能与我们的预期相符,一方面可以保证质量,另一方面可以提高效率。

单元测试可以测试覆盖率和依赖关系,防止运行时出错。

2)Mock测试

mock测试可以测试打桩测试,判断预期输出和实际输出。

3)基准测试

基准测试可以测试出具体每个操作所消耗的时间,对不同的方案进行对比,更好地提升程序运行时的效率。

4.项目实践

项目的时间首先应该描述需求,列出应该实现的功能。划出需求的用例和E-R图。

用组件可Repository来实现项目的需求,同时又service和router来保证程序运行时的正确率。