Best of Awesome Go2025

  1. 1
    Article
    Avatar of awegoAwesome Go·1y

    Cursor for Large Projects

    Cursor and Claude are effective not just for prototyping but also for maintaining large software projects. Their use can accelerate development processes by structuring, refactoring, and testing code efficiently. Stream CEO Thierry shares a workflow for using Cursor to manage a large Go codebase, emphasizing the importance of a good edit and test loop and the use of dedicated documentation folders for AI. The guide also covers steps for setting up Cursor, highlights the combination with Goland for debugging and refactoring, and provides tips for maximizing AI benefits in software development.

  2. 2
    Article
    Avatar of awegoAwesome Go·1y

    Making Beautiful API Keys

    To improve the aesthetic and usability of API keys, a startup created 'uuidkey', a package that encodes UUIDs into a readable format using Crockford Base32. This solution aims to provide secure, globally unique, sortable, and human-friendly API keys by leveraging the benefits of UUIDv7 and adding options such as removing dashes and adding prefixes for better management and security. The package is open source and available for programmers to implement in their own systems.

  3. 3
    Article
    Avatar of awegoAwesome Go·47w

    Best Programming Language for 2026

    Python remains the top choice for AI/ML and automation, while Rust gains momentum for systems programming and blockchain development. JavaScript/TypeScript continues dominating web development, Go excels for backend microservices, and Swift/Kotlin rule mobile development. The guide provides career-specific language recommendations and emphasizes choosing based on your goals rather than popularity alone.

  4. 4
    Article
    Avatar of awegoAwesome Go·48w

    MVC vs DDD: Go Language Architecture Deep Dive

    Compares MVC and DDD architectural patterns for Go applications, examining their structural differences, code organization approaches, and use cases. MVC organizes code by technical layers (Controller/Service/Repository) and suits smaller systems with stable requirements, while DDD structures code around business domains with four layers (Interface/Application/Domain/Infrastructure) and better handles complex business logic. The guide provides detailed directory structures, code examples, and implementation best practices for both patterns in Go, highlighting that MVC offers simplicity and rapid development while DDD provides better scalability and maintainability for complex systems.

  5. 5
    Article
    Avatar of awegoAwesome Go·1y

    Don't Overload Your Brain: Write Simple Go

    Learn how to simplify and refactor Go code to improve readability and reduce cognitive load. The article covers refactoring functions in the 'cars' package by using built-in comparison operators instead of external functions and gives tips for aligning positive flow to the left for better readability. It includes practical examples and emphasizes running tests to ensure code changes do not introduce errors.

  6. 6
    Article
    Avatar of awegoAwesome Go·1y

    Learn Golang in 2025, You Won't Regret It

    LiveAPI, an auto-API doc generation tool, is being built using Golang. Initially designed at Google in 2009, Go offers unique features like lightweight concurrency with goroutines, built-in communication using channels, simple cleanup with defer, implicit interface implementation, and native error handling with multiple return values. These features, among others, make Golang a strong choice for developers, especially those transitioning from languages like Python and Node.js.

  7. 7
    Article
    Avatar of awegoAwesome Go·49w

    Modern (Go) application design

    Explores modern Go application design principles emphasizing structure and composability. Discusses two key approaches: use case-driven structure (like CLI tools) and data model-first principles using repository patterns with generics. Demonstrates how to separate concerns through layered architecture with storage, business, and view layers. Shows practical examples of implementing CRUD operations, aggregates, and the MVC pattern while maintaining clean boundaries between components for better testability and maintainability.

  8. 8
    Article
    Avatar of awegoAwesome Go·1y

    15 Reasons I Love Go

    Go offers many features that make it a highly efficient and productive programming language. Its simplicity, fast compiler, built-in garbage collection, and robust concurrency support make it ideal for backend development and command-line tools. Go is designed for scalability and includes a powerful standard library, built-in testing and benchmarking tools, and a comprehensive toolchain. Additionally, Go's static typing, interfaces, and compatibility focus enhance code safety and maintainability. The thriving open-source ecosystem and cross-compilation capabilities further boost its appeal.

  9. 9
    Article
    Avatar of awegoAwesome Go·44w

    Go vs Python vs Rust: Which One Should You Learn in 2025? Benchmarks, Jobs & Trade‑offs

    Compares Go, Python, and Rust across performance benchmarks, memory efficiency, developer productivity, ecosystem maturity, and 2025 salary trends. Rust leads in raw speed (2x faster than Go, 60x faster than Python), Go excels in cloud-native development with balanced performance and simplicity, while Python dominates AI/ML with fastest development cycles. Salary ranges show Rust ($150K-$210K), Go ($140K-$200K), and Python ($130K-$180K). Recommends Python for AI/ML and prototyping, Go for microservices and DevOps, Rust for performance-critical systems, with hybrid approaches becoming common in production environments.

  10. 10
    Article
    Avatar of awegoAwesome Go·49w

    7 Docker Compose Tricks to Level Up Your Development Workflow

    Seven advanced Docker Compose techniques to improve development workflows: using profiles to conditionally run services, managing environment variables with .env files, optimizing builds with caching, implementing healthchecks for service dependencies, customizing container names and logging, using named volumes for data persistence, and extending compose files for modularity. Each technique includes practical examples with code snippets and explanations of benefits like resource savings, faster builds, and better reliability.

  11. 11
    Article
    Avatar of awegoAwesome Go·1y

    Why Go Should Be Your Best First Step into Backend Development

    Go, known for its simplicity, speed, and ease of handling concurrency, is recommended as a first language for frontend developers transitioning to backend development. It offers a straightforward learning curve, static typing like TypeScript, and robust tools that aid productivity. Its performance and scalability advantages make it an excellent choice for building reliable and fast backend services.

  12. 12
    Article
    Avatar of awegoAwesome Go·38w

    Preserving Order in Concurrent Go Apps: Three Approaches Compared

    Explores three approaches to preserve order in concurrent Go applications while maintaining performance benefits. Compares ReplyTo channels, sync.Cond turn-taking, and permission passing chain patterns through detailed benchmarks. The permission passing approach emerges as the winner, offering good performance with zero allocations and clean abstractions for building reusable concurrent operations.

  13. 13
    Article
    Avatar of awegoAwesome Go·37w

    Go Coding Official Standards and Best Practices

    A comprehensive guide covering Go's official coding standards and best practices, including code formatting with gofmt, naming conventions, package design principles, error handling patterns, function design, concurrency guidelines, comment conventions, testing approaches, and performance optimization techniques. The guide emphasizes Go's philosophy of simplicity and provides practical code examples for each topic.

  14. 14
    Article
    Avatar of awegoAwesome Go·1y

    Leak and Seek: A Go Runtime Mystery

    Cyolo's R&D team tackled a significant memory leak issue in a Go application, which led to performance problems for several major customers. Initial debugging ruled out goroutine leaks, pointing instead to the SQLite3 driver. Further investigation traced the leak to the Go runtime's finalizer mechanism, which was blocked by the go-smb2 package, causing memory retention. The team's persistence and detailed analysis uncovered the root cause and led to implementing a monitoring solution to detect blocked finalizers, contributing valuable insights to the Go community.

  15. 15
    Article
    Avatar of awegoAwesome Go·42w

    So I Quit $200k Job To Write A Framework

    A developer quit their $200k job to build a new web framework in Go that combines SPA-like user experience with MPA simplicity. The framework uses a stateful server architecture with an ultra-thin client, eliminating the need for traditional APIs by handling UI events on the server and streaming HTML updates. Key features include server-driven components, real-time synchronization via rolling HTTP requests, type-safe routing, and a novel component architecture separating state (Beam), containers (Node), and templates (Fragment). The framework aims to reduce developer burnout and hosting costs while maintaining modern UX, targeting a paid license model with early access available.

  16. 16
    Article
    Avatar of awegoAwesome Go·41w

    How I Made Europe Searchable From a Single Server - The Story of HydrAIDE

    A developer built HydrAIDE, a custom data engine that indexes millions of European websites from a single server using only 3% CPU load. Instead of traditional databases, the system uses thousands of small binary files for O(1) data access, leveraging modern SSD performance. The engine powers precise B2B partner searches across Europe and is now open-source with Go SDK support and Python/Node.js SDKs in development.

  17. 17
    Article
    Avatar of awegoAwesome Go·1y

    A comparison of Go and Rust syntax

    Go and Rust are both popular programming languages that excel in different areas. Go is known for its simplicity, efficiency, and excellent concurrency performance, making it ideal for network services and cloud computing. Rust is renowned for its memory safety and high performance, suitable for system programming and applications with stringent performance and security requirements. The comparison covers various aspects including loop structures, functional programming, concurrency control, syntactic sugar, object-oriented programming, and common application areas.

  18. 18
    Article
    Avatar of awegoAwesome Go·1y

    Scaling LLMs with Golang: How we serve millions of LLM requests

    Using Golang for production deployments of LLMs has proven efficient for handling millions of requests. Key benefits include its type safety, concurrency with goroutines, and composable interfaces. Despite Python's dominance in ML development, combining it with Golang allows leveraging both languages' strengths for a robust and scalable system.

  19. 19
    Article
    Avatar of awegoAwesome Go·1y

    ByteDance/Sonic: A Lightning-Fast JSON Library for Go

    ByteDance's Sonic is a high-performance JSON library for Go, designed to handle the immense scale of TikTok's services. It significantly reduces CPU usage and memory allocations by utilizing techniques like Just-In-Time (JIT) compilation and SIMD instructions. Sonic is demonstrated to be faster and more efficient than the standard encoding/json library, making it an excellent choice for performance-critical applications processing large amounts of JSON data.

  20. 20
    Article
    Avatar of awegoAwesome Go·45w

    Implementing Enum Types in Go

    Go doesn't have built-in enum types, but you can implement enum-like functionality using custom types with constants. The article demonstrates how to create type-safe enums using custom types, the iota constant generator for auto-incrementing values, and adding methods like Name(), String(), Values(), and ValueOf() to make enums more feature-rich and similar to those in other languages like Java.

  21. 21
    Video
    Avatar of awegoAwesome Go·1y

    Make an MMO with Godot 4 + Golang: Database setup for persistent game world

    Learn how to set up a SQLite database for a Godot 4 MMO using Golang. This guide covers establishing a connection, handling user registration and login, and writing SQL queries without using an ORM. Follow along to implement a secure and persistent game world. By the end of this tutorial, you'll have a functioning login system and the groundwork for more complex game logic.

  22. 22
    Article
    Avatar of awegoAwesome Go·1y

    The Art of Resource Pooling in Go

    Resource pooling is a design pattern aimed at improving performance and stability by reusing instances to avoid the overhead of frequent creation and destruction. This post focuses on the connection pool implementation in Go's database/sql package, highlighting key pooling strategies such as resource lifecycle management, concurrency-safe design, and exception handling. Recommendations for optimizing performance and preventing common mistakes are also discussed, with insights into monitoring pool metrics effectively.

  23. 23
    Article
    Avatar of awegoAwesome Go·1y

    My 6 months with the GoTH stack: building front-ends with Go, HTML and a little duct tape

    The GoTH stack combines Go, Templ, Tailwind, and HTMX to create an efficient front-end development experience. The author highlights their positive experiences with the stack over six months, noting the benefits of reusable components, easy HTML integration, and server-side rendering with AJAX. While there are some challenges, such as error handling and live updates, the overall experience was favorable. The stack simplifies development by reducing multi-language complexity and offers robust tooling and documentation.

  24. 24
    Article
    Avatar of awegoAwesome Go·1y

    How to Make Go Structs More Efficient

    Go structs with identical fields can differ in memory usage due to data alignment and field ordering. By reordering fields, significant memory savings can be achieved. This technique is called structure packing. The Go tool 'fieldalignment' can automatically optimize struct field order to ensure efficient memory usage.

  25. 25
    Article
    Avatar of awegoAwesome Go·1y

    A Deep Dive into Gin: Golang's Leading Framework

    Gin is a high-performance HTTP web framework written in Go. It offers superior speed compared to the Martini framework due to its use of `httprouter`, and provides features like middleware support, crash-free execution, JSON validation, route grouping, error management, and built-in rendering functions. Developers can quickly get started with Gin's straightforward API. The framework uses radix trees for fast routing and efficient middleware processing. Gin's `ServeHTTP` method handles HTTP requests, utilizing context management to ensure smooth request handling, even in the event of errors. The post also promotes Leapcell, a serverless platform ideal for deploying Gin-based applications.