Posts – Page 2

3 min read

O from SOLID

Software designSOLID

# Open/Closed Principle (OCP) in Software Design ## Introduction The Open/Closed Principle (OCP) is the second SOLID principle. It states that "software entities (classes, modules, functions, etc.) should be…

5 min read

S from SOLID

Software designSOLID

# Single Responsibility Principle (SRP) in Java ## Introduction The Single Responsibility Principle (SRP) is one of the five SOLID principles of object-oriented design. It states that a class…

2 min read

Full stack developers

FullstackThoughts

![Full stack developer](/assets/full-stack-developer.png "Full stack developer") Looking for the meaning of **full stack developer** on [**Google**](https://www.google.com/search?q=full+stack+developer), yields a range of definitions. Some of which says, a full stack developer…

2 min read

Technical debt

Software design

![technical debt](/assets/technical-debt.png "technical debt") In an agile environment, during the [sprint planning](https://en.wikipedia.org/wiki/Scrum_(software_development)), prioritized tasks are defined, and unnecessary ones are deferred. tasks such as: - Migrate to the new…

7 min read

Microservices vs Monoliths

Software designSoftware architecture

Microservices are an architectural style that splits a software to a collection of fine-grained services. Those services have to be: - Loosely coupled with other services. - Independently testable.…

1 min read

Best Of: The Early History Of Smalltalk

Software designThoughts

> Smalltalk’s design–and existence–is due to the insight that everything we can describe can be represented by the recursive composition of a single kind of behavioral building block that…

1 min read

React Hooks: UseReducer Generics Params In Typescript

ReactJSThoughtsTypescript

The new React Hooks introduces a lot of functions to encourage the creation of function components. One of those functions is the ``useReducer``. ```typescript function useReducer<R extends Reducer<any, any>>(…

2 min read

Hexagonal Architecture

Software designSoftware architecture

> The _ **_hexagonal architecture_** _, or _ **_ports and adapters architecture_** _, is an architectural pattern used in _ **_software design_** _. It aims at creating loosely coupled…

1 min read

Anemic vs Rich Domain Models

Software designDomain driven design

![technical debt](/assets/anemic_domain_model.jpg "technical debt") An **Anemic Domain Model** is a model that is focused on the state of the object. This is not what is advised while using [**Domain…

4 min read

Domain Driven Design Core Concepts

Software designDomain driven design

![](/assets/whiteboard.jpg) In this blog I&#39;m sharing my understandings on the core concepts of Domain Driven Design. **Domain Driven Design** or **DDD** for short should only be used in fairly…