3
头图

Original link: Recommend a few high-quality open source projects in the Go direction that can be written on your resume (requires a

Preface

Hello, everyone, my name is asong . Recently, some readers have always asked me if there are any Go , which can be written on the resume. I really can’t remember it for a while. I spent two days researching and recommending a few for those with or without work experience. Open source projects, let's take a look at them together.

No work experience

For those who are still in school, in addition to knowing the necessary basic knowledge, they should also have 1-2 projects to take out. It is difficult to pass the resume level with only basics and no practice. For students, it is simple The crud still needs to be mastered. Next, I recommend several web projects with relatively complete documentation. After getting started, you can develop in-depth on this basis.

bbs-go

bbs-go is an Go language. The backend uses a technology stack:

There is also a supporting front-end project, based on Vue , the function is relatively comprehensive, through this project you can understand the design ideas of developing an open source community, for a novice to get started web development is still very friendly, but this project needs to pay to watch the build The document, but the code is open source, you can download the source code and study it yourself. The code content is not much and concise, and you should be able to master it for a few days.

Project address: https://gitee.com/mlogclub/bbs-go

Gin-vue-admin

This project is well-known in the field of Go Gin-vue-admin is a vue and gin . It integrates jwt authentication, dynamic routing, dynamic menu, casbin authentication, and forms. Generator, code generator and other functions, provide a variety of sample files, but also complete document tutorials and video tutorials. I personally think this project is a must-see project for beginners. After doing it again, the basic crud will be mastered. Among them, the functions of sharding long pass and code generator are quite useful for reference. You can learn more about it. This project does not need to be introduced too much, the document is more detailed, and it can reach the level of getting started by hand.

Project address: https://github.com/flipped-aurora/gin-vue-admin

rpcx

Now companies are transforming from a single application to a RPC inseparable from the application of the 061af7702cf399 framework. The current service governance type RPC framework includes dubbo-go , go-zero , go-kit etc., and the cross-language call type RPC framework has Thrift , gRPC , Hessian , Finagle , rpcx , etc., in terms of understanding for a white RPC important principle, so you can start rpcx frame start, rpcx is a distributed Go language RPC framework that supports Zookepper , etcd , consul multiple service discovery methods and multiple service routing methods. It is currently one of the best performing RPC frameworks. rpcx is relatively complete and has a dedicated team to maintain. It is the best choice for novices to get started.

Project address: https://github.com/smallnest/rpcx

Document address: https://doc.rpcx.io/

go-kit

You can pay attention to the go-kit project. Based on go-kit you can quickly build robust, reliable, and maintainable microservices. Go-kit provides support for consul, etcd, zookeeper, eureka and other registries. There is a big guy who has open sourced it. A go-kit practice tutorial:

Project address: https://github.com/go-kit/kit

Have work experience

Friends who already have work experience don’t need to look at some basic projects and principles. They can pay more attention to project architecture design, performance optimization, service governance, etc., and think more about how to maintain a project. This is actually not the case. You don't need to look at the open source framework, pay more attention to the framework of your project team, find out the advantages and disadvantages to optimize, and reflect your own value more. If the framework of your own project team is relatively watery, then here are a few excellent open source projects for you to learn from.

zinx

zinx TCP long connection server framework developed based on the Go language, which can be applied in the game field or other long connection fields; we can learn zinx framework, he has complete video tutorials and documents, through which we can fully understand How to design a lightweight concurrent server, and then zinx , and make some optimizations, can't it be blown on the resume? ! !

Project address: https://github.com/aceld/zinx

Document address: https://www.kancloud.cn/aceld/zinx

Video address: https://www.bilibili.com/video/av71067087

go-zero

For most of my friends, they started crud soon as they entered the company. The web and rpc frameworks used by the company have been built and used directly. There are few opportunities to participate in how to design a web framework and rpc framework. In the interview, but the interviewer still loves to examine these things, so we usually need to pay more attention to how to design a high-performance enterprise framework. go-zero is an enterprise framework, from which we can learn design worthy of reference; go-zero integration the web and rpc framework is in 20 on the future of open source a good micro-services framework, due go-zero project is quite large, with the purpose to suggest that you learn, for example, I would like to know the micro-service registration and discovery of the principle of realization , The principle and implementation of the adaptive load balancing algorithm, so that we can look up the source code with a purpose, summarize the learning document and summarize it to form our own things, write it on the resume and blow water, it is not fragrant! ! !

go-zero is not very complete, and the learning of some knowledge points needs to be summarized and refined by everyone.

Project address: https://github.com/zeromicro/go-zero/blob/master/readme-cn.md

go-nsq

NSQ is a distributed real-time messaging platform based on the Go language, which can be used for real-time messaging services in large-scale systems, and can process hundreds of millions of messages every day. Its design goal is to run decentralized services in a distributed environment Provide a strong infrastructure. It’s not necessary to say more about his power. The reason I recommend this project is to let everyone learn nsq is designed. It is simple to use, but how to design is the key point. If you are asked to design a high-performance real-time in the interview Message platform, do you know how to design it?

Project address: https://github.com/nsqio/go-nsq

Learning address: https://cloud.tencent.com/developer/article/1735996

Tidb

Tidb is a representative product in the NewSQL PingCAP . It is compatible with important features such as the MySQL 5.7 protocol and the MySQL ecology. At present, many companies are using Tidb to solve the problem of relational database, elastic expansion and global distribution. Tidb uses the Go language to develop the SQL layer. The distributed storage engine below uses the rust language. Using Tidb has the following advantages:

  • Support flexible expansion and contraction;
  • Support SQL, compatible with most MySQL syntax, and can directly replace MySQL in most scenarios;
  • High availability is supported by default, and data repair and failover are automatically performed;
  • Support ACID transactions;

If you are familiar with Tidb , you can write it on your resume and talk to the interviewer! ! !

Project address: https://github.com/pingcap/tidb

Document address: https://docs.pingcap.com/zh/tidb/stable

kubernetes

When it comes to cloud native, you can’t mention kubernetes . Now that all companies are going to cloud native, then each of us must understand kubernetes . Even if you are a business developer, kubernetes would not be too embarrassed to go out for an interview. This is An essential skill. Kubernetes is a portable and extensible open source platform for managing containerized workloads and services, which can facilitate declarative configuration and automation. Kubernetes has a huge and fast-growing ecosystem; Kubernetes is Go language, we can start learning from the source code, cooperate with the official documentation, carefully study, find a kubernetes related work soon took off, and now many do kubernetes direction All of my friends are also transferred from business development, my friends don’t hurry up to learn! ! !

Project address: https://github.com/kubernetes/kubernetes

Official website document: https://kubernetes.io/docs/home/

Chinese document: https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/

It is recommended to look at the English document, as some parts of the Chinese document are difficult to understand when translated.

Prometheus

Prometheus is Cloud Native Computing Foundation , which is a system and service monitoring system. It collects metrics from the configured target at a given time interval, evaluates regular expressions, displays the results, and can trigger an alarm when a specified condition is observed. Now companies basically use Prometheus for monitoring and reporting, but do you know how it works? Friends who have already worked should not just stay in the use stage. We still have to spend some time to study the core principles. You can also talk to the interviewer in the interview.

Project address: https://github.com/prometheus/prometheus

Document address: https://prometheus.io/blog/

Summarize

In this article, we recommend a few high-quality open source projects for friends with or without work experience. Some projects have been widely used in enterprises. The implementation principles need to be studied deeply, and we can truly understand why in order to talk to the interviewer. And talk.

, this is the end of this article, my name is asong , see you in the next issue.

created a reader exchange group, welcome you all to join the group and learn and communicate together. Ways to join the group: follow the official account to obtain. For more learning materials, please go to the public account to receive.

Welcome to pay attention to the public account: [Golang DreamWorks]


asong
605 声望906 粉丝