awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
uber-go avatar

uber-go/guide

0
View on GitHub↗
17,573 stars·1,808 forks·Makefile·Apache-2.0·20 views

Guide

This project is a collection of guidelines and best practices for the Go programming language, providing a comprehensive style guide and set of programming standards. It establishes a framework for writing maintainable and performant source code through standardized naming, structuring, and organizational conventions.

The guide focuses on specific patterns for concurrency, error handling, and performance optimization. It details methods for managing goroutine lifecycles to prevent race conditions, designing structured error wrapping and routing to maintain observability, and implementing memory allocation strategies to reduce garbage collection overhead.

The architectural guidance covers API design through dependency injection, functional options, and implementation encapsulation to ensure extensibility and testability. Quality assurance workflows are addressed through the use of table-driven testing, compile-time interface verification, and the integration of static analysis and linting tools.

Features

  • Go Ecosystem Conventions - Establishes standardized naming, structuring, and organizational conventions for consistency across large Go codebases.
  • Concurrent Programming Patterns - Defines architectural patterns for concurrent programming to ensure data consistency and safety.
  • Coding Style Guides - Provides a comprehensive set of standardized coding conventions and best practices for writing maintainable Go source code.
  • Go Idioms & Patterns - Provides idiomatic Go patterns for managing goroutine lifecycles and concurrent primitives.
  • Go Performance Optimization - Offers strategies for efficient primitive conversions and container capacity management.
  • Type Encapsulation - Details how to hide internal implementation details to maintain flexible and stable public APIs.
  • Error Handling - Provides a structured framework for designing, wrapping, and routing errors to maintain stability and observability.
  • Error Handling Strategies - Implements a structured approach to error wrapping and reporting to maintain observability.
  • Linear - Establishes a standard for shallow logic paths by prioritizing immediate error handling.
  • Functional Options - Describes the use of variadic functions to implement the functional options pattern for extensible API configuration.
  • Go API Architecture Design - Provides a comprehensive framework for designing testable and extensible Go APIs.
  • Dependency Injection - Provides guidelines on using structs and interfaces for dependency injection to improve testability and modularity.
  • Language Performance Optimization - Offers detailed recommendations for reducing memory allocations and optimizing primitive conversions to improve execution speed.
  • Goroutine Leak Prevention - Outlines signal mechanisms and exit strategies to prevent goroutine leaks.
  • Module Encapsulation Patterns - Provides patterns for preventing public implementation leakage by encapsulating internal types within public structs.
  • Slab-Based Pre-allocation - Implements memory allocation strategies such as specifying initial capacities to reduce garbage collection overhead.
  • Table-Driven Tests - Promotes the use of table-driven tests to increase code reliability and coverage.
  • Atomic Memory Operations - Provides guidance on using atomic types to ensure thread-safe memory access without locks.
  • Slab-Based Memory Pre-allocation - Recommends memory pre-allocation strategies to reduce garbage collection overhead.
  • Compile-Time Interface Verification - Explains how to use zero-value interface variables to catch implementation gaps at compile time.
  • Deferred Execution - Explains the use of the defer keyword to ensure timely release of files, locks, and other system resources.
  • Primitive Conversion Optimizations - Provides specialized conversion tools to transform primitive values into strings more efficiently than general formatting functions.
  • Custom Error Definitions - Details the design of static, dynamic, and custom error types for better contextual failure information.
  • Error Contextualization - Explains how to use format verbs to wrap errors with descriptive context while preserving the error chain.
  • Error Routing Logic - Provides a strategy for error routing to prevent noise in application logs.
  • Error Recovery - Emphasizes returning errors over triggering panics to ensure predictable application recovery.
  • Static Analysis - Integrates static analysis and linting tools to detect common coding mistakes and enforce consistent styling.
  • Static Code Analysis - Advocates for the use of automated linting and static analysis to ensure consistent coding style.
  • Coding Standards - Uber Go coding style guide.
  • Language Style Guides - Opinionated style and engineering standards for Go projects.
  • Programming Language Standards - Patterns and conventions for idiomatic Go code.

