DEV Community

Cover image for Part1 - Introduction (Clean Architecture by Robert C.Martin)
Dipankar Medhi
Dipankar Medhi

Posted on • Originally published at dipankarmedhi.hashnode.dev on

Part1 - Introduction (Clean Architecture by Robert C.Martin)

Why is there a decline in programmers' productivity over time?

Late-night race

Modern developers are sleep deprived. They work day and night, and they don't sleep and write code all day long to complete their task before their deadline.

But sleep is essential. Sleep deprivation can affect our working potential and lower our performance while writing code. The part of the brain that knows to write good, clean code is sleeping.

Overconfidence

Modern developers are overconfident, just like the Rabbit in the "The Rabbit and The Tortoise" story.

Programmers think they can come back later to clean their mess, but they won't cause they have to deal with the new tasks.

So to maintain the company's productivity, developers must stop thinking like the Rabbit and be reliable. Developers must take responsibility for their code and try to produce well defined and clean code in the first iteration itself rather than thinking about making it better later or entirely starting over the coding process. Cause the reality is

Their overconfidence will drive the redesign into the same mess as the original project.

Which is more important? Functions or Architecture

Functions

Companies hire programmers to write code, and Managers believe writing less code to run their machines and saving money is what matters most.

And so, most programmers believe that fixing bugs and running machines with few lines of code make them better programmers.

Architecture

Another significant value of software is Architecture. Software must be easy to change and manipulate. Technology keeps changing, and so do the requirements. And to deal with new requirements, developers must be able to change old software architecture into new ones.

But the process is not as smooth as it sounds. If an architecture prefers one strategy over another, it is tough to make changes and upgrade the system. This is why the 1st year of development is often much cheaper than the later integrations.

So architectures should be flexible and adjustable.

Which one gets more importance?

A program that works fine and provides excellent performance but cannot be changed later on won't be enough in the future when the requirements are different.

And, if a program does not work as well as the first one, but is flexible and easy to change, then further debugging can make it work and keep it working in the future as the requirements vary.

Both are important, but architectures ensure longer lasting software and maintain the production costs in the long run by delivering what is important rather than urgent.


This blog is a part of my knowledge database that I am creating for everything I read/study. It is part1, and there are more parts to be read. And once I finish reading those remaining portions, I will add them to this series.


🌎Explore, 🎓Learn, 👷‍♂️Build. Happy Coding💛

Top comments (0)