autojanet/skills/understand/languages/go.md
Zoë cc74ad0bd0
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix: use library/ Harbor project, add skills, fix pipeline secrets
- .woodpecker.yaml: image paths -> library/autojanet-{agent,dispatcher}
- .woodpecker.yaml: secret names RS_HARBOR_USER / RS_HARBOR_PASS (global)
- container/Dockerfile: restore COPY skills/, skills/ populated from opencode config
- skills/: 84 opencode skills bundled into image
- k8s/manifests: update image refs to library/
2026-05-30 15:43:14 -07:00

2.4 KiB

Go Language Prompt Snippet

Key Concepts

  • Goroutines: Lightweight concurrent functions launched with go keyword
  • Channels: Typed conduits for communication and synchronization between goroutines
  • Interfaces: Implicitly satisfied contracts — no implements keyword needed
  • Struct Embedding: Composition mechanism providing field and method promotion
  • Error Handling: Explicit error return values (error interface) instead of exceptions
  • Defer/Panic/Recover: Deferred cleanup, unrecoverable errors, and recovery mechanism
  • Slices vs Arrays: Arrays are fixed-size values; slices are dynamic views backed by arrays
  • Pointers: Explicit pointer types for pass-by-reference semantics (no pointer arithmetic)
  • Context Propagation: context.Context carries deadlines, cancellation, and request-scoped values
  • Init Functions: Package-level init() runs automatically before main() for setup

Import Patterns

  • import "package" — single package import
  • import alias "package" — aliased import to avoid name conflicts
  • import ( ... ) — grouped import block (standard library, then external, then internal)
  • import _ "package" — blank import for side effects only (e.g., driver registration)

File Patterns

  • *_test.go — test files in the same package (or _test package for black-box tests)
  • cmd/ — directory containing main packages (binary entry points)
  • internal/ — packages only importable by parent module (enforced by compiler)
  • pkg/ — public library packages (convention, not enforced)
  • go.mod — module definition with dependency versions
  • go.sum — cryptographic checksums for dependencies

Common Frameworks

  • Gin — High-performance HTTP framework with middleware support
  • Echo — Minimalist web framework with built-in middleware
  • Fiber — Express-inspired framework built on fasthttp
  • Chi — Lightweight, composable HTTP router
  • GORM — ORM library with associations, hooks, and migrations

Example Language Notes

Implements io.Reader interface implicitly — no explicit declaration needed, just matching method signatures. This enables any type with a Read([]byte) (int, error) method to be used wherever io.Reader is expected.

The internal/ directory enforces encapsulation at the compiler level, preventing external packages from importing implementation details — stronger than naming convention.