Star history

Star history chart for uber-go/guideStar history chart for uber-go/guide

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does uber-go/guide do?

This project is a collection of guidelines and best practices for the Go programming language, providing a comprehensive style guide and set of programming standards. It establishes a framework for writing maintainable and performant source code through standardized naming, structuring, and organizational conventions.

What are the main features of uber-go/guide?

The main features of uber-go/guide are: Go Ecosystem Conventions, Concurrent Programming Patterns, Coding Style Guides, Go Idioms & Patterns, Go Performance Optimization, Type Encapsulation, Error Handling, Error Handling Strategies.

What are some open-source alternatives to uber-go/guide?

Open-source alternatives to uber-go/guide include: xxjwxc/uber_go_guide_cn — This project is a translated Go language style guide and programming standard. It provides a collection of coding… isocpp/cppcoreguidelines — The CppCoreGuidelines is a comprehensive software engineering standard that provides a curated framework of coding… bbatsov/ruby-style-guide — This project is a community-driven Ruby coding style guide and static analysis standard. It provides a collection of… golang-standards/project-layout — This project provides a standardized directory layout pattern that establishes a predictable structure for organizing… airbnb/ruby — This project provides a collection of coding standard specifications, style guides, and configuration assets used to… airbnb/javascript — This project provides a comprehensive set of coding standards and style guidelines for JavaScript development. It…

Open-source alternatives to Guide

Similar open-source projects, ranked by how many features they share with Guide.
  • xxjwxc/uber_go_guide_cnxxjwxc avatar

    xxjwxc/uber_go_guide_cn

    8,172View on GitHub↗

    This project is a translated Go language style guide and programming standard. It provides a collection of coding standards and best practices designed to ensure that Go code remains maintainable, readable, and efficient. The guide focuses on idiomatic patterns for error handling, interface compliance, and memory optimization. It establishes standards for package naming and the use of functional options to maintain backward compatibility in constructors. It covers a broad range of capabilities, including concurrency management for coordinating process lifecycles and preventing resource leaks

    chinesecngo
    View on GitHub↗8,172
  • isocpp/cppcoreguidelinesisocpp avatar

    isocpp/CppCoreGuidelines

    45,100View on GitHub↗

    The CppCoreGuidelines is a comprehensive software engineering standard that provides a curated framework of coding conventions and design principles for C++. It serves as an authoritative guide for writing safe, efficient, and maintainable code by establishing high-level architectural patterns and organizational principles for large-scale projects. The guidelines emphasize the use of a strong, static type system to ensure memory safety and enforce consistent resource management patterns. The project distinguishes itself by promoting the zero-overhead abstraction principle, ensuring that high-

    CSS
    View on GitHub↗45,100
  • bbatsov/ruby-style-guidebbatsov avatar

    bbatsov/ruby-style-guide

    16,546View on GitHub↗

    This project is a community-driven Ruby coding style guide and static analysis standard. It provides a collection of agreed-upon rules for syntax, naming conventions, and structural guidelines to ensure uniform code appearance and maintainability across Ruby projects. The project serves as both a human-readable documentation resource for developers and a machine-readable RuboCop configuration specification. This allows natural language style guidelines to be mapped directly to automated linting rules. The system covers Ruby code standardization, style enforcement, and project governance thro

    View on GitHub↗16,546
  • golang-standards/project-layoutgolang-standards avatar

    golang-standards/project-layout

    56,122View on GitHub↗

    This project provides a standardized directory layout pattern that establishes a predictable structure for organizing source code, configuration files, and documentation. It serves as a community-driven framework designed to improve project maintainability, simplify developer onboarding, and ensure consistency across large-scale software development efforts. By enforcing uniform file layouts, the project reduces cognitive load for developers working across multiple services or microservices. It utilizes convention-based folder templates to ensure that application logic, infrastructure, and co

    Makefilegogolangproject-structure
    View on GitHub↗56,122
See all 30 alternatives to Guide→