这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记
在第六次课中来自字节跳动的老师为我们耐心讲解了一个用go语言实现的笔记服务demo,在课后我尝试自己复现了一遍这个demo进行学习,这里简要记录一下学习经验与心得体会。
书接上回,我们讲到了postman及其安装方法,今天继续看其它的知识。
Git
简介
git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,最初目的是为了更好地管理Linux内核开发而设计。
我们可以通过git去拉取github上的代码仓库。例如,要拉取本项目,使用命令git clone https://github.com/cloudwego/kitex-examples命令即可。
安装
安装 Git
Ubuntu下只需要在终端输入sudo apt-get install git即可
Kitex
简介
kitex是字节跳动内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。
本项目主要分为两个微服务,即demonotes和demouser。
安装与使用
通过阅读 CloudWeGo 尝试安装并运行 Kitex 的示例代码
-
kitex 暂时没有针对 Windows 做支持,如果本地开发环境是 Windows 建议使用 WSL2
-
安装有问题检查PATH和GOPATH,通过输入
echo $PATH与echo $GOPATH检查。若没有正确配置,则在根目录下打开.bashrc文件,最后两行加入export GOPATH=~/go export PATH=$GOPATH/bin:$PATH然后重启或执行
source .bashrc激活变更即可
注:教程最后的client给出的是代码片段,需要放进main函数中并补全包。
package main
import (
"context"
"example/kitex_gen/api"
"example/kitex_gen/api/echo"
"log"
"time"
"github.com/cloudwego/kitex/client"
"github.com/cloudwego/kitex/client/callopt"
)
func main() {
c, err := echo.NewClient("example", client.WithHostPorts("0.0.0.0:8888"))
if err != nil {
log.Fatal(err)
}
req := &api.Request{Message: "my request"}
resp, err := c.Echo(context.Background(), req, callopt.WithRPCTimeout(3*time.Second))
if err != nil {
log.Fatal(err)
}
log.Println(resp)
}
Gorm
简介
GORM是Golang的数据库ORM操作库,对开发者比较友好,使用方便简单。主要是把struct类型和数据库表记录进行映射,操作数据库的时候不需要直接手写sql代码,
安装与使用
阅读 GORM Guides, 尝试运行 Gorm 的示例代码。
踩坑注意: 当通过 struct 更新时,GORM 只会更新非零字段。 如果您想确保指定字段被更新,你应该使用 Select 更新选定字段,或使用 map 来完成更新操作。
未完待续...