Time in Golang - Working With Time, Duration, and Dates (With Examples)

This tutorial will teach you how to work with Time in Go (Golang) - including how to parse and format date-time strings, add and subtract time durations, and get the current system time. The main library that we’ll use when working with times and dates is the time standard library. Getting the Current System Time Let’s begin with an example of creating a new Time instance from the current system time:...

 · Soham Kamani

Using an SQL Database in Go (With Production Readiness)

This post will go through how to interact with an SQL database in Go, and how to make your Go application production ready when it comes to connecting and querying your database server. If you just want to see the example code, you can view it on Github The “database/sql” Standard Library Let’s go through the architecture of the standard library package used for interacting with SQL databases in Go: database/sql....

 · Soham Kamani

Using Enums (and Enum Types) in Golang

This post will describe how to implement and use enumerations (or enum types) in Go. Enums are types that contain only a limited number of fixed values, as opposed to types like int or string which can have a wide range of values. This is useful for many situations: For example, when describing seasons in temperate climates, you’ll want to limit the options to certain possible values: Summer, Winter, Spring and Autumn....

Last Updated:   · Soham Kamani

Implementing RSA Encryption and Signing in Golang (With Examples)

This post will describe what the RSA algorithm does, and how we can implement it in Go. RSA (Rivest–Shamir–Adleman) encryption is one of the most widely used algorithms for secure data encryption. It is an asymmetric encryption algorithm, which is just another way to say “one-way”. In this case, it’s easy for anyone to encrypt a piece of data, but only possible for someone with the correct “key” to decrypt it....

 · Soham Kamani

A Guide On SQL Database Transactions In Go

This article explains what SQL database transactions are, and how to implement them in Go (Golang). Transactions are very useful when you want to perform multiple operations on a database, but still treat them as a single unit. We will go into detail on why this is useful, and how you can use it in your Go applications. To illustrate our examples, we will use Postgres as our database of choice....

 · Soham Kamani

Making an interactive Telegram bot in Go (Golang)

This tutorial will go through a straightforward set of steps to get a responsive telegram bot up and running from scratch in Golang I spent a considerable amount of time figuring out how to make a functional telegram bot. I mean sure, the official introduction is good, but theres a lot of stuff about what bots are, and a few scattered instructions about the API, but not enough of structure for a beginner to get up and running quickly....

 · Soham Kamani

Functional Options in Go: Implementing the Options Pattern in Golang

This post talks about what functional options are in Go, and how we can use the options pattern to implement them. Functional options take the form of extra arguments to a function, that extend or modify its behavior. Here’s an example which uses functional options to create a new House struct: h := NewHouse( WithConcrete(), WithoutFireplace(), ) Here, NewHouse is a constructor function. WithConcrete and WithFireplace are options passed to the constructor to modify it’s return value....

 · Soham Kamani

Command Pattern in Go (Golang)

This article will explain the command pattern, where to use it, and how to implement it in Go. The command pattern, as the name suggests, is used when we want to create and execute “commands”. Different commands have their own implementation, but have the same steps for execution. The Command Interface The basic unit for implementing the command pattern is the Command interface: type Command interface { execute() } If the command can error out, the interface can contain an error return value as well:...

 · Soham Kamani

A Comprehensive Guide of Arrays and Slices in Golang (and their differences)

At first, it’s easy to see arrays and slices as the same thing: a data structure to represent collections. However, they are actually quite different from one another. In this post we will explore their differences and implementation in Go. We will then look at some examples so that you can make a more informed decision on when to use them. Arrays An array is a fixed collection of data. The emphasis here is on fixed, because once you set the length of an array, it cannot be changed....

 · Soham Kamani

Golang functions vs methods 👯‍♀️

This post will describe the key differences between functions and methods in Go, and when it’s best to use them. Functions and methods are both used extensively in Go to provide abstractions and make our programs easier to read and reason about. On the surface, functions and methods both look similar, but there are some important semantic differences which can make a big difference to the readability of your code....

 · Soham Kamani