GO语言笔记服务项目(2)|青训营笔记

195 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第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 $PATHecho $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 来完成更新操作。


未完待续...

参考文档