封装
文章平均质量分 78
想搞艺术的程序员
IT 是一门top艺术
展开
-
Go http handler统一响应&异常处理
背景在web开发中,一般会写如下方法, 处理http的请求和响应结果:// 处理hello请求的handlerfunc HelloHandler(w http.ResponseWriter, req *http.Request) { name := req.URL.Query().Get("name") if name == "" { // name 必填判断 w.Write([]byte("name is required")) w.WriteHeader(http.StatusBadR原创 2021-11-22 13:06:19 · 2342 阅读 · 0 评论 -
Go 日志组件封装
背景Go目前流行多个日志组件:logrus、zap、zerolog、seelog,他们有各自的优点,但是使用方式存在差异, 如何屏蔽这些差异,对外提供统一的接口,减少对具体的日志组件依赖,从而方便后续组件替换?对此,我们可以增加一层防腐层,定义一套统一的日志接口,业务代码不直接依赖具体的日志实现,而是依赖抽象接口,这样就可以将具体的实现进行隔离,业务代码就不会包含具体日志组件相关的代码,当日志组件需要替换时,只要做一层适配,实现约定好的日志接口方法,就可以无缝进行切换日志组件。方案定义日志接原创 2021-10-28 12:44:49 · 1185 阅读 · 0 评论