Go Struct dan Interface
Panduan Go untuk struct, interface, pointer, dan method, termasuk pointer vs value receiver, method set, zero value, dan decoupling via interface.
Bahasa pemrograman backend yang cepat dan ringkas. Pelajari Structs, Interfaces, concurrency (Goroutine/Channel), dan HTTP server.
Panduan Go untuk struct, interface, pointer, dan method, termasuk pointer vs value receiver, method set, zero value, dan decoupling via interface.
Panduan praktis concurrency di Go untuk goroutine, channel, select, worker pattern, context cancellation, dan jebakan deadlock, goroutine leak, serta race condition.
Panduan praktis net/http di Go untuk HTTP server, routing dasar, middleware pattern, parsing JSON request/response, dan jebakan umum saat membangun API kecil.
Panduan referensi Go untuk package, module, workspace, `go.mod`, `go.sum`, versioning dependency, dan jebakan import path.
Panduan referensi Go untuk testing, table-driven tests, testing.T, subtests, httptest, mocks/fakes sederhana, benchmark dasar, dan jebakan test rapuh.
Panduan praktis Go untuk encoding/json, struct tags, omitempty, RawMessage, validasi payload, dan handling time format serta timezone.
Panduan praktis context di Go untuk cancellation, deadline, timeout, propagasi context di HTTP/server/worker flow, dan jebakan umum seperti menyimpan context di struct atau lupa cancel.
Panduan error handling Go untuk sentinel error, custom error, wrapping dengan %w, errors.Is/As, panic/recover, dan jebakan umum seperti error shadowing dan kehilangan konteks.
Panduan praktis CLI di Go dengan flag package, subcommand pattern, positional args, alur parse→validate→run, dan jebakan umum saat parsing input baris perintah.
Panduan Go generics untuk type parameters, constraint any/comparable/custom interface, generic function/type, dan jebakan saat over-abstracting.
Panduan Go embed.FS dan io/fs untuk menyematkan aset ke binary, abstraction fs.FS, serta testing dengan fstest.MapFS tanpa menyentuh disk.
Panduan Go sync package untuk WaitGroup, Mutex/RWMutex, Once, atomic, dan jebakan race, copy mutex, serta hold lock terlalu lama.
Panduan Go net/http middleware chain: pola func(next Handler) Handler, urutan chain mundur, context antar middleware, dan jebakan next dipanggil dua kali atau lupa.
Panduan Go database/sql: sql.Open + Ping, Query/QueryRow + Scan, Prepare, transaksi, pool setting, dan jebakan rows.Close serta lupa rows.Err.
Panduan testing Go: table tests + t.Run subtest, fuzz dengan corpus, testing/iotest (OneByteReader, TimeoutReader), dan jebakan loop variable capture serta t.Fatal vs Error.
Panduan Go Web API lanjut: error response seragam, validasi struct, versioning path, status code tepat, dan jebakan bocorkan stack di error.
Panduan gRPC Go: definisi proto, generate stub, unary server/client, TLS, dan jebakan ubah field number + tanpa TLS produksi.
Panduan observability Go: net/http/pprof CPU/mem, expvar metrik, runtime/trace, dan jebakan pprof terbuka publik + lupa stop trace.
Panduan testing Go dengan testify: assert vs require, suite SetupTest/TearDown, mock, dan jebakan require di loop tanpa subtest + state suite bocor.
Panduan Go workspace go.work: multi-module dev lokal tanpa proxy, replace path, dan jebakan commit go.work ke release + lupa replace saat tanpa workspace.
Cara paling aman dan sederhana mengatur config Go: default value, environment variable, env loader di development, dan Viper sebagai opsi tambahan.
Panduan Go errgroup: jalankan N goroutine paralel, satu error cancel ctx, wait return err, dan jebakan loop var capture + tulis slice tanpa index/mutex.