Best of Awesome GoOctober 2024

  1. 1
    Video
    Avatar of awegoAwesome Go·2y

    Complete Backend Engineering Course in Go

    This course offers a comprehensive guide to backend engineering in Go, covering the creation of a RESTful API from scratch to deployment. It spans from basic concepts like creating a low-level TCP server to advanced topics like authentication, authorization, caching, logging, CI/CD, and deployment to Google Cloud. The course emphasizes understanding core principles, design patterns, and best practices for API development, including the repository pattern, clean architecture, optimistic concurrency control, and more. A free, initial module is available, along with a GitHub repository for further exploration.

  2. 2
    Article
    Avatar of awegoAwesome Go·2y

    How I Stopped Worrying and Learned to Love Go Interfaces

    Go interfaces provide a way to define behavior without specifying the method of implementation. They improve code flexibility and cleanliness by allowing different types to satisfy the same interface as long as they implement the required methods. Understanding and using interfaces are essential for scalable and maintainable code. Example implementations include Animal types making different sounds and Shapes calculating area and perimeter.

  3. 3
    Article
    Avatar of awegoAwesome Go·2y

    Go and Postgres Listen/Notify or: How I Learned to Stop Worrying and Love PubSub

    This post explains how to implement PubSub functionality using PostgreSQL's Listen/Notify feature in Golang applications. Unlike traditional PubSub systems that rely on message brokers like Redis, PostgreSQL's Listen/Notify allows for an efficient, single-system solution. The author discusses the use of pgx for connection management, introduces a custom Notifier package, and provides code examples illustrating how to set up a listener, notifier, and subscription system efficiently. Key points include handling notifications, managing subscriptions, and dealing with blocking calls.

  4. 4
    Article
    Avatar of awegoAwesome Go·2y

    Writing raw SQL easier with pgx and sqlc in Go

    Combine pgx, a PostgreSQL driver and toolkit for Golang, with sqlc, a tool that generates type-safe Go code from SQL queries, to streamline database interactions. While ORMs can be limiting for complex queries, pgx and sqlc offer more control and type safety. Using sqlc for CRUD operations and simple queries, and pgx for more complex queries, provides a balanced approach. The post outlines how to set up and use these tools in a Go project.

  5. 5
    Article
    Avatar of awegoAwesome Go·2y

    Golang developers should try Odin

    Odin is a new programming language that offers a compelling alternative to Golang. It addresses several issues like memory leaks and slow compilation associated with Golang. Odin is designed to include features you wish Golang had and emphasizes array programming and low-level operations. It is suitable for game and backend development due to its stable core library and ongoing improvement of its compiler and toolchain. The language prioritizes manual memory management and provides a structured way of handling errors without a garbage collector. Odin's syntax and usability make it an attractive option for experienced Golang developers.