> For the complete documentation index, see [llms.txt](https://golang-microservices.rijalasepnugroho.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://golang-microservices.rijalasepnugroho.com/readme.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/01-basic.md)

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

## [Struktur Data](/golang-fundamental/02-struktur-data.md)

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

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

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

## [Concurrency Pattern](https://github.com/jacky-htg/golang-essentials/blob/master/02-design-pattern/03-concurrency-pattern.md)

* [Worker Pool](/concurrency-pattern/04-worker-pool.md)
* [Future / Promise](/concurrency-pattern/08-future-promise.md)
* [Rate Limit Pattern](/concurrency-pattern/09-rate-limit.md)
* [Semaphore](/concurrency-pattern/10-semaphore.md)
* [Single Flight](/concurrency-pattern/12-single-flight.md)

## Build API Framework

Step by step membuat golang API framework, baik rest api maunpun grpc, baik monolit maupun microservices, baik monorepo maupun multirepo.

* [Start up](/build-api-framework/01-start-up.md)
* [Shutdown](/build-api-framework/02-shutdown.md)
* [Json](/build-api-framework/03-json.md)
* [Database](/build-api-framework/04-database.md)
* [Clean architecture](/build-api-framework/05-clean-architecture.md)
* [Configuration](/build-api-framework/06-configuration.md)
* [Fatal](/build-api-framework/07-fatal.md)
* [Bootstrap](/build-api-framework/08-bootstrap.md)
* [Logging](/build-api-framework/09-logging.md)
* [Routing](/build-api-framework/10-routing.md)
* [CRUD](/build-api-framework/11-crud.md)
* [Standard Response](/build-api-framework/12-standard-response.md)
* [Error handler](/build-api-framework/13-error-handler.md)
* [Context](/build-api-framework/14-context.md)
* [Validation](/build-api-framework/15-validation.md)
* [Middleware](/build-api-framework/16-middleware.md)
* [Token](/build-api-framework/17-token.md)
* [RBAC](/build-api-framework/18-rbac.md)
* [Pagination](/build-api-framework/19-pagination.md)
* [Unit testing](/build-api-framework/20-unit-testing.md)
* [API testing](/build-api-framework/21-api-testing.md)
* [Cache](/build-api-framework/22-cache.md)

## Referensi Tambahan

* [Buku "The Go Programing Language"](https://www.gopl.io/)
* [Dokumentasi Resmi Golang](https://golang.org/doc/)
