Articles

Let's talk Tech!

Hexagonal Architecture - Ports and Adapters with Interfaces

Leveraging Hexagonal Architecture, making components exchangeable at any level and facilitates test automation

The idea of Hexagonal Architecture is to put inputs and outputs at the edges of our design. Business logic should not depend on whether we expose a REST or a GraphQL API, and it should not depend on where we get data from — a database, a microservice API exposed via REST, or just a simple CSV file. The pattern allows us to isolate the core logic of our application from ou...

read more

Clean Code - Honesty in small things is not a small thing

Writing clean code is what you must do in order to call yourself a professional.

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way. Noted software expert Robert Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship....

read more

SOLID: The First 5 Principles of Object Oriented Design

Software development principles are guidelines to follow when building software

SOLID is a mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable. The principles are a subset of many principles promoted by American software engineer and instructor Robert C. Martin, first introduced in his 2000 paper Design Principles and Design Patterns discussin...

read more

Software Design Patterns Every Developer Should Learn

Reusable solution to a commonly occurring problem within a given context

Over 20 years ago the iconic computer science book “Design Patterns: Elements of Reusable Object-Oriented Software” was first published. The four authors of the book: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, have since been dubbed “The Gang of Four”. In technology circles, you’ll often see this nicknamed shorted to GoF. Even th...

read more

General Responsibility Assignment Software Patterns

GRASP, a set of nine fundamental principles in object design and responsibility assignment

General Responsibility Assignment Software Patterns (or Principles), abbreviated GRASP, is a set of "nine fundamental principles in object design and responsibility assignment" first published by Craig Larman in his 1997 book Applying UML and Patterns. The different patterns and principles used in GRASP are controller, creator, indirection, information expert,...

read more

Object-Oriented Analysis and Design

The object-Oriented paradigm emphasizes modularity and re-usability

Object-oriented analysis: The purpose of any analysis activity in the software life-cycle is to create a model of the system's functional requirements that is independent of implementation constraints.The main difference between object-oriented analysis and other forms of analysis is that by the object-oriented approach we organize requirements around objects, which integrate b...

read more