Golang Digest
2.54K subscribers
164 photos
1 video
190 links
Everything about Go: news, articles, tools, language changes, etc.

#go #golang #concurrency #postgres #database #db
Download Telegram
βœ… WebAssembly: A promising technology that is quietly being sabotaged

WebAssembly is one of these things that sounds too good to be true and yet we are that close to have it reaches mainstream: what if we had an universal executable format that could run anywhere: from web browsers to embedded devices passing by cloud servers and on any CPU architecture?

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘7😁1
βœ… Why People are Angry over Go 1.23 Iterators

The article discusses the new iterator design in Go 1.23, which introduces a functional programming style with a yield mechanism. The author critiques the complexity and perceived departure from Go's imperative nature. They argue that while the design has its merits, it feels out of character for Go and adds unnecessary complexity. The article includes examples and contrasts the new design with alternatives, highlighting concerns about the increased difficulty for average Go programmers.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯7πŸ‘4
βœ… Three Ways To Think About Channels

This article discusses how to effectively use channels in Go. It explains channels as locked, buffered queues, essential concurrency primitives in Go, and the concept of message passing. The article delves into practical usage, concurrency patterns, and the Go runtime's management of channels, emphasizing their importance and efficiency in writing concurrent Go code.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘9
βœ… A pragmatic guide to Go module updates

This article offers practical tips for updating go.mod versions in Go projects. It covers version tagging, necessary module path changes for major updates, handling imports, using monorepos, and retracting versions if needed.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8πŸ”₯3
βœ… Putting Go's Context package into context

A detailed guide on how to use the "context" package in Go, and how the methods from this package work under the hood.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯5❀3
βœ… No sleep until we build the ideal pub/sub library in Go

This article describes the journey of creating an efficient pub/sub library in Go. It covers challenges like race conditions and blocking, and explains how to handle concurrency effectively. The final implementation focuses on achieving high performance, safety, and ease of use for event broadcasting in concurrent applications.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸ”₯4
βœ… 7 Common Interface Mistakes in Go

The author talks about 7 mistakes that are often made when working with interfaces, such as an overabundance of methods, incorrect interface location, or returning an interface. Each of these errors can subsequently lead to deterioration in code readability and provoke new errors.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘7πŸ‘1
βœ… Building Resilient Go Applications: Key Error Handling Techniques

Bill outlines a three-step approach: logging errors once, determining recovery or termination, and preventing further error propagation. Bill also introduces the concept of error signaling semantics, treating errors as values that signal issues throughout the call stack. Additionally, he emphasizes the importance of different error signals, such as trusted errors and shutdown signals, to enhance code reliability and maintainability.

Link

#go #video
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8❀1
βœ… Writing generic collection types in Go: the missing documentation

This article discusses the challenges and solutions for implementing generic collections in Go, particularly in creating a sortable Set. It covers initial failed attempts, the importance of type constraints, and the correct approach to combine type constraints comparable with custom interfaces. The article aims to provide clear documentation and examples to help developers avoid common pitfalls when working with Go generics.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8❀1
βœ… GO EP12: Go.mod File - Boring Stuff Made Easy

In Go, the go.mod file is all about managing modules. We’ve talked about this a lot before, but let’s dive deeper this time.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯6πŸ‘3πŸ‘Ž1
βœ… Realtime diagnostic logging, or how to really spy on your Go web apps

An exploration of some options to temporarily enable verbose logging for troubleshooting purposes and making those logs accessible from anywhere and in real-time.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ‘3πŸ”₯2
βœ… Resetting timers in Go

The author talks about potential pitfalls associated with using timers in Go and how to avoid them

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6❀2
βœ… Shipping Anything On Go Infrastructure

The article "Shipping Anything On Go Infrastructure" by Howard John discusses how to leverage Go's module system to distribute non-Go code, such as shell scripts and Docker images, using the Go infrastructure. The author explains how to bundle and execute shell scripts and Docker images within Go binaries, highlighting both this unconventional method's benefits and potential drawbacks.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8❀4πŸ”₯1
βœ… Give your Go app superpowers with an Embedded NATS Server

One powerful, but lesser known feature of the NATS server is that, if you are using the Go programming language, you can embed the NATS server directly into your application.

Not only can you bake a NATS server directly into your application binary, but you can even connect to that NATS server without going through a network interface, making NATS an awesome choice for building modular monoliths, or for simply the foundation for any programs connectivity, or a data layer with lots of options for storing and moving that data.

Link

#go #video
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6πŸ”₯6
βœ… Writing Idiomatic Go CLIs

This article offers best practices for building command-line interfaces in Go. It emphasizes proper structuring, error handling, dependency management, and the use of libraries like Cobra to create robust and maintainable CLI applications. The focus is on adhering to Go's idiomatic principles to ensure clean and efficient code.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘7❀3
βœ… Go range iterators demystified

This article explains the behavior and inner workings of the range keyword in Go. It clarifies how range operates when iterating over different data structures like slices, maps, and channels, and provides insights into common pitfalls and best practices. The goal is to make the concept easier to understand for Go developers.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5πŸ‘5
βœ… Announcing GoReleaser v2.1

GoReleaser is an open-source tool that simplifies the process of releasing your Go projects to multiple platforms, ensuring a consistent and reliable deployment experience. Let's see what's new!

Link

#go #tools #tool
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5❀4
βœ… Binary Search Tree with SIMD

The article explores how to create a cache-efficient binary search tree using SIMD (Single Instruction, Multiple Data) in Go. It demonstrates how SIMD can significantly improve search performance by optimizing data locality and leveraging parallel processing capabilities. The author provides implementation details, code examples, and benchmarking results to showcase the performance benefits of this approach.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘7πŸ”₯7
βœ… Go 1.23: Interactive release notes

Go 1.23 is coming soon, so it's a good time to explore what's new.

Link

#go #release #goversion
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸ”₯2πŸ‘Ύ2
βœ… Hash-Based Bisect Debugging in Compilers and Runtimes

This article talks about a debugging technique known as bisect debugging. It shows how binary search can be used on version histories and program code to quickly find bugs in compilers and runtimes. The article introduces the bisect tool, which helps isolate the exact lines of code causing issues, making it easier to debug large and unfamiliar codebases.

Link to the article

#go #article
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6πŸ”₯3