> For the complete documentation index, see [llms.txt](https://go-docs.waresix.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://go-docs.waresix.com/master.md).

# Go Guidance

Mempelajari pemrograman golang untuk pemula. Materi akan dibahas step by step dari basic sampai mahir. Ruang lingkup pembelajaran meliputi :

## [Basic](/golang-fundamental/basic.md)

* Install golang
* Hello world
* Package, type, constanta, variable, function
* Flow controll : if, else, switch, for, defer
* Array : array, slice, map

## [Psuedo OOP](/golang-fundamental/pseudo_oop.md)

* struct
* Method
* Interface
* Encapsulation, inheritance and polymorphism

## [Konkurensi](/golang-fundamental/konkurensi.md)

* Go routine
* Channel
* Channel dengan buffer
* Range dan close
* Select
* Select default
* Select timeout
* Sync Mutex
* Handling sync group routine

## Design Pattern

* Singleton
* Abstract factory
* Dependency injection
* Concurrency pattern

## Build Rest API Framework

Di materi sebelumnya, kita telah membuat project melalui perintah `go mod init essentials`. Jadi dalam project pembuatan framework API ini, kita memakai 'essentials' sebagai nama project.

* [Start up](/build-rest-api-framework/start-up.md)
* [Shutdown](/build-rest-api-framework/shutdown.md)
* [Json](/build-rest-api-framework/json.md)
* [Database](/build-rest-api-framework/database.md)
* [Clean architecture](/build-rest-api-framework/clean-architecture.md)
* [Configuration](/build-rest-api-framework/configuration.md)
* [Fatal](/build-rest-api-framework/fatal.md)
* [Logging](/build-rest-api-framework/logging.md)
* [Routing](/build-rest-api-framework/routing.md)
* [CRUD](/build-rest-api-framework/crud.md)
* [Request-Response helper](/build-rest-api-framework/request-response-helper.md)
* [Error handler](/build-rest-api-framework/error-handler.md)
* [Unit testing](/build-rest-api-framework/unit-testing.md)
* [API testing](/build-rest-api-framework/api-testing.md)
* [Context](/build-rest-api-framework/context.md)
* [Validation](/build-rest-api-framework/validation.md)
* [Middleware](/build-rest-api-framework/middleware.md)
* [Token](/build-rest-api-framework/token.md)
* [RBAC](/build-rest-api-framework/rbac.md)

## Build gRPC API Framework

* [Protocol Buffer](/grpc-framework/grpc-protobuf.md)
* [makefile](/grpc-framework/makefile.md)
* [grpc server](/grpc-framework/grpc-server.md)
* [Config](/grpc-framework/grpc-config.md)
* [Database](/grpc-framework/grpc-database.md)
* [Routing](/grpc-framework/grpc-routing.md)
* [Clean Architecture](/grpc-framework/grpc-clean-architecture.md)
* [gRPC Client](/grpc-framework/grpc-client.md)
* [Tracing](/grpc-framework/grpc-tracing.md)
* [Caching](/grpc-framework/grpc-caching.md)
* [Testing](/grpc-framework/grpc-testing.md)
