1、青训营课程笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,今日主要学习了依赖管理管理过程、单元测试、Mock 测试和基准测试以及最后运用go搭建建议可回帖网页。
1.1依赖管理
工程项目不可能基于编码0~1进行搭建,一般需要依赖库,go的依赖管理从gopath>go vendor>go module,其中gopath无法实现package的多版本控制,go vendor无法控制版本会冲突,进而出现了go module
1.2测试
单元测试一般覆盖率;50%~60%较高可达80%;测试分支相互独立、全面覆盖;单元颗粒足够小。而基准测试则优化了代码,需对当前代码分析、内置测试框架可进行基准测试。
1.3项目实践
目的:1.展示话题和回帖 | 2.仅仅是本地web | 3.数据用文件储存。
情况:课程中一直没找全源码导致一直卡在web框架搭建部分,于是自己去找资料学习并总结了关于简易web搭建的方法。
首先我们需要监听某端口建立服务:
func main() {
// 监听某端口建立服务
server, err := net.Listen("tcp", "0.0.0.0:1515")
if err != nil {
}
println("正在运行...")
这一步需要把端口建立起来这边就用1515.
然后我们需要循环接受客户端,并且第一步要先接受客户端:
if client, err := server.Accept(); err == nil {
此处逻辑部分的协程:
// 逻辑部分 协程
go func(client net.Conn) {
// 接收客户端的数据
var b = make([]byte, 1024)
for {
num, err := client.Read(b)
print(string(b[0:num]))
if err != nil || num < 1024 {
break
}
}
之后需要发送数据给客户端:
_, err := client.Write([]byte("HTTP/1.1 200 OK\r\nContent-Type: text/html;charset=utf-8\r\nServer: Hello/0.1\r\n\r\nHello World!<br>你好,世界!"))
if err != nil {
return
}
这里只进行了文字的发送内容简单、操作便捷。
最后就剩下关闭client的socket
err = client.Close()
if err != nil {
return
}
这样我们就可以实现一个简单的发送文字的web客户端了,需要注意的是在编译结束后运行会提示网络使用的提醒,记得点击同意。在运行结束后去到浏览器中输入我们上面的网址(127.0.0.1:1515/)就可以访问网页了,网页内容就是发送:你好,世界!Hello World!如下图:
这时候回到goland中可以看到信息反馈到goland里面了~(ps:熬到2点多把笔记整理出来好困啊啊啊啊)