1.1 作业如下:
- 在第一周接收请求作业基础上,要求如下:
- 将接收到请求相关的业务日志异步方式写入文件
- 接收系统关闭指令,并可以做到平滑关闭
1.2作业目标:
- 协程应用
- 思考如何平滑重启
2.1在前两周作业基础知识之上,要求如下:
- 将之前写过的文件方法补充单测
- 自行调研如何统计单测覆盖率
2.2作业目标:
- 了解单测并养成单测习惯
3.1使用snow框架编写服务A和服务B,要求如下:
- 服务A为模拟网关,服务B为服务A的下游服务
- 服务A通过不同的请求方式请求服务B,至少包含以下几种请求方式:get、post非json方式、post的json方式,可以使用snow-core中的httputil
- 服务B对服务A的请求参数做校验,兼容上游服务同一个字段用不同类型传递,比如mobile字段,用数字(17310196126)和用字符串("17310196126")
- 服务A对服务B返回的消息必须做code值校验,比如0或者200为正常返回,同样要兼容下游服务对code字段返回用不同类型,比如code=200是float32,而code="405"为string
- 将上面两个需要兼容的情况,尽可能抽象成公用方法
- 服务A对服务B的访问要可以通过trace-id进行串联和排查
- 可用同一个服务的不同接口模拟服务A和服务B
- 至少将一个接口应用snow doc生成接口文档
- 服务A和服务B之间调用要有签名验证(自行设计)
3.2作业目标:
- 深入应用接口调用
- 要考虑弱类型语言和强类型语言的交互,考虑多种请求参数和返回参数不同类型的兼容方案,因为php向go迁移的过程中,go服务的上游or下游必定会有php服务
- 了解如何应用生成文档
思考:main函数和init函数,有哪些相同之处&不同之处?执行顺序又如何?
https://leetcode.com/problems/container-with-most-water/
- 要求:go语言提交且ACCEPT