March 31, 2019

Translate Using Go Modules

原文链接 Go Blog Using Go Modules 介绍 Go 1.11 和 Go1.12 版本中已经包含了对 Golang依赖管理modules的基本支持, 它将会使依赖的版本信息更加明确,并且更容易管理。 这篇文章将会对其进行一个入门级别的基本操作介绍。 下篇文章将会介绍如何releasing modules. 一个Module 将会是一系列 Go packages 的合集。在go packages的目录树的根目录,会有一个 go.mod 文件。go.mode 文件中定义了 module的 module path。 这个module path 将会用来作为package导入的根路径。每个依赖包都会提供一个 module path和 Semantic Version。 在 Go 1.11 中, 如果在 ${GOPATH}/src 目录以外,执行go command, 如果当前目录或者父目录存在 go.mode文件,则将会启用 go module。 如果在 ${GOPATH}/src 下, 为了保证兼容性,go command 将会仍然运行在 旧的 GOPATH的模式下, 即使找到了相应的 go.mod 文件。 详细可以查看 go command文档 从 Go1.13 开始, Go Module 模式将会在所有情景下被默认启用。 本文 将会从 平时的 Go 开发中,最常见的使用 modules 的以下几种操作进行介绍: - 创建一个新的 module - 添加依赖 - 升级依赖 - 增加一个新的主版本依赖 - 更新依赖的主版本。 - 移除无用的依赖 Read more

March 10, 2019

如何更好的打印日志

打印时机 如何做到在写代码的时候,对将来输出的日志做到心中有丘壑。 如果当前 子方法的 Action 含义 和 父方法含义基本相同, 则 子方法出现错误时, 父方法调用其时,不需要再次打印 如果要打印重要方法的调用和返回,调用的日志, 在 该方法进入时打印调用, 在方法返回时打印返回。 info日志级别 always 0 , important 3, debug 5, verbose 7, more 9 Error 发生error 时,使用error级别 发生error 时, 要附带打印当前的上下文数据信息,以便排查。 Always: 对系统产生影响的,且无法恢复的,出现问题需要核对的, 例如删除, 日志级别 为 0 记录重要主行为的发生和结束的结果。 日子级别为0.例如,开始做某个任务,及最终的执行结果。 Important 对系统产生影响的, 例如增加,更新的动作,日志级别3, 也可以酌情为0. Debug 即将对系统产生影响的,例如 删除之前的提示 Deleting, 日志级别可定为 5。 系统的主要逻辑分支。 Verbose 打印相关执行过程中的上下文数据详情, 例如,http 请求过程中的, 请求内容, 响应结果。 打印执行过程中, 主要逻辑分支外的,非主要分支的方法的执行过程。 日志内容 将重要的动作放在开始,简短清晰。描述当前上下文的语句或者详细内容,放在语句后边。 例如 Read more

© Chengjingtao 2017