Posts by Category

Blog

Defining Software Architecture

2 minute read

The software community has been engaged in a longstanding debate over how to define “architecture.” Some believe it refers to the underlying structure of a s...

CAP Theorem

1 minute read

The CAP theorem is a concept in distributed computing that states that in any distributed system, you can only have two out of the following three guarantees...

Facade Design Pattern

2 minute read

The Facade design pattern is a structural pattern that allows for hiding the complexity of a subsystem by providing a simple interface to it. The interface ...

Prefer Composition over Inheritance

2 minute read

You probably already thought about this, as its quite popular statement. Let’s delve deeper into the subject. I wrote article that explain what is compositio...

What is coupling?

3 minute read

In object-oriented paradigm, Coupling refers to the degree of direct knowledge that one element has of another. We may generally divide coupling to tight and...

Static Factory Method

1 minute read

In an object-oriented language like Java, what could be wrong with constructors? Overall, nothing. Even so, the famous Joshua Block’s Effective Java Item 1 c...

Aggregate Pattern

1 minute read

The Aggregate is one of the main pattern in Domain Driven Design (DDD) introduced by Martin Fowler.

Trees

2 minute read

a data structure that is constructed with nodes, where each has some value and may point to child-nodes, which recursively form subtrees in the tree.

Graphs

1 minute read

Graph is a collection of nodes that may or may not be connected to each other.

Strings

less than 1 minute read

String

Hash Tables

1 minute read

A data structure that store data in key-value pairs and provides fast insertion, deletion and searching.

Linked Lists

1 minute read

Is very similar to array, at least conceptually, to an array.

Arrays

2 minute read

There are two types of arrays. Static and dynamic ones.

Logarithm

1 minute read

It’s mathematical concept which is very often used in Computer Science in context of algorithms complexity, it’s even sounds similar 😀

Big O Notation

3 minute read

The Big O Notation is a mathematical, asymptotic notation that describes time complexity and space complexity of algorithms/ function when the argument tends...

Complexity Analysis

less than 1 minute read

It’s a process in which we determine how efficient an algorithm is. There are multiple ways to solve the same issue but the complexity analysis will likely d...

Builder Design Patter

1 minute read

Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representa...

Spring Cache

3 minute read

What is Spring Cache? How to configure it in your project and how to use it? How does Spring Cache work? How to add an external provider that allows flexible...

Observer Design Patter

1 minute read

The observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies t...

Spring Bean Scopes

2 minute read

The scope defines the runtime context within which the bean instance is available.

Custom Assertions with AssertJ

less than 1 minute read

You may have contact with test that are not too readable, as the communicates when they fail. In that case you should take in consideration creating your own...

Strategy Design Patter

1 minute read

Strategy is a behavioral design pattern that lets you define a family of algorithms, put each of them into a separate class, and make their objects interchan...

What are benefits of testing?

1 minute read

Do i really need tests? Isn’t it a waste of time? And other questions like this that you might asked once or still asking yourself. Its not true and let me e...

Back to Top ↑