推荐三个实用的 Go 开发工具,2024年最新Golang开发需要学什么

58 阅读3分钟

作为程序员的我们也一样,除了我们的傍身武器 Ctrl C + V 之外,还要不停的补充我们的武器库。不仅要把 Ctrl C + V 用的高级,更要用的恰到好处。

今天介绍三款小工具,分别可以将 jsonyamltable 转成 Go 的 struct。下次再碰到这样的转换场景,再也不用皱眉挠头了,一键轻松搞定。

前两个直接在线转换,最后一个需要安装一个库,但也很方便。

json-to-go

地址: mholt.github.io/json-to-go/

在这里插入图片描述

输入:

[

{

"input_index": 0,

"candidate_index": 0,

"delivery_line_1": "1 N Rosedale St",

"components": {

"primary_number": "1",

"street_predirection": "N",

"street_name": "Rosedale",

"street_suffix": "St",

"city_name": "Baltimore",

"state_abbreviation": "MD"

}

}

]

输出:

type AutoGenerated []struct {

InputIndex int json:"input_index"

CandidateIndex int json:"candidate_index"

DeliveryLine1 string json:"delivery_line_1"

Components struct {

PrimaryNumber string json:"primary_number"

StreetPredirection string json:"street_predirection"

StreetName string json:"street_name"

StreetSuffix string json:"street_suffix"

CityName string json:"city_name"

StateAbbreviation string json:"state_abbreviation"

} json:"components"

}

yaml-to-go

地址: zhwt.github.io/yaml-to-go/

在这里插入图片描述

输入:

image: golang:latest

before_script:

  • mkdir -p GOPATH/src/GOPATH/src/(dirname $REPO_NAME)

  • ln -svf CIPROJECTDIRCI_PROJECT_DIR GOPATH/src/$REPO_NAME

  • cd GOPATH/src/GOPATH/src/REPO_NAME

stages:

  • test

  • build

  • deploy

format:

stage: test

script:

  • go fmt $(go list ./... | grep -v /vendor/)

  • go vet $(go list ./... | grep -v /vendor/)

  • go test -race $(go list ./... | grep -v /vendor/)

输出:

type AutoGenerated struct {

Image string yaml:"image"

BeforeScript []string yaml:"before_script"

Stages []string yaml:"stages"

Format struct {

Stage string yaml:"stage"

Script []string yaml:"script"

} yaml:"format"

}

table-to-go

地址 github.com/gohouse/con…

假设有这样一张表:

CREATE TABLE prefix_user (

Id int(11) NOT NULL AUTO_INCREMENT,

Email varchar(32) NOT NULL DEFAULT '' COMMENT '邮箱',

Password varchar(32) NOT NULL DEFAULT '' COMMENT '密码',

CreatedAt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (Id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'

使用方式分两种,分别是命令行调用和写 Go 代码:

命令行调用

1、下载对应平台的可执行文件, 下载地址:github.com/gohouse/con…

2、命令行执行:

./table2struct-linux.v0.0.3.bin -file model.go -dsn xxx -table user

3、参数说明:

-dsn string 数据库dsn配置

-enableJsonTag bool 是否添加json的tag

-file string 保存路径

-packageName string 包名

-prefix string 表前缀

-realNameMethod string 结构体对应的表名

-table string 要迁移的表

-tagKey string tag的key

Go 代码调用

安装库:

go get github.com/gohouse/converter

代码:

package main

import (

"fmt"

"github.com/gohouse/converter"

)

func main() {

// 初始化

t2t := converter.NewTable2Struct()

// 个性化配置

t2t.Config(&converter.T2tConfig{

// 如果字段首字母本来就是大写, 就不添加tag, 默认false添加, true不添加

RmTagIfUcFirsted: false,

// tag的字段名字是否转换为小写, 如果本身有大写字母的话, 默认false不转

TagToLower: false,

// 字段首字母大写的同时, 是否要把其他字母转换为小写,默认false不转换

img img img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取