Open 499689317 opened 2 years ago
22/09
09/01
Vscode配置拓展插件与开发工具 安装google Go插件 安装工具包:Go:install/Update Tool
注:Vscode导入工程项目时不要把整个workspace添加进来,会引发import错误,将工程项目单个添加到vscode中。
Vscode配置断点调试 运行与调试中选择需要调试的项目 在该项目下生成.vscode的launch.json文件,配置该文件
golang执行单个测试方法 go test -v xxx.go -test.run method
09/02
Gin.Context -> TContext
DataManager&HttpHeader TContext本身不继承context.Context,只是一个挂载了大量上下文的管理器 TContext中初始化当前操作的Operation对象 有一个UpdateCache???
Service:逻辑层
定义了操作对象内存数据的一系列逻辑方法
Model: 数据层
Auto中定义了操作model层Operation对象 定义了一系列操作数据的recordList指令,用做Commit同步数据
09/07
protobuff设置
安装:go install google.golang.org/protobuf/cmd/protoc-gen-go@latest 会默认安装到$GOPATH/bin目录下 生成Go Code:protoc -I=$SRC_DIR --go_out=$DST_DIR $SRC_DIR/*.proto
.proto文件声明可以被option注解,option可以是文件级别也可以在消息体内
option optimize_for SPEED|CODE_SIZE|LITE_RUNTIME 这3种配置分别生成的消息类文件在性能解析或文件大小上有差异,一般配置SPEED即可
option go_package “custompackage” 文件生成的Go Code都会在这个包下
Github公有库迁到私有库,或者拉取私有库需要另外添加git账号的personal access token到~/.netrc文件下
09/08
vscode在执行go test时会缓存之前的结果 在testTags设置项中 [“-v “,“-count=1”]可以每次都让vscode不执行之前的缓存结果
09/13
Stings.Split(“”,”,”)会返回一个包含一个空字符串的数组
09/14
开发分支更新 拉取开发分支最新代码:go get 仓库地址@分支名称
09/15
Golang错误处理时,可以将业务数据都初始化一个默认值,某些情况下,默认值可以替换部份的错误处理
09/19
09/20
错误处理 通过errors库或fmt标准库创建一个error errors.New(“string”) fmt.Errorf(“string: %+v”, “value”)
预定义error处理错误 var SomeThingError = errors.New(“Some thing is error”) 通过比较error与SomeThingError是否相等(err == SomeThingError)来做判断处理 弊端:预定义错误会在导出函数中返回,所以预定义错误本身也需要导出,增加维护成本
自定义错误 实现Error接口方法,通过判断错误类型来处理error,同样跟预定义错误一样,需要将错误类型暴露给外部,可以通过暴露判断错误的方法来解决。
09/27
struct组合
22/08
08/29
gvm管理golang工作区间
创建新文件夹 mkdir ~/Document/workspace
在workspace目录下执行 gvm pkgset create —local // 将当前GOPATH切换到workspace目录下 gvm pkgset use —local // 将当前GOPATH切换到当前gvm版本下 gvm pkgset use global 改变当前GOPATH路径
08/30
启动服务
本地docker启动redis与mysql environment分支下:
08/31
Viper配置管理库 Time.Sub方法:
Casual-server-lib
Git本地忽略特定文件或目录,与.gitignore不同,当文件被其他人更新后,还是会被拉取。使用.gitignore是最保险的方式 git update-index —assume-unchanged filename,执行忽略 git update-index —no-assume-unchanged filename,取消忽略 如: git update-index —assume-unchanged ./.gitignore git update-index —no-assume-unchanged ./.gitignore