Shared Go best practices for LlamaFarm CLI. Covers idiomatic patterns, error handling, and testing.
Shared Go best practices for LlamaFarm CLI development. These guidelines ensure idiomatic, maintainable, and secure Go code.
cli/
cmd/ # Command implementations
config/ # Configuration types and loading
orchestrator/ # Service management
utils/ # Shared utilities
version/ # Version and upgrade handling
internal/ # Internal packages
tui/ # TUI components
buildinfo/ # Build information
fmt.Errorf("operation failed: %w", err)var ErrNotFound = errors.New("not found")sync.Mutex for shared state protectionsync.RWMutex when reads dominate writesdefer for mutex unlocks*_test.go in same packagecontext.Context for cancellation| File | Description |
|---|---|
| patterns.md | Idiomatic Go patterns |
| concurrency.md | Goroutines, channels, sync |
| error-handling.md | Error wrapping, sentinels |
| testing.md | Table-driven tests, mocks |
| security.md | Input validation, secure coding |
type HTTPClient interface {
Do(req *http.Request) (*http.Response, error)
}
type ProcessManager struct {
mu sync.RWMutex
processes map[string]*ProcessInfo
}
var myCmd = &cobra.Command{
Use: "mycommand",
Short: "Brief description",
RunE: func(cmd *cobra.Command, args []string) error {
// Implementation
return nil
},
}
type myModel struct {
// State fields
}
func (m myModel) Init() tea.Cmd { return nil }
func (m myModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { /* ... */ }
func (m myModel) View() string { return "" }