Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 2.09 KB

week3.md

File metadata and controls

44 lines (35 loc) · 2.09 KB

一、应用实战是王道

1.【GROUP I】

1.1 作业如下:

  • 在第一周接收请求作业基础上,要求如下:
    • 将接收到请求相关的业务日志异步方式写入文件
    • 接收系统关闭指令,并可以做到平滑关闭

1.2作业目标:

  • 协程应用
  • 思考如何平滑重启

2.【GROUP II】

2.1在前两周作业基础知识之上,要求如下:

  • 将之前写过的文件方法补充单测
  • 自行调研如何统计单测覆盖率

2.2作业目标:

  • 了解单测并养成单测习惯

3.【GROUP III】

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函数,有哪些相同之处&不同之处?执行顺序又如何?

三、数据结go不可少 【非必选】

https://leetcode.com/problems/container-with-most-water/

  • 要求:go语言提交且ACCEPT