掘友等级
获得徽章 0
#青训营 x 字节后端训练营# 项目开发思路和流程。首先需要确定需求,可以利用需求用例、ER图等。项目过程中的分层结构:数据层主要是数据model,对外部数据的增删改查;逻辑层主要是业务entity,用于处理核心业务逻辑输出;视图层主要是视图view,用于处理和外部的交互逻辑。
#青训营 x 字节后端训练营# 测试是避免事故的最后一道屏障。每次新代码都需要进行单元测试,从而保证质量。单元测试在一定程度上能提高效率。单元测试规则:1、所有测试文件以_test.go结尾;2、func TestXxx(*testing.T);3、初始化逻辑放到TestMain中。
#青训营 x 字节后端训练营# 测试是避免事故的最后一道屏障。每次新代码都需要进行单元测试,从而保证质量。单元测试在一定程度上能提高效率。单元测试规则:1、所有测试文件以_test.go结尾;2、func TestXxx(*testing.T);3、初始化逻辑放到TestMain中。
#青训营 x 字节后端训练营# 测试事故举例:1、营销配置错误,导致非预期用户享受权益;2、用户提现,幂等失效,短时间可以多次提现;3、代码逻辑错误,广告位被占,无法出广告;代码指针使用事务,导致APP不可用。
#青训营 x 字节后端训练营# 协程阻塞问题。通过计数器解决,开启协程+1;执行结束-1;主协程阻塞直到计数器为0。go依赖管理演进,go module依赖管理方案。
#青训营 x 字节后端训练营# 并发安全Lock。对变量执行2000次+1操作,5个协程并发执行,对比加锁和不加锁。未加锁输出8382是错误结果,加锁输出10000是正确结果。不加锁会有概率引发并发安全问题,导致输出结果错误。
#青训营 x 字节后端训练营# go语言可以充分发挥多核优势,高效运行。协程:用户态,轻量级线程,栈KB级别。线程:内核态,线程跑多个协程,栈MB级别。函数前加go,就能为其创建协程。提倡通过通信共享内存,而不是通过共享内存而实现通信。两个协程协作:A子协程发送0-9数字,B子协程计算输入数字的平方,主协程输出最后的平方数。带缓冲的Channel能解决生产和消费速度不齐的问题。
#青训营 x 字节后端训练营# 一般写代理代码,先写TCP echo server,发送什么返回什么,用于检测server代码写得对不对。认证阶段:1.读报文;2.methodSize;3.method;4.读到字段;5.构造包。
#青训营 x 字节后端训练营# SOCKS5代理。Client=>Socks5 Server(1.协商阶段),Socks5 Server=>Client(1.1通过协商),Client=>Socks5 Server(2.发送请求),Socks5 Server=>Host(2.1建立TCP连接),Host=>Socks5 Server(2.2返回响应),Socks5 Server=>Client(2.3返回状态),Client=>Socks5 Server(3.发送数据),Socks5 Server=>Host(3.1relay数据),Host=>Socks5 Server(3.2返响应结果),Socks5 Server=>Client(3.3响应结果)
#青训营 x 字节后端训练营# go语言实例学习。在线词典生成,生成代码由四部分组成,创建请求、设置请求头、发起请求、读取响应,输出是一连串的JSON数据,然后序列化JSON数据。(善用一些现成的数据格式转换工具)
下一页