Improve Go Roadmap (#7399)

* Go Basics.

* Go Advanced.

* 102,103,104,105,106

* Everything Else.
pull/7404/head
Vedansh 1 week ago committed by GitHub
parent fae4899a2c
commit 63004475aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      src/data/roadmaps/golang/content/100-go-basics/101-variables.md
  2. 4
      src/data/roadmaps/golang/content/100-go-basics/102-data-types.md
  3. 2
      src/data/roadmaps/golang/content/100-go-basics/103-for-loop.md
  4. 5
      src/data/roadmaps/golang/content/100-go-basics/107-conditionals.md
  5. 11
      src/data/roadmaps/golang/content/100-go-basics/108-functions.md
  6. 7
      src/data/roadmaps/golang/content/100-go-basics/109-packages.md
  7. 2
      src/data/roadmaps/golang/content/100-go-basics/110-type-casting.md
  8. 2
      src/data/roadmaps/golang/content/100-go-basics/111-type-inference.md
  9. 2
      src/data/roadmaps/golang/content/100-go-basics/index.md
  10. 9
      src/data/roadmaps/golang/content/101-go-advanced/100-go-modules.md
  11. 2
      src/data/roadmaps/golang/content/101-go-advanced/101-working-with-json.md
  12. 8
      src/data/roadmaps/golang/content/101-go-advanced/102-types-and-type-assertions.md
  13. 2
      src/data/roadmaps/golang/content/101-go-advanced/104-context.md
  14. 5
      src/data/roadmaps/golang/content/101-go-advanced/105-goroutines.md
  15. 2
      src/data/roadmaps/golang/content/101-go-advanced/107-buffer.md
  16. 3
      src/data/roadmaps/golang/content/101-go-advanced/109-mutex.md
  17. 8
      src/data/roadmaps/golang/content/101-go-advanced/110-scheduler.md
  18. 2
      src/data/roadmaps/golang/content/102-go-building-clis/100-cobra.md
  19. 8
      src/data/roadmaps/golang/content/102-go-building-clis/101-urfave-cli.md
  20. 4
      src/data/roadmaps/golang/content/103-go-orms/index.md
  21. 2
      src/data/roadmaps/golang/content/104-go-web-frameworks/100-beego.md
  22. 2
      src/data/roadmaps/golang/content/104-go-web-frameworks/102-revel.md
  23. 4
      src/data/roadmaps/golang/content/104-go-web-frameworks/103-echo.md
  24. 4
      src/data/roadmaps/golang/content/104-go-web-frameworks/104-gorilla.md
  25. 4
      src/data/roadmaps/golang/content/104-go-web-frameworks/105-gofiber.md
  26. 4
      src/data/roadmaps/golang/content/104-go-web-frameworks/106-buffalo.md
  27. 2
      src/data/roadmaps/golang/content/105-go-logging/100-zerolog.md
  28. 2
      src/data/roadmaps/golang/content/105-go-logging/101-zap.md
  29. 4
      src/data/roadmaps/golang/content/105-go-logging/102-log-slog.md
  30. 5
      src/data/roadmaps/golang/content/106-go-realtime-communication/100-melody.md
  31. 4
      src/data/roadmaps/golang/content/106-go-realtime-communication/101-centrifugo.md
  32. 1
      src/data/roadmaps/golang/content/106-go-realtime-communication/index.md
  33. 2
      src/data/roadmaps/golang/content/107-go-api-clients/100-rest/100-heimdall.md
  34. 2
      src/data/roadmaps/golang/content/107-go-api-clients/100-rest/101-grequests.md
  35. 2
      src/data/roadmaps/golang/content/107-go-api-clients/101-graphql/100-graphql-go.md
  36. 2
      src/data/roadmaps/golang/content/107-go-api-clients/101-graphql/101-gqlgen.md
  37. 7
      src/data/roadmaps/golang/content/107-go-api-clients/101-graphql/index.md
  38. 2
      src/data/roadmaps/golang/content/108-go-testing-your-apps.md
  39. 4
      src/data/roadmaps/golang/content/109-go-microservices/101-rpcx.md
  40. 4
      src/data/roadmaps/golang/content/109-go-microservices/103-micro.md
  41. 6
      src/data/roadmaps/golang/content/109-go-microservices/104-go-zero.md
  42. 2
      src/data/roadmaps/golang/content/109-go-microservices/105-protocol-buffers.md
  43. 2
      src/data/roadmaps/golang/content/109-go-microservices/106-grpc-go.md
  44. 4
      src/data/roadmaps/golang/content/109-go-microservices/107-grpc-gateway.md
  45. 6
      src/data/roadmaps/golang/content/109-go-microservices/108-twirp.md
  46. 2
      src/data/roadmaps/golang/content/109-go-microservices/index.md

@ -1,6 +1,6 @@
# Variables in Go
Variable is the name given to a memory location to store a value of a specific [type](https://golangbot.com/types/). Go provides multiple ways to declare and use variables.
Variable is the name given to a memory location to store a value of a specific type. Go provides multiple ways to declare and use variables.
Visit the following resources to learn more:

@ -2,10 +2,8 @@
Go is a statically typed programming language, which means each variable has a type defined at first and can only hold values with that type. There are two categories of types in Go: basics types and composite types.
To learn more about types in Go, visit these resources :
Visit the following resources to learn more:
- [@article@Basic data types](https://www.w3schools.com/go/go_data_types.php)
- [@official@Tour of Go: types](https://go.dev/tour/basics/11)
- [@article@Go types with examples](https://golangbyexample.com/all-data-types-in-golang-with-examples/)
- [@article@Data Types](https://www.w3schools.com/go/go_data_types.php)

@ -11,4 +11,4 @@ Visit the following resources to learn more:
- [@official@For Loop in Golang](https://go.dev/tour/flowcontrol/1)
- [@official@Effective Go: For loop](https://go.dev/doc/effective_go#for)
- [@article@Go by Example: For loop](https://gobyexample.com/for)
- [@article@5 basic for loop patterns](https://yourbasic.org/golang/for-loop/)
- [@article@5 Basic for Loop Patterns](https://yourbasic.org/golang/for-loop/)

@ -9,7 +9,6 @@ Conditional statements are used to run code only if a certain condition is true.
Visit the following resources to learn more:
- [@official@Effective Go: `if` statement](https://go.dev/doc/effective_go#if)
- [@article@Basic conditional patterns](https://yourbasic.org/golang/if-else-statement)
- [@article@Go by Example: If-Else](https://gobyexample.com/if-else)
- [@article@Golang programs If-Else statement](https://www.golangprograms.com/golang-if-else-statements.html)
- [@article@Golang programs `switch` case](https://www.golangprograms.com/golang-switch-case-statements.html)
- [@article@Golang If-Else Statements](https://www.golangprograms.com/golang-if-else-statements.html)
- [@article@Golang Switch Case Programs](https://www.golangprograms.com/golang-switch-case-statements.html)

@ -1,14 +1,9 @@
# Functions
Discover how functions work in Go, the list of resources below will cover:
- How to define and call functions in Go?
- Named returns in Go?
- Handle multiple return types.
- Different function types in Go.
A function is a block of code that performs a specific task. It's a reusable unit of code that can be called from other parts of your program. Functions help you organize your code, make it more modular, and improve readability.
Visit the following resources to learn more:
- [@article@Go by Example: Functions](https://gobyexample.com/functions)
- [@article@Functions in go](https://www.golangprograms.com/go-language/functions.html)
- [@official@Effective Go: Functions](https://go.dev/doc/effective_go#functions)
- [@article@Go by Example: Functions](https://gobyexample.com/functions)
- [@article@Functions in Go](https://www.golangprograms.com/go-language/functions.html)

@ -4,8 +4,7 @@ Packages are the most powerful part of the Go language. The purpose of a package
Visit the following resources to learn more:
- [@official@Go Packages Explorer](https://pkg.go.dev/)
- [@official@Standard library](https://pkg.go.dev/std)
- [@article@How to create a package in Go](https://www.golang-book.com/books/intro/11)
- [@official@How to manage external dependencies in Go](https://go.dev/doc/modules/managing-dependencies)
- [@article@Go Packages explorer](https://pkg.go.dev/)
- [@article@Standard library](https://pkg.go.dev/std)
- [@article@Go Packages](https://www.programiz.com/golang/packages)
- [@official@How to Manage External Dependencies in Go](https://go.dev/doc/modules/managing-dependencies)

@ -1,6 +1,6 @@
# Type Casting
Go doesn't support automatic type conversion, but it allows type casting, which is the process of explicitly changing the variable type. To learn more about typecasting, visit these resources :
Go doesn't support automatic type conversion, but it allows type casting, which is the process of explicitly changing the variable type.
Visit the following resources to learn more:

@ -4,5 +4,5 @@ Type inference gives go the capability to detect the type of a value without bei
Visit the following resources to learn more:
- [@article@Go Variables: Type Inference](https://www.callicoder.com/golang-variables-zero-values-type-inference/#type-inference)
- [@official@Tour of Go: Type Inference](https://go.dev/tour/basics/14)
- [@article@Go Variables: Type Inference](https://www.callicoder.com/golang-variables-zero-values-type-inference/#type-inference)

@ -4,6 +4,6 @@ Learn the common concepts of Go like variables, loops, conditional statements, f
Visit the following resources to learn more:
- [@official@Official Go Tutorial](https://go.dev/doc/tutorial/)
- [@official@Go Tutorial](https://go.dev/doc/tutorial/)
- [@article@W3 Schools Go Tutorial](https://www.w3schools.com/go/index.php)
- [@feed@Explore top posts about Golang](https://app.daily.dev/tags/golang?ref=roadmapsh)

@ -2,15 +2,10 @@
Go modules are a group of related packages that are versioned and distributed together. They specify the requirements of our project, list all the required dependencies, and help us keep track of the specific versions of installed dependencies.
Modules are identified by a module path that is declared in the first line of the go.mod file in our project.
Visit the following resources to learn more:
- [@official@Go Modules](https://go.dev/blog/using-go-modules)
- [@video@Go Modules](https://www.youtube.com/watch?v=9cV1KESTJRc)
- [@article@DigitalOcean: How to use Go Modules](https://www.digitalocean.com/community/tutorials/how-to-use-go-modules)
- [@video@Go Modules Explained in 5 Minutes (by Golang Dojo on YouTube)](https://youtu.be/7xSxIwWJ9R4)
- [@official@How to create a module in Go](https://go.dev/doc/tutorial/create-module)
- [@official@How to use modules in Go](https://go.dev/blog/using-go-modules)
- [@article@How to modify existing projects to use Go modules](https://jfrog.com/blog/converting-projects-for-go-modules/)
- [@video@Go Modules](https://www.youtube.com/watch?v=9cV1KESTJRc)
- [@video@Go Modules Explained in 5 Minutes](https://youtu.be/7xSxIwWJ9R4)
- [@feed@Explore top posts about Golang](https://app.daily.dev/tags/golang?ref=roadmapsh)

@ -7,4 +7,4 @@ Visit the following resources to learn more:
- [@official@JSON](https://go.dev/blog/json)
- [@article@Guide to JSON in Golang](https://www.sohamkamani.com/golang/json/)
- [@article@JSON to GO](https://mholt.github.io/json-to-go/)
- [@article@Comprehensive Guide to using JSON in Go](https://betterstack.com/community/guides/scaling-go/json-in-go/)
- [@article@Comprehensive Guide to using JSON in Go](https://betterstack.com/community/guides/scaling-go/json-in-go/)

@ -1,10 +1,8 @@
# Types and type assertions
Types in Golang specify the data type that a valid Go variable can hold. Golang has four categories of Types including Basic, Aggregate, Reference, and Interface Types
Type assertions in Golang provide access to the exact type of variable of an interface.
Types in Golang specify the data type that a valid Go variable can hold. Golang has four categories of Types including Basic, Aggregate, Reference, and Interface Types. Type assertions in Golang provide access to the exact type of variable of an interface.
Visit the following resources to learn more:
- [@official@Types Assertions ](https://go.dev/tour/methods/15)
- [@video@Go Syntax - Type Assertions ](https://youtube.com/watch?v=vtGbi9bGr3s)
- [@official@Types Assertions](https://go.dev/tour/methods/15)
- [@video@Go Syntax - Type Assertions](https://youtube.com/watch?v=vtGbi9bGr3s)

@ -4,7 +4,7 @@ The `context` package provides a standard way to solve the problem of managing t
Visit the following resources to learn more:
- [@article@Go Context](https://pkg.go.dev/context)
- [@official@Go Context](https://pkg.go.dev/context)
- [@article@Go by Example: Context](https://gobyexample.com/context)
- [@article@Digital Ocean: How to Use Contexts in Go](https://www.digitalocean.com/community/tutorials/how-to-use-contexts-in-go)
- [@video@Context in Go](https://www.youtube.com/watch?v=LSzR0VEraWw)

@ -1,8 +1,6 @@
# Goroutines
Goroutines allow us to write concurrent programs in Go. Things like web servers handling thousands of requests or a website rendering new pages while also concurrently making network requests are a few example of concurrency.
In Go, each of these concurrent tasks are called `Goroutines`.
Goroutines allow us to write concurrent programs in Go. Things like web servers handling thousands of requests or a website rendering new pages while also concurrently making network requests are a few example of concurrency. In Go, each of these concurrent tasks are called `Goroutines`.
Visit the following resources to learn more:
@ -11,5 +9,4 @@ Visit the following resources to learn more:
- [@video@GoRoutines](https://www.youtube.com/watch?v=LvgVSSpwND8)
- [@video@Understanding Concurrency](https://www.youtube.com/watch?v=V-0ifUKCkBI)
- [@article@Go by Example: Goroutines](https://gobyexample.com/goroutines)
- [@video@Golang Goroutine Basics You MUST Learn! (by Golang Dojo on YouTube)](https://youtu.be/oHIbeTmmTaA)
- [@feed@Explore top posts about Golang](https://app.daily.dev/tags/golang?ref=roadmapsh)

@ -4,6 +4,6 @@ The `buffer` belongs to the byte package of the Go language, and we can use thes
Visit the following resources to learn more:
- [@article@Buffer Examples](https://pkg.go.dev/bytes#example-Buffer)
- [@official@Buffer Examples](https://pkg.go.dev/bytes#example-Buffer)
- [@article@Buffer](https://www.educba.com/golang-buffer/)
- [@video@Buffers in Golang](https://www.youtube.com/watch?v=NoDRq6Twkts)

@ -1,7 +1,8 @@
# Mutex
Go allows us to run code concurrently using goroutines. However, when concurrent processes access the same piece of data, it can lead to [race conditions](https://www.sohamkamani.com/golang/data-races/). Mutexes are data structures provided by the [sync](https://pkg.go.dev/sync/) package. They can help us place a lock on different sections of data so that only one goroutine can access it at a time.
Go allows us to run code concurrently using goroutines. However, when concurrent processes access the same piece of data, it can lead to race conditions. Mutexes are data structures provided by the sync package. They can help us place a lock on different sections of data so that only one goroutine can access it at a time.
Visit the following resources to learn more:
- [@article@Using a Mutex in Go with Examples](https://www.sohamkamani.com/golang/mutex/)
- [@article@Sync Package](https://pkg.go.dev/sync/)

@ -1,12 +1,10 @@
# Go Scheduler
Go Scheduler allows us to understand more deeply about how Golang works internally. In terms of logical processors,
cores, threads, pool cache, context switching etc. The Go scheduler is part of the Go runtime, and the Go runtime
is built into your application
Go Scheduler allows us to understand more deeply about how Golang works internally. In terms of logical processors, cores, threads, pool cache, context switching etc. The Go scheduler is part of the Go runtime, and the Go runtime is built into your application.
Visit the following resources to learn more:
- [@article@OS Scheduler](https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html)
- [@article@Go Scheduler](https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html)
- [@article@OS Scheduler - 1](https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html)
- [@article@Go Scheduler - 2](https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html)
- [@article@Illustrated Tales of Go Runtime Scheduler](https://medium.com/@ankur_anand/illustrated-tales-of-go-runtime-scheduler-74809ef6d19b)
- [@video@Go scheduler: Implementing language with lightweight concurrency](https://www.youtube.com/watch?v=-K11rY57K7k&ab_channel=Hydra)

@ -4,7 +4,7 @@ Cobra is a library for creating powerful modern CLI applications.
Visit the following resources to learn more:
- [@opensource@Cobra Github Repo](https://github.com/spf13/cobra)
- [@opensource@Cobra Github](https://github.com/spf13/cobra)
- [@official@Cobra Website](https://cobra.dev/)
- [@article@Cobra Package Documentation](https://pkg.go.dev/github.com/spf13/cobra)
- [@video@How to write beautiful Golang CLI](https://www.youtube.com/watch?v=SSRIn5DAmyw)

@ -1,11 +1,11 @@
# Urfave cli
# Urfave CLI
Urfave cli is a simple, fast, and fun package for building command line apps in Go.
Urfave CLI is a simple, fast, and fun package for building command line apps in Go.
Visit the following resources to learn more:
- [@opensource@Urfave cli Github Repo](https://github.com/urfave/cli)
- [@article@Urfave cli Website](https://cli.urfave.org/)
- [@opensource@Urfave CLI](https://github.com/urfave/cli)
- [@article@Urfave Website](https://cli.urfave.org/)
- [@article@How to Build cli in Go](https://blog.hackajob.co/how-to-build-cli-in-go/)
- [@article@Building CLI using urfave cli](https://zerokspot.com/weblog/2021/01/25/building-a-cli-using-urfave-cli/)
- [@feed@Explore top posts about CLI](https://app.daily.dev/tags/cli?ref=roadmapsh)

@ -1,5 +1,3 @@
# ORMs
Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between type systems using object-oriented programming languages. This creates, in effect, a "virtual object database", hence a layer of abstraction, that can be used from within the programming language.
Most common ORM library in Go is [GORM](https://gorm.io/).
Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between type systems using object-oriented programming languages. This creates, in effect, a "virtual object database", hence a layer of abstraction, that can be used from within the programming language. Most common ORM library in Go is GORM.

@ -4,4 +4,4 @@ Beego is used for rapid development of enterprise application in Go, including R
Visit the following resources to learn more:
- [@opensource@Github Repository](https://github.com/beego/beego)
- [@opensource@Beego/Beego](https://github.com/beego/beego)

@ -4,5 +4,5 @@ Revel organizes endpoints into Controllers. They provide easy data binding and f
Visit the following resources to learn more:
- [@article@Revel](https://revel.github.io/tutorial/index.html)
- [@official@Revel](https://revel.github.io/tutorial/index.html)
- [@article@Revel Packages](https://pkg.go.dev/github.com/revel/revel)

@ -4,5 +4,5 @@ Echo is a performance-focused, extensible, open-source Go web application framew
Visit the following resources to learn more:
- [@opensource@Github Repository](https://github.com/labstack/echo)
- [@article@Official Website](https://echo.labstack.com/)
- [@opensource@Echo](https://github.com/labstack/echo)
- [@official@Echo Website](https://echo.labstack.com/)

@ -4,5 +4,5 @@ Gorilla is a web toolkit for the Go programming language that provides useful, c
Visit the following resources to learn more:
- [@opensource@Github Repository](https://github.com/gorilla)
- [@article@Official Website](https://www.gorillatoolkit.org/)
- [@opensource@Gorilla](https://github.com/gorilla)
- [@official@Gorilla Toolkit](https://www.gorillatoolkit.org/)

@ -4,5 +4,5 @@ Go Fiber is an Express-inspired framework for Golang. Go Fiber is a web framewor
Visit the following resources to learn more:
- [@opensource@Github Repository](https://github.com/gofiber/fiber)
- [@article@Official Website Docs](https://docs.gofiber.io/)
- [@opensource@Fiber](https://github.com/gofiber/fiber)
- [@official@Official Docs](https://docs.gofiber.io/)

@ -4,5 +4,5 @@ Buffalo helps you to generate a web project that already has everything from fro
Visit the following resources to learn more:
- [@opensource@Github Repository](https://github.com/gobuffalo/buffalo)
- [@article@Official Website Docs](https://gobuffalo.io/)
- [@opensource@Gobuffalo](https://github.com/gobuffalo/buffalo)
- [@official@Official Docs](https://gobuffalo.io/)

@ -6,4 +6,4 @@ Zerolog's API is designed to provide both a great developer experience and stunn
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/rs/zerolog)
- [@opensource@Zerolog](https://github.com/rs/zerolog)

@ -4,4 +4,4 @@ Blazing fast, structured, leveled logging in Go.
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/uber-go/zap)
- [@opensource@Zap](https://github.com/uber-go/zap)

@ -4,8 +4,8 @@ The `log` and `log/slog` (since go 1.21) packages are the standard logging packa
Visit the following resources to learn more:
- [@article@Official Documentation: log](https://pkg.go.dev/log)
- [@article@Official Documentation: log/slog](https://pkg.go.dev/log/slog) `(since go 1.21)`
- [@official@Documentation: log](https://pkg.go.dev/log)
- [@official@Documentation: slog](https://pkg.go.dev/log/slog)
- [@official@Go Blog: Structured Logging with slog](https://go.dev/blog/slog)
- [@article@Go by Example: Logging](https://gobyexample.com/logging)
- [@feed@Explore top posts about Logging](https://app.daily.dev/tags/logging?ref=roadmapsh)

@ -1,7 +1,8 @@
# Melody
Melody is websocket framework based on [github.com/gorilla/websocket](https://github.com/gorilla/websocket) that abstracts away the tedious parts of handling websockets. It gets out of your way so you can write real-time apps.
Melody is websocket framework based on gorilla/websocket that abstracts away the tedious parts of handling websockets. It gets out of your way so you can write real-time apps.
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/olahol/melody)
- [@opensource@Melody](https://github.com/olahol/melody)
- [@opensource@websocket](https://github.com/gorilla/websocket)

@ -4,5 +4,5 @@ Centrifugo is an open-source scalable real-time messaging server. Centrifugo can
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/centrifugal/centrifugo)
- [@article@Getting started](https://centrifugal.dev/docs/getting-started/introduction)
- [@opensource@Centrifugo](https://github.com/centrifugal/centrifugo)
- [@official@Getting Started](https://centrifugal.dev/docs/getting-started/introduction)

@ -1,6 +1,5 @@
# Go realtime communication
## What is real-time communication?
Just as it says in the name, real-time communication is the handling of requests concurrently and efficiently. Whether it is a chat/messaging app, an email service, a game server or any collaborative online project (for example, Excalidraw), there are a few different ways of handling real-time communication, but the most common is through the use of WebSockets. Other options for handling real-time communications include MQTT protocol and server-sent events, among others.
Learn more from the following resources:

@ -10,4 +10,4 @@ All HTTP methods are exposed as a fluent interface.
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/gojek/heimdall)
- [@opensource@Heimdall](https://github.com/gojek/heimdall)

@ -11,4 +11,4 @@ Features:
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/levigross/grequests)
- [@opensource@Grequests](https://github.com/levigross/grequests)

@ -6,6 +6,6 @@ Visit the following resources to learn more:
- [@article@Graphql-go homepage](https://graphql-go.github.io/graphql-go.org/)
- [@article@Graphql-go documentation](https://pkg.go.dev/github.com/graphql-go/graphql)
- [@opensource@Github Repository](https://github.com/graphql-go/graphql)
- [@opensource@Graphql](https://github.com/graphql-go/graphql)
- [@video@GraphQL-Go - Golang Tutorial (by TechPractice on YouTube)](https://www.youtube.com/watch?v=YK7BQfQ84ws)
- [@feed@Explore top posts about GraphQL](https://app.daily.dev/tags/graphql?ref=roadmapsh)

@ -4,6 +4,6 @@ According to their documentation, it's a Golang library for building GraphQL ser
Visit the following resources to learn more:
- [@official@Gqlgen website documentation](https://gqlgen.com/)
- [@official@Gqlgen Documentation](https://gqlgen.com/)
- [@article@Introducing gqlgen: a GraphQL Server Generator for Go](https://99designs.com.au/blog/engineering/gqlgen-a-graphql-server-generator-for-go/)
- [@video@GraphQL in Go - GQLGen Tutorial (by acklackl on YouTube)](https://www.youtube.com/watch?v=O6jYy421tGw)

@ -1,17 +1,14 @@
# Graphql
`GraphQL` is a query language for [APIs](https://developer.mozilla.org/en-US/docs/Glossary/API), it offers a service that prioritizes giving just the data that the client requested and no more.
Besides, you don't need to be worried about breaking changes, versioning and backwards compatibility like REST APIs. Therefore you can implement your version and auto-document your API just by using `GraphQL`.
`GraphQL` is a query language for APIs, it offers a service that prioritizes giving just the data that the client requested and no more. Besides, you don't need to be worried about breaking changes, versioning and backwards compatibility like REST APIs. Therefore you can implement your version and auto-document your API just by using `GraphQL`.
Visit the following resources to learn more:
- [@official@GraphQL Website](https://graphql.org/)
- [@roadmap@Visit Dedicated GraphQL Roadmap](https://roadmap.sh/graphql)
- [@official@Learn GraphQL](https://graphql.org/learn/)
- [@official@GraphQL Tutorials](https://www.graphql.com/tutorials/)
- [@article@Red Hat: What is GraphQL?](https://www.redhat.com/en/topics/api/what-is-graphql)
- [@article@Digital Ocean: An Introduction to GraphQL](https://www.digitalocean.com/community/tutorials/an-introduction-to-graphql)
- [@article@How to GraphQL: The Fullstack Tutorial for GraphQL](https://www.howtographql.com/)
- [@video@GraphQL Full Course - Novice to Expert](https://www.youtube.com/watch?v=ed8SzALpx1Q)
- [@video@Beginner GraphQL Series (by Ben Awad on YouTube)](https://www.youtube.com/playlist?list=PLN3n1USn4xln0j_NN9k4j5hS1thsGibKi)
- [@feed@Explore top posts about GraphQL](https://app.daily.dev/tags/graphql?ref=roadmapsh)

@ -4,7 +4,7 @@ Go has a built-in testing command that we can use to test our program.
Visit the following resources to learn more:
- [@official@Official Go Tutorial: Add a test](https://go.dev/doc/tutorial/add-a-test)
- [@official@Go Tutorial: Add a Test](https://go.dev/doc/tutorial/add-a-test)
- [@article@Go by Example: Testing](https://gobyexample.com/testing)
- [@article@YourBasic Go: Table-driven unit tests](https://yourbasic.org/golang/table-driven-unit-test/)
- [@article@Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests/)

@ -9,6 +9,6 @@ Rpcx is a RPC (Remote Procedure Call) framework like Alibaba Dubbo and Weibo Mot
Visit the following resources to learn more:
- [@article@Rpcx English Documentation](https://en.doc.rpcx.io/)
- [@opensource@Rpcx Github](https://github.com/smallnest/rpcx)
- [@official@Rpcx Official Website](https://rpcx.io/)
- [@official@Rpcx Documentation](https://en.doc.rpcx.io/)
- [@opensource@Rpcx](https://github.com/smallnest/rpcx)

@ -4,5 +4,5 @@ It is an API first development platform. It leverages the microservices architec
Visit the following resources to learn more:
- [@official@Official Website](https://micro.dev/)
- [@opensource@Micro Github](https://github.com/micro/micro)
- [@official@Micro Website](https://micro.dev/)
- [@opensource@Micro](https://github.com/micro/micro)

@ -4,7 +4,7 @@ go-zero is a web and rpc framework with lots of engineering best practices built
Visit the following resources to learn more:
- [@article@Go-zero](https://go-zero.dev/)
- [@article@Go-zero Docs](https://go-zero.dev/docs/introduction)
- [@opensource@GitHub Repository](https://github.com/zeromicro/go-zero)
- [@official@Go-zero](https://go-zero.dev/)
- [@official@Go-zero Docs](https://go-zero.dev/docs/introduction)
- [@opensource@Go-Zero](https://github.com/zeromicro/go-zero)
- [@feed@Explore top posts about Golang](https://app.daily.dev/tags/golang?ref=roadmapsh)

@ -11,7 +11,7 @@ Some of the advantages of using protocol buffers include:
Visit the following resources to learn more:
- [@opensource@Protobuf Github](https://github.com/protocolbuffers/protobuf/)
- [@opensource@Protobuf](https://github.com/protocolbuffers/protobuf/)
- [@article@Protobuf Doc](https://developers.google.com/protocol-buffers/)
- [@article@Protobuf with Go](https://developers.google.com/protocol-buffers/docs/gotutorial/)
- [@feed@Explore top posts about Backend Development](https://app.daily.dev/tags/backend?ref=roadmapsh)

@ -4,7 +4,7 @@ Go language implementation of gRPC(gRPC is a technology for implementing RPC API
Visit the following resources to learn more:
- [@opensource@gRPC-go Github](https://github.com/grpc/grpc-go/)
- [@opensource@gRPC-go](https://github.com/grpc/grpc-go/)
- [@article@gRPC-go Doc](https://pkg.go.dev/google.golang.org/grpc/)
- [@official@Basic tutorial introduction to gRPC in Go.](https://grpc.io/docs/languages/go/basics/)
- [@feed@Explore top posts about gRPC](https://app.daily.dev/tags/grpc?ref=roadmapsh)

@ -4,6 +4,6 @@ gRPC-Gateway creates a layer over gRPC services that will act as a RESTful servi
Visit the following resources to learn more:
- [@opensource@Grpc-gateway Github](https://github.com/grpc-ecosystem/grpc-gateway/)
- [@article@Grpc-gateway Doc](https://grpc-ecosystem.github.io/grpc-gateway/)
- [@opensource@Grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway/)
- [@official@Grpc-gateway Doc](https://grpc-ecosystem.github.io/grpc-gateway/)
- [@feed@Explore top posts about gRPC](https://app.daily.dev/tags/grpc?ref=roadmapsh)

@ -2,9 +2,7 @@
Twirp is a framework for service-to-service communication emphasizing simplicity and minimalism. It generates routing and serialization from API definition files and lets you focus on your application's logic instead of thinking about folderol like HTTP methods and paths and JSON.
Twirp is similar to gRPC, but without the custom HTTP server and transport implementations: it runs on the standard library's extremely-well-tested-and-high-performance net/http Server. It can run on HTTP 1.1, not just http/2, and supports JSON serialization for easy debugging.
Visit the following resources to learn more:
- [@opensource@GitHub Repository](https://github.com/twitchtv/twirp)
- [@article@Getting started](https://twitchtv.github.io/twirp/docs/intro.html)
- [@opensource@Twirp](https://github.com/twitchtv/twirp)
- [@official@Getting Started](https://twitchtv.github.io/twirp/docs/intro.html)

@ -4,7 +4,7 @@ Microservices are an architectural approach to software development that allows
Visit the following resources to learn more:
- [@article@Introduction to microservices](https://developer.ibm.com/learningpaths/get-started-application-modernization/intro-microservices/introduction/)
- [@article@Introduction to Microservices](https://developer.ibm.com/learningpaths/get-started-application-modernization/intro-microservices/introduction/)
- [@official@Microservice Patterns and Resources by Chris Richardson](https://microservices.io/index.html)
- [@article@Microservices AntiPatterns and Pitfalls - Mark Richards](https://www.oreilly.com/content/microservices-antipatterns-and-pitfalls/)
- [@article@Building Microservices, 2nd Edition - Sam Newman](https://samnewman.io/books/building_microservices_2nd_edition/)

Loading…
Cancel
Save