Author: Tencent Technology Engineering


Link: https://www.zhihu.com/question/22867411/answer/911161400


Source: Zhihu


Copyright belongs to the author. Commercial reprint please contact the author for authorization, non-commercial reprint please indicate the source.





Development tools

1) SQL2go used to convert SQL statements to golang struct. Use DDL statements. For example, to create a table: show create table XXX. I’m just going to paste in the output statement. Stming. Cn/tool/sql2go…

2) Toml2go is used to convert encoded TomL text to golang struct.xuri. me/toml-to-go/

Mholt.github. IO /curl-to-go/ curl-to-go/

4) Json2go is used to convert JSON text to struct.mholt.github. IO /json-to-go/

5) turn mysql ES tool at www.ischoolbar.com/EsParser/

6) The Golang template emulation tool should be considered before generics are supported. Github.com/cheekybits/…

7) Check the dependencies of a library, similar to the go list function github.com/KyleBanks/d…

8) a good file compression and decompression tool, integrated zip, tar and other functions, mainly cross-platform. Github.com/mholt/archi…

9) The go built-in command go List can be used to check the dependencies of a package. Go Vet can be used to check for code that does not conform to the Golang specification.

10) Hot compilation tools github.com/silenceper/…

11) Revive golang code quality testing tool github.com/mgechev/rev…

12)Go Callvis Golang code call link graph tool github.com/TrueFurby/g…

13)Realize development process improvement tools github.com/oxequa/real…

14)Gotests automatically generates test cases github.com/cweill/gote…

Two. Debugging tools

1) Perf proxy tool, support memory, CPU, stack view, and support flame map. Perf tool and go-Torch tool, quick location program problems. github.com/uber-archiv… github.com/google/gops

2) DLV remote debugging based on Goland + DLV can realize the ability of remote modulation. github.com/go-delve/de… Golang native support is provided, which is much simpler than GDB debugging.

3) Network proxy tool GoProxy proxy, support a variety of protocols, support SSH penetration and KCP protocol. github.com/snail007/go…

4) Packet capture tool The Go-sniffer tool is an extensible packet capture tool. You can develop a tool kit of user-defined protocols. Now only HTTP, mysql, redis, mongodb are supported. Based on this tool, we developed the packet capture of qAPP protocol. Github.com/40t/go-snif…

5) Reverse proxy tool to quickly open Intranet ports for external use. Ngrok enables external calls to ngrok.com/ github.com/inconshreve…

6) Configure the certificate to be generated from the root certificate to the service certificate in one click github.com/cloudflare/…

7) Free certificate acquisition tool Based on acME protocol, generated from letsENCRYPT free certificate, valid for 1 year, can be automatically renewed. Github.com/Neilpang/ac…

8) Develop environment management tools and build portable tools independently. Supports multiple virtual machine backends. Vagrant is often compared to Docker as desirable. Github.com/hashicorp/v…

9) The lightweight container scheduling tool Nomad can manage containers and traditional applications very easily, which is not too much simpler than K8s. github.com/hashicorp/n…

10) Sensitive information and key management tools github.com/hashicorp/v…

11) Highly configurable HTTP forwarding tool, based on ETCD configuration. Github.com/gojek/weave…

12) process monitoring tool supervisor www.jianshu.com/p/39b476e80…

13) Based on procFile process management tool. Simpler than Supervisor. Github.com/ddollar/for…

14) Debugging proxy tool based on HTTP, HTTPS, websocket, rich configuration functions. Online education nohost Web debugging tool, based on this development. github.com/avwo/whistl…

15) Distributed scheduling tool github.com/shunfei/cro… Github.com/ouqiang/goc…

16) Automated operation and Maintenance platform Gaia github.com/gaia-pipeli…

Network tools


4. Commonly used websites

Go encyclopedia: awesome-go.com/ json parsing: www.json.cn/ export IP: ipinfo. IO/redis command: doc.redisfans.com/ ES command home: www.elastic.co/guide/cn/el… UrlEncode: tool.chinaz.com/Tools/urlen… Base64: tool.oschina.net/encrypt?typ… Guid: www.guidgen.com/ Common tool: www.ofmonkey.com/

Golang common library

Log github.com/Sirupsen/lo… github.com/uber-go/zap

Configure log libraries compatible with JSON, TOML, YAML, and HCL formats github.com/spf13/viper

Store the mysql github.com/go-xorm/xor… Es github.com/elastic/ela… Redis github.com/gomodule/re… Mongo github.com/mongodb/mon… Kafka github.com/Shopify/sar…

Data structure github.com/emirpasic/g…

The command line github.com/spf13/cobra

Framework github.com/grpc/grpc-g… Github.com/gin-gonic/g…

Concurrent github.com/Jeffail/tun… Github.com/benmanns/go… Now we are using the frame, although the star is not much, but it is really good, of course, can be better used. github.com/rafaeldias/…

The utility defines a practical decision class and validation logic for the structure, avoiding complex business profile code. github.com/asaskevich/… Github.com/bytedance/g…

Protobuf file dynamic parsing interface, can achieve reflection – related capabilities. Github.com/jhump/proto…

Expression engine tools github.com/Knetic/gova… Github.com/google/cel-…

String handling github.com/huandu/xstr…

Github.com/uber-go/rat ratelimit tools… Blog.csdn.net/chenchongg/… Github.com/juju/rateli…

In addition to frequency limits, consider other things like QPS, error rate, etc. github.com/afex/hystri… Github.com/sony/gobrea…

Form github.com/chenjiandon…

Tail Tool library github.com/hpcloud/tag…