Skip to content

A collection of projects for learning the Go programming language while also learning about the implementation details of open-source technologies you likely already use.

jasonlai/go-learning-projects

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository contains a variety of projects intended for practicing the Go programming language. Each of these projects is intended to provide experience with Go, while also providing exposure to the implementation details of an interesting piece of technology you probably already use, such as Statsd, Memcache or Redis.

The intended way to use these projects is:

  1. Select one of the below projects.
  2. Read it's README.
  3. Do not look at the reference implementations.
  4. Take a stab at implementing it yourself.
  5. Take a look at the reference implementations.
  6. File issues if you have suggestions for improvements.

Caveat: these projects are absolutely not trying to be production grade solutions! These are learning projects, and I would never recommend that you replace Statsd with the output of the below Statsd project, etc.

Projects:

  1. Writing a Statsd Server in Go.
  2. Writing Redis in Go.
  3. Writing Memcached in Go.
  4. Writing a lexer/parser in Go.

Future project ideas:

  1. Writing a Redis server in Go.
  2. Writing a PostgreSQL server in Go.
  3. Consuming MySQL binlog in Go.
  4. Write a Dynamo inspired key-value store in Go.

About

A collection of projects for learning the Go programming language while also learning about the implementation details of open-source technologies you likely already use.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 92.4%
  • Python 7.6%