If you are an experienced developer, most likely you can stop reading right now, as it is very likely that a term clean architecture is something you know very well. However, for someone who is not so deep into a software development might be confused. Why architecture? Why it should be clean?
However, if you are just working with developers – our article might be useful for you. Let us try to explain those important concepts you might hear about from your development team.
Software architecture refers to the fundamental structures of a com system – a very important topic in the discipline of creating such structures and systems. Such architecture comprises software elements, relations among them, and properties of both elements and relations. The architecture of a software system is a metaphor, analogous to the architecture of a building. An architect plans, designs and helps to construct a building, most often starting with some raw sketches that are transformed into a more refined project. In a similar way – a software developer is applying his knowledge in order to plan the way software will be built. And yes, in many cases it can start with a drawing of the overall structure of the software.
Clean architecture is a concept of creating software by applying some patterns, proposed and implemented first by Robert C. Martin, known otherwise as Uncle Bob. Based on his experience and the work by previous software development gurus, he has proposed that well-built software should:
- Be composed of various components that are separated between each other. Each component should have a single responsibility.
- Be composed of layers – with different responsibilities of each of that layer.
- Have a domain of the problem in the center of the solution.
As clean architecture is well-defined and, in fact, quite complex – we are not going to cover it in detail. However, if you are interested in reading more about such details – we encourage you to read an article by Robert C. Marting himself or a nice introduction created by the team behind Pusher. There you can find more information about concepts such as entities, use cases, adapters or even SOLID principles.
Why clean architecture is important?
That still does not answer an important question: why clean architecture is important for many software development teams, including those working purely in the area of mobile apps?
An answer is simple – we, software developers, have relatively little regulations that enforce us to use some patterns in our job. However, having some rules that are helping to better structure our work is an important topic, as many of us have learned in the past years.
In addition to that, clean architecture is a set of patterns and rules that many of us have adopted – to the point that it is becoming a common language we all understand, a lingua franca of our profession. As a software developer without prior experience in one project, we can feel much more confident if it is built from blocks we know already.
Clean architecture and Handcrafted Platform
Clean architecture is an important concept we had in the mind while working on the Handcrafted Platform – our rapid mobile application development framework. In addition to the reasoning above – it is also a part of the software craftsmanship movement, that has a goal of bringing better software for all of us. You can get information about the ways we can help you with creating your app with the most commonly used software architecture patterns by contacting us on our email address: firstname.lastname@example.org