Programming

How to name exceptions? It’s not so obvious… 24 Apr 2018

Naming things is one of the most difficult things in our job. Naming exceptions are even more complicated because exceptions are not regular classes. In this article, I’ll tell you a bit about nami...
read more...

Mutational tests 24 Mar 2018

When you have a very simple application it’s not so important to test every edge case but in a project, in the very complex domain, the priority of it will increase. The more high-quality the tests...
tests   mutational tests
read more...

DDD

Entity and value object 04 Aug 2018

Knowing the basics is the key to understanding more complex concepts. After reading this post you will know what are entities and value objects and find out differences between them. When you pay ...
ddd   entity   value object
read more...

Services in DDD finally explained 15 Jun 2018

I’ve noticed that there is always a challenge of understanding what services are in a context of domain-driven development and what is the difference between a service in an application, domain, an...
ddd   services
read more...

Golang

Golang Tips & Tricks #4 25 Mar 2019

While developing a library, we create a directory structure to keep the code organized. However, some exported functions or struct should not be used by users of the library. The achieve that, call...
golang   tipstricks
read more...

Golang Tips & Tricks #3 18 Mar 2019

In the microservices’ world, one thing what’s worth considering is a graceful shutdown. This is important to not lose data while shutting down a container. The container orchestrator like Kubernete...
golang   tipstricks
read more...

Golang Tips & Tricks #2 11 Mar 2019

When it comes to interfaces, a good practice is to create an interface where you’ll use it. Creating interfaces in advanced is not recommended in Go. There are two exceptions: you’re creating a...
golang   tipstricks
read more...

Golang Tips & Tricks #1 04 Mar 2019

You should use the package github.com/pkg/errors instead of errors package for errors in your applications. The default package lacks a few things like: stack trace easy appending message to ...
golang   tipstricks
read more...

Be aware of copying in Go 25 Jan 2019

Some bugs are very hard to find and to reproduce but easy to fix. To avoid them, it’s helpful to know how the tools we’re using work under the hood. From this article, you’ll learn what shallow and...
golang   channels
read more...

Go deeper – Database connection pool 12 Dec 2018

Golang uses a connection pool to manage opened connections for us. As a result, new connections are used when no free connection left and reuses them when golang finds an idle connection. The most ...
golang   database   performance
read more...

How to send multiple variables via channel in golang? 10 Dec 2018

Channels in golang are referenced type. It means that they are references to a place in the memory. The information can be used to achieve the goal. Firstly, let’s consider using structs as the in...
channels   golang   concurrency
read more...

GoCracow

GoCracow #3 - Grzegorz Miejski - TDD done right - tests immutable to refactor 22 Jan 2019

Do you feel tired when you see a lot of tests failing just because you’ve introduced simple business logic change or done some small refactoring? And maybe your tests do not make you feel confident...
tdd,   gocracow3
read more...

GoCracow #3 - Mateusz Szczyrzyca - Gopher in performance tales 22 Jan 2019

The presentation is about performance aspects in Go (mostly), but sometimes in general. Go is allegedly a very performance focused language, so we try to find out if we should migrate our existing ...
performance,   gocracow3
read more...