Sign in

Senior Software Developer. Loving to gain & share knowledge. Focused on Microsoft technologies like Azure, .NET Core & C#. Software Architecture enthusiasist.

SOFTWARE ARCHITECTURE & REFACTORING

“A microservice architectural style is an approach to developing a single application as a suite of small services.” — Martin Fowler.

Monolithic Architecture vs. Microservice Architecture

First, we will find out what is Monolithic Architecture. Therefore, I will show you how to modify its domain to be ready for Microservice Architecture. In the end, I will briefly tell you the basics of Microservice Architecture and judge its pros and cons.

Monolithic Architecture

Monolithic Architecture is every non-vertically divided architecture. Vertical division in software design means splitting the application into more deployable units. This does not mean that monolith can’t be horizontally divided into layers.

The adjective monolithic refers that the architecture of software consists of one backend unit. …


SOFTWARE ARCHITECTURE

The software architecture should scream the intent of the system. — Uncle Bob

The screaming architecture of Software

Let me hear you scream like you want it
Let me hear you yell like you mean it

This is a part of the refrain from Ozzy Osbourne’s song “Let Me Hear You Scream.” Let me modify it a little bit into a software-related context.

Let me hear it screams like client want it
Let me hear it yells like client mean it

Otherwise, let your software architecture copy the intent of an application. The purpose of the application is mostly what the client wants. This is the ceiling of my creativity. Enjoy it. It will not get any better.

Screaming Architecture


This is a list of things that completely changed me in 2020, and it was not the COVID-19.

This year is hard for all of us. When everybody is scared of how global warming affects humanity's future, other catastrophes came by. Large fires in Australia, COVID-19 Pandemic, American Riots, and recent events, the Islamic state’s strikes in France and Austria.

But from my individual perspective, I love the year 2020. This year was groundbreaking for my career. My long-term relationship with the love of my life could not be better, and I doubled my incomes in nine months. Here is what happen.

Entrepreneurship


SOFTWARE ARCHITECTURE & REFACTORING

Architectures have the same objective — the separation of concerns. They all achieve it by dividing the software into layers. — Uncle Bob

Layers and direction of data flow through them

Layers

Layers are horizontal (don’t get confused with title image) abstract parts of an application. Their boundaries are making a right angle with the data flow. Layers are representing the different levels and types of abstraction of the concerns which accompany software development.

  • Maintains the Single Responsibility Principle.
  • Follows Separation of Concerns.
  • Isolates development roles & skills. (Presentation Layer — FE dev, Business Layer — BE dev)
  • Supports multiple implementations. (Interchangeable Presentation Layer)
  • Varying rates of change.
  • Slices application to more manageable units.

Layered Architecture Pattern

This is the most common architecture pattern, also known as the n-tier architecture pattern. …


Azure

What is Identity? Azure Active Directory is just Active Directory in Azure? Microsoft Graph is a Data Visualization Framework or What?

Credits of logos for Microsoft.

Identity

What is Identity in Cloud

Identity is a unique identification of an object. Such an object can be a human being, machine, or a combination of it. When we talk in the cloud computing context, identity means a set of properties about this object stored in the cloud's datacentre.

Identity & Access Management

Identity Management (IdM) and Identity and Access Management (IAM) is an interchangeable term in identity access management. So if you are reading about one, you are probably reading about the second term too.

IAM is a framework of policies that tell what users can do in their restricted area and what he needs from the user…


SOFTWARE ARCHITECTURE & REFACTORING

Separation of concerns is a technique for the effective ordering of one’s thoughts. You should focus one’s attention upon one aspect. — Edsger W. Dijkstra

Command-Query Separation (CQS)

In 1988 Bertrand Meyer devised the CQS principle for object-oriented languages in the book Object-Oriented Software Construction. In simple words, the principle says that software should either modify the system (commands) or return values (queries) and you should maintain the command-query separation in your software.

Martin Fowler in his blog post from 2005 is saying that it is not always possible to achieve such separation and he is right. A good example of it is returning the id of the just inserted record. …


SOFTWARE ARCHITECTURE & REFACTORING

The first concern of the architect is to make sure that the house is usable; it is not to ensure that the house is made of brick. — Uncle Bob

Domain

The expression domain is occurring in software bibles for a very long time now and is heavily discussed in the book Domain-Driven Design by Eric Evans. The domain is the real-world context which you are attempting to solve by writing a piece of software. Simply said, the domain is the thing why software exists and is about.

Evans divides the domain into three subdomains.

The core domain represents a competitive advantage and the software’s reason for being. It is a hearth of the software with the most fundamental business rules, use cases, and domain models. It usually is the smallest…


AZURE & CLOUD

Introduction to Azure Resource Groups and Azure Resources. How they are related and what are they capable of.

Introduction

Once you have your Azure account and access into Azure portal, you are ready to create your first Azure Resource Group and add some resources into it. You will also need a subscription. If you don’t have any of those things then I would recommend you to see my tutorial How to Create an Azure Account.

Azure Resource

Azure Resource is the manageable item in Azure. It includes things like Virtual Machines, Azure Storage Accounts or Azure Web Service. The Azure resource is an instance of Azure Services.

There are three basic divisions of Azure Services.

  • Infrastructure as a Service (IaaS)
  • Platform…

AZURE & CLOUD

What you should consider before choosing Azure Region? How Microsoft geographically divide datacentres position to secure high availability and disaster recovery?

Introduction

Most of the Azure resources demand the region to be specified. I was struggling with this choice and always picked the one nearest to my location. Lately, I found out that the choice should be made more based on the physical location of resource users than the location of me, and I changed it.

After a while, one question still bothers me — Does the choice of region matter more than I think? Then, I started to dig deeper into this topic and boy. It really matters, especially on enterprise application levels.

Azure Regions

Azure regions approximately specified Azure Resource’s physical location…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store