Skip to content

Commit

Permalink
docs: 📝 add some new links
Browse files Browse the repository at this point in the history
  • Loading branch information
mehdihadeli committed Jun 8, 2023
1 parent 0b1d6e9 commit 4262860
Show file tree
Hide file tree
Showing 17 changed files with 64 additions and 9 deletions.
2 changes: 2 additions & 0 deletions docs/build-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
- [What does go build build? (go build vs. go install)](https://stackoverflow.com/questions/30612611/what-does-go-build-build-go-build-vs-go-install)
- [What does go build build ?](https://dave.cheney.net/2014/06/04/what-does-go-build-build)
- [How To Build and Install Go Programs](https://www.digitalocean.com/community/tutorials/how-to-build-and-install-go-programs)
- [go run vs go build vs go install](https://levelup.gitconnected.com/go-run-vs-go-build-vs-go-install-c7c0fd135cf9)
- [Package lists and patterns](https://pkg.go.dev/cmd/go#hdr-Package_lists_and_patterns)

## Libraries
- [cosmtrek/air](https://github.com/cosmtrek/air) - ☁️ Live reload for Go apps
4 changes: 2 additions & 2 deletions docs/caching.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
## Libraries
- [go-redis/redis](https://github.com/go-redis/redis) - Type-safe Redis client for Golang
- [eko/gocache](https://github.com/eko/gocache) - A complete Go cache library that brings you multiple ways of managing your caches
- [rueian/rueidis](https://github.com/rueian/rueidis) - A fast Golang Redis client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, RedisAI, RedisGears, etc.
- [redis/rueidis](https://github.com/redis/rueidis) - A fast Golang Redis client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, RedisAI, RedisGears, etc.
- [jellydator/ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics
- [alicebob/miniredis/](https://github.com/alicebob/miniredis/) - Pure Go Redis server for Go unittests
- [alicebob/miniredis/](https://github.com/alicebob/miniredis/) - Pure Go Redis server for Go unittests
8 changes: 8 additions & 0 deletions docs/concurrency/concurrency-vs-parallelism.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Concurrency Vs Parallelism

## Articles
- [Concurrency vs Parallelism](https://freecontent.manning.com/concurrency-vs-parallelism/)
- [Concurrency in Golang, Goroutines, and Channels Explained](https://levelup.gitconnected.com/concurrency-in-golang-goroutines-and-channels-explained-55ddb5e1881)
- [Difference between concurrency and parallelism with Golang code examples](https://levelup.gitconnected.com/difference-between-concurrency-and-parallelism-with-golang-code-examples-83f6b18b3adc)
- [How to Implement Concurrency and Parallelism in Go](https://levelup.gitconnected.com/how-to-implement-concurrency-and-parallelism-in-go-83c9c453dd2)
- [Go: Concurrency vs Parallelism](https://medium.com/codex/go-concurrency-vs-parallelism-c3fc9cec55c8)
5 changes: 5 additions & 0 deletions docs/concurrency/concurrency.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@
- [LeakProf: Featherlight In-Production Goroutine Leak Detection ](https://www.uber.com/en-IT/blog/leakprof-featherlight-in-production-goroutine-leak-detection/)
- [Writing Better Code With Go Concurrency Patterns](https://betterprogramming.pub/writing-better-code-with-go-concurrency-patterns-9bc5f9f73519)
- [Advanced Concurrency Patterns](https://www.karanpratapsingh.com/courses/go/advanced-concurrency-patterns)
- [Difference between concurrency and parallelism with Golang code examples](https://levelup.gitconnected.com/difference-between-concurrency-and-parallelism-with-golang-code-examples-83f6b18b3adc)
- [How to Implement Concurrency and Parallelism in Go](https://levelup.gitconnected.com/how-to-implement-concurrency-and-parallelism-in-go-83c9c453dd2)
- [A Deep Dive Into Go Concurrency](https://betterprogramming.pub/deep-dive-into-concurrency-of-go-93002344d37b)
- [Concurrency in Golang, Goroutines, and Channels Explained](https://levelup.gitconnected.com/concurrency-in-golang-goroutines-and-channels-explained-55ddb5e1881)
- [Concurrency vs Parallelism](https://freecontent.manning.com/concurrency-vs-parallelism/)

## 📺 Videos
- [Concurrency in Go - Steve Hook - Playlist](https://www.youtube.com/playlist?list=PLsc-VaxfZl4do3Etp_xQ0aQBoC-x5BIgJ)
Expand Down
10 changes: 9 additions & 1 deletion docs/dependency-injection.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
- [Dependency injection in GO](https://golangforall.com/en/post/dependency-injection.html)
- [Dependency Injection in Go - Rafael Vargas](https://medium.com/avenue-tech/dependency-injection-in-go-35293ef7b6)
- [Dependency Injection with Go Fx](https://articles.wesionary.team/dependency-injection-with-go-fx-b698a6585cf0)
- [Dependency Injection in Go using Fx](https://pmihaylov.com/dependency-injection-go-fx/)
- [Managing Shared Components in Go Microservices with Fx](https://pmihaylov.com/shared-components-go-microservices/)
- [Create Minimal App with Fx](https://uber-go.github.io/fx/get-started/minimal.html)


## Libraries
- [google/wire](https://github.com/google/wire) - Compile-time Dependency Injection for Go
- [uber-go/fx](https://github.com/uber-go/fx) - A dependency injection based application framework for Go.
Expand All @@ -17,6 +22,9 @@
- [goioc/di](https://github.com/goioc/di) - Simple and yet powerful Dependency Injection for Go
- [sarulabs/di](https://github.com/sarulabs/di) - Dependency injection container in go (golang)
- [AshkanAbd/go-di](https://github.com/AshkanAbd/go-di) - Scope based dependency injection for golang

## Samples
- [rafael-piovesan/go-rocket-ride](https://github.com/rafael-piovesan/go-rocket-ride)
- [dipeshhkc/Golang-Fx](https://github.com/dipeshhkc/Golang-Fx)
- [dipeshhkc/Golang-Fx](https://github.com/dipeshhkc/Golang-Fx)
- [preslavmihaylov/fxappexample/v2-fx-example](https://github.com/preslavmihaylov/fxappexample/tree/v2-fx-example)
- [preslavmihaylov/fxappexample/tree/v3-fx-modules](https://github.com/preslavmihaylov/fxappexample/tree/v3-fx-modules)
4 changes: 3 additions & 1 deletion docs/design-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## 📘 Resources
- [tmrts/go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms
- [bvwells/go-patterns](https://github.com/bvwells/go-patterns) - Design patterns for the Go programming language

## 📕 Articles
- [The Repository pattern: a painless way to simplify your Go service logic](https://threedots.tech/post/repository-pattern-in-go/)
- [The Repository pattern: a painless way to simplify your Go service logic](https://threedots.tech/post/repository-pattern-in-go/)

1 change: 1 addition & 0 deletions docs/elastic.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Elastic Search

## Articles
- [Integrating your Go service with ELK Series](https://pmihaylov.com/series-integrating-go-with-elk/)
- [How to implement Elasticsearch in Go](https://www.freecodecamp.org/news/go-elasticsearch/)

## Libraries
Expand Down
3 changes: 3 additions & 0 deletions docs/lint-formatters.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
- [Cleaner go code with golines](https://yolken.net/blog/cleaner-go-code-golines)
- [A Complete Guide to Linting Go Programs](https://freshman.tech/linting-golang/)
- [How to add a private linter to golangci-lint](https://golangci-lint.run/contributing/new-linters/#how-to-add-a-private-linter-to-golangci-lint)
- [Sort Go Imports](https://blog.devgenius.io/sort-go-imports-acb76224dfa7)

## Libraries
- [golangci/golangci-lint](https://github.com/golangci/golangci-lint) - Fast linters Runner for Go
- [mvdan/gofumpt](https://github.com/mvdan/gofumpt) - A stricter gofmt
Expand All @@ -17,6 +19,7 @@
- [TekWizely/pre-commit-golang](https://github.com/TekWizely/pre-commit-golang) - Pre-commit hooks for Golang with support for monorepos, the ability to pass arguments and environment variables to all hooks, and the ability to invoke custom go tools.
- [kisielk/errcheck](https://github.com/kisielk/errcheck) - errcheck checks that you checked errors.
- [dominikh/go-tools](https://github.com/dominikh/go-tools) - Staticcheck - The advanced Go linter

## Samples
- [Golden config for golangci-lint](https://gist.github.com/maratori/47a4d00457a92aa426dbd48a18776322)
- [golangci/example-plugin-linter](https://github.com/golangci/example-plugin-linter) - example linter that can be used as a plugin for github.com/golangci/golangci-lint
2 changes: 2 additions & 0 deletions docs/messaging/rabbitmq.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
- [wagslane/go-rabbitmq](https://github.com/wagslane/go-rabbitmq) - A wrapper of streadway/amqp that provides reconnection logic and sane defaults
- [gbeletti/rabbitmq](https://github.com/gbeletti/rabbitmq) - A simplification of the amqp lib to build a client in a service
- [michaelklishin/rabbit-hole](https://github.com/michaelklishin/rabbit-hole) - RabbitMQ HTTP API client in Go
- [samber/go-amqp-pubsub](https://github.com/samber/go-amqp-pubsub) - Fault tolerant Pub/Sub library for RabbitMQ

## Samples
- [rabbitmq/rabbitmq-tutorials](https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/go)
- [RabbitMQ Sample](https://gist.github.com/ribice/20951bd1c84d714ff2476465c0c0653f)
8 changes: 6 additions & 2 deletions docs/microservices.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
- [Micro In Action: Error Handling Across Service Boundaries](https://itnext.io/micro-in-action-error-handling-across-services-boundary-2f9f27821bd5)
- [Micro In Action, Part 1: Getting Started](https://itnext.io/micro-in-action-getting-started-a79916ae3cac)
- [Micro In Action, Part 2: An Ultimate Guide For Bootstrap](https://itnext.io/micro-in-action-part-2-71230f01d6fb)

## 📺 Videos
- [Building Microservices with Go - Nic Jackson - Playlist](https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_)
- [Golang Microservices: Project Layout and Domain Driven Design](https://www.youtube.com/watch?v=LUvid5TJ81Y)
Expand All @@ -30,6 +31,7 @@
- [Building gRPC Microservices in Go](https://tutorialedge.net/courses/go-grpc-services-course/)
- [Learn to build microservices: from code to K8s deployment in 60 minutes](https://www.youtube.com/watch?v=unRRnOfxa0s)
- [Building Microservices with the Go Kit Toolkit](https://www.youtube.com/watch?v=sjd2ePF3CuQ)

## 📦 Libraries
- [go-kit/kit](https://github.com/go-kit/kit) - A standard library for microservices.
- [asim/go-micro](https://github.com/asim/go-micro) - A pluggable Go framework for distributed systems development
Expand Down Expand Up @@ -73,7 +75,6 @@
- [hb-chen/micro-starter](https://github.com/hb-chen/micro-starter)
- [shijuvar/gokit-examples](https://github.com/shijuvar/gokit-examples) - Examples for building microservices with Go kit (gokit.io)
- [tinrab/spidey](https://github.com/tinrab/spidey) - Building Distributed Systems and Microservices in Go with NATS Streaming
- [ebosas/microservices](https://github.com/ebosas/microservices) - A microservices example in Go
- [xmlking/micro-starter-kit](https://github.com/xmlking/micro-starter-kit) - Cloud Native GoLang Microservices - gRPC, GraphQL
- [antklim/go-microservices](https://github.com/antklim/go-microservices) - Examples of microservices written in Go using different frameworks
- [buptmiao/microservice-app](https://github.com/buptmiao/microservice-app) - A microservices architecture app powered by golang.
Expand Down Expand Up @@ -106,4 +107,7 @@
- [jfeng45/servicetmpl](https://github.com/jfeng45/servicetmpl) - Microservice template project for Go and gRPC
- [jfeng45/order](https://github.com/jfeng45/order) - A Go Event Driven Microservice for Order Service
- [jxlwqq/blog-microservices](https://github.com/jxlwqq/blog-microservices) - A blog microservices written in Golang, which can be deployed in an Istio-enabled kubernetes cluster.
- [go-kratos/kratos-layout](https://github.com/go-kratos/kratos-layout) - Kratos Project Template
- [go-kratos/kratos-layout](https://github.com/go-kratos/kratos-layout) - Kratos Project Template
- [go-micro/demo](https://github.com/go-micro/demo) - A microservices demo using go-micro
- [GoogleCloudPlatform/microservices-demo](https://github.com/GoogleCloudPlatform/microservices-demo) - Sample cloud-first application with 10 microservices showcasing Kubernetes, Istio, and gRPC.
- [ThreeDotsLabs/go-event-driven](https://github.com/ThreeDotsLabs/go-event-driven)
3 changes: 2 additions & 1 deletion docs/naming-convention.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
## Articles
- [Package names](https://go.dev/blog/package-names)
- [Package names - Effective Go](https://go.dev/doc/effective_go#package-names)
- [Style guideline for Go packages](https://rakyll.org/style-packages/)
- [Style guideline for Go packages](https://rakyll.org/style-packages/)
- [9 Golang Name Conventions Gophers should follow!](https://blog.devgenius.io/golang-name-convention-gophers-should-follow-e4397fba5dce)
3 changes: 3 additions & 0 deletions docs/project-layout-structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 📘 Resources
- [Standard Go Project Layout](https://github.com/golang-standards/project-layout)
- [Package Oriented Design](https://github.com/ardanlabs/gotraining/tree/master/topics/go/design/packaging)

## 📕 Articles
- [Package Oriented Design](https://www.ardanlabs.com/blog/2017/02/package-oriented-design.html)
- [Go - Project Structure and Guidelines](https://dev.to/jinxankit/go-project-structure-and-guidelines-4ccm)
Expand Down Expand Up @@ -43,6 +44,8 @@
- [Go Program Anatomy (Go Basics #3)](https://www.youtube.com/watch?v=MSB8LXuUjFc)
- [Go Programming Package Oriented Design](https://www.youtube.com/watch?v=raWGeSom5bE)
## 🚀 Samples
- [golang-standards/project-layout](https://github.com/golang-standards/project-layout) - Standard Go Project Layout
- [evrone/go-clean-template](https://github.com/evrone/go-clean-template) - Clean Architecture template for Golang services
- [ruslantsyganok/clean_arcitecture_golang_example](https://github.com/ruslantsyganok/clean_arcitecture_golang_example) - Clean Architecture Golang Example (kinda)
- [selikapro/hexArchGoGRPC](https://github.com/selikapro/hexArchGoGRPC)
- [codebangkok/golang](https://github.com/codebangkok/golang)
Expand Down
1 change: 1 addition & 0 deletions docs/relational/orm.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
- [volatiletech/sqlboiler](https://github.com/volatiletech/sqlboiler) - Generate a Go ORM tailored to your database schema.
- [uptrace/bun](https://github.com/uptrace/bun) - SQL-first Golang ORM
- [go-jet/jet](https://github.com/go-jet/jet) - Type safe SQL builder with code generation and automatic query result data mapping
- [infobloxopen/protoc-gen-gorm](https://github.com/infobloxopen/protoc-gen-gorm) - A protobuf compiler plugin designed to generate GORM models and APIs for simple object persistence tasks.

## Samples
- [gmhafiz/golang-database-library-orm-example](https://github.com/gmhafiz/golang-database-library-orm-example) - Examples of using various popular database libraries and ORM in Go.
Expand Down
3 changes: 3 additions & 0 deletions docs/test.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@
- [Test names should be sentences](https://bitfieldconsulting.com/golang/test-names)
- [Test scripts in Go](https://bitfieldconsulting.com/golang/test-scripts)
- [Boosting your Kafka integration tests using Redpanda with Go](https://levelup.gitconnected.com/boosting-your-kafka-integration-tests-using-redpanda-with-go-247e4276c61d)
- [Mastering Concurrent Programming in Golang: Understanding and Handling Race Conditions](https://levelup.gitconnected.com/mastering-concurrent-programming-in-golang-understanding-and-handling-race-conditions-7501f4ccc394)
- [Data Race Detector](https://go.dev/doc/articles/race_detector)
- [Run tests with -race flag in GoLand](https://dev.to/s0xzwasd/run-tests-with-race-flag-in-goland-512j)

## 📺 Videos
- [Writing Microservice Integration Tests in Go (Finally) - GopherCon SG 2019](https://www.youtube.com/watch?v=5iVDYga9ts0)
Expand Down
11 changes: 10 additions & 1 deletion docs/tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,18 @@

## Resources
- [nikolaydubina/go-recipes](https://github.com/nikolaydubina/go-recipes) - Tools for Go projects
- [avelino/awesome-go](https://github.com/avelino/awesome-go)

## 📕 Articles
- [An Overview of Go's Tooling](https://www.alexedwards.net/blog/an-overview-of-go-tooling)
- [Manage Go tools via Go modules](https://marcofranssen.nl/manage-go-tools-via-go-modules)
- [How to use go run to manage tool dependencies](https://www.alexedwards.net/blog/using-go-run-to-manage-tool-dependencies)
- [Managing your Go tool versions with go.mod and a tools.go](https://www.jvt.me/posts/2022/06/15/go-tools-dependency-management/)

## Videos
- [Learning Golang: Versioning Tools as Dependencies using Go Modules](https://www.youtube.com/watch?v=g_5n0W27XcY)

## Libraries
- [ofabry/go-callvis](https://github.com/ofabry/go-callvis) - Visualize call graph of a Go program using Graphviz
- [ofabry/go-callvis](https://github.com/ofabry/go-callvis) - Visualize call graph of a Go program using
- [krzysztofreczek/go-structurizr](https://github.com/krzysztofreczek/go-structurizr) - A library for auto-generating C4 diagrams from Go applications
- [bufbuild/buf](https://github.com/bufbuild/buf) - A new way of working with Protocol Buffers.
4 changes: 3 additions & 1 deletion docs/utils.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@
- [iancoleman/strcase](https://github.com/iancoleman/strcase) - A golang package for converting to snake_case or CamelCase
- [gobeam/stringy](https://github.com/gobeam/stringy) - Convert string to camel case, snake case, kebab case / slugify, custom delimiter, pad string, tease string and many other functionalities with help of by Stringy package.
- [chanced/caps](https://github.com/chanced/caps) - a case conversion library for Go
- [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) - A powerful little TUI framework 🏗
- [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) - A powerful little TUI framework 🏗
- [pterm/pterm](https://github.com/pterm/pterm) - PTerm is a modern Go module to easily beautify console output.
- [jedib0t/go-pretty](https://github.com/jedib0t/go-pretty) - Table-writer and more in golang!
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ nav:
- Deadlock: concurrency/deadlock.md
- Select: concurrency/select.md
- Mutex: concurrency/mutex.md
- Concurrency Vs Parallelism: concurrency/concurrency-vs-parallelism.md
- Error Handling: error-handling.md
- Best Practices: best-practices.md
- File: file.md
Expand Down

0 comments on commit 4262860

Please sign in to comment.