Golang flyweight pattern

The flyweight pattern is a design pattern I am not seeing that often in code bases but can be a good design pattern to reduce memory. The core idea is to initialize objects an share them as often as possible for reuse. Mostly the flyweight pattern can be seen in...

Golang singleton pattern

There are a number of design patterns I am using on daily bases, and one of them is the Singleton pattern. In Golang penalties in performance are not so harsh as in other languages, if the application is not designed and written to perform with minimal CPU and memory...

Web Services in Docker with Golang

This post is a walkthrough on my approach to develop and deploy Golang web service in Docker container. There are many reasons for integrating Docker into the daily routine as a developer, one being the simplification of setting up a separated runtime environment....

HTTP load testing strategies and tools

In most cases web applications are well covered with unit tests, to covert a functional requirements and acceptance tests. Unit tests combined with Continuous Integration can improve the deviling rate of a team/company. At the same time it can remove the need of...

Heapsort algorithm (Java)

Heapsort algorithm details: Worst-case Time Complexity: O(n log(n)) Space Complexity: O(1)   The algorithm The heapsort algorithm is an in-place, comparison based sorting algorithm. In the core of the algorithm (as the name suggest), the use of the heap data...

Merge sort algorithm (Java)

Merge sort algorithm details: Worst-case Time Complexity: O(n log(n)) Space Complexity: O() The algorithm Merge sort is comparison based algorithm, from the efficient sorting category. The algorithm is based on “Divide and conquer” (John Van Neumann),...