Golang Project Structure

Tutorials, tips and tricks for writing and structuring code in Go (with additional content for other programming languages)

go programming

Tag

Building Real-Time Applications With Go and WebSockets

A professional woman working on a laptop while sitting cross-legged on a bed in a hotel room.

Real-time applications (RTAs) have become an important part of modern software development. From live chat applications to stock market updates and online gaming, users now expect instant interaction with all kinds of services. While traditional HTTP request-and-response models may work well for many projects, they often fall short when it comes to implementing real-time communication […]

Who Owns Golang?

A confident and rich businessman standing in modern city, surrounded by skyscrapers. He has been successful in business, and he is wearing a suit and sunglasses.

In the world of open-source software, the question of ownership can be surprisingly complex. This is especially true for Go, a language that began as an internal project at Google but has since evolved into a global phenomenon, supported by a vast and passionate community of developers. It’s easy to assume that because Go originated […]

What Does It Mean to Say That Go Is Garbage Collected?

A dumpster on a street. It is filled with garbage, waste and trash. The dumpster is used as a visual metaphor for the importance of garbage collection in programming languages.

Memory management is critical in any programming language. In traditional languages like C and C++, developers manually manage memory through the allocation and deallocation of resources. However, in modern programming languages like Go, memory management is automatically handled by a garbage collector (GC). This feature is one of Go’s greatest strengths, since it allows developers […]

Understanding Huffman Coding and Its Implementation in Go

David Huffman depicted around the time that he developed the algorithm for Huffman coding as a young man.

Huffman coding is a widely-used algorithm for lossless data compression. By assigning variable-length codes to an input string’s characters, it ensures that the most frequently seen characters have shorter codes, while less frequently seen characters have longer codes. This technique minimizes the overall size of the data to be transmitted or stored. In this blog […]

Rob Pike’s Go Proverbs (Part Two)

Rob Pike, one of the creators of the Go programming language.

This is the second part of a three-part series discussing the Go proverbs that were devised by Rob Pike. (The original post is available to read, if you haven’t already. UPDATE: And the third and final post is now available to read too.) gofmt’s Style Is No One’s Favourite, Yet gofmt Is Everyone’s Favourite The […]

Should Go Be Used for Machine Learning?

An computer rendering of a brain made from metal with wires and lights attached. It is supposed to symbolize artificial intelligence and machine learning.

Go is widely known for its simplicity, concurrency model and performance in large-scale distributed systems. But when it comes to machine learning (ML), the most dominant programming languages have traditionally been Python, R and C++. These languages have become almost synonymous with machine learning due to the wide range of mature libraries, frameworks and communities […]

How to Test Code in Go

A health worker in a laboratory is performing a medical test using high-tech scientific equipment.

Testing should be considered an essential part of the software-development process, because it helps to ensure that our code works as expected when handling a wide range of reasonable values as input. So today we are going to look at how to write tests in Go, using the built-in syntax, and how to run the […]

Let’s Do the Knuth Shuffle

A croupier in a casino shuffling a deck of cards by hard.

I know it sounds like a funky dance move, but the Knuth shuffle is actually an elegant method for randomly rearranging the elements in an array — or, as we Gophers tend to prefer, a slice. The algorithm is very easy to understand and implement, which means that you should be able to use it […]