Clean Architecture: Comprehensive Beginners Guide to Learn and Understand Clean Architecture by Wallace Connor
Author:Wallace, Connor [Wallace, Connor]
Language: eng
Format: epub
Published: 2020-06-05T16:00:00+00:00
Chapter Eight: Drawing Lines
This chapter examines the first process of designing a clean architecture. We will be using the rules and all the explanation so far in creating our software. The chapter explains the following topics:
· Drawing lines
· Input and output of a system
· Plugin Architecture
· Boundary anatomy
Software architecture focuses more on drawing lines. In programming, these lines are referred to as boundaries. The boundaries are what the architect use in separating one software element from the other. They are also used to restrain a component of software elements from depending on other components. Boundaries are used to separate components dependencies. Usually, the architect starts his design by drawing out the lines that will be used in the system. However, there is no rule stating that designs should be started in this format. Lines can also be created at the end of the system structure. The boundaries drawn at the beginning of the software are used for deferring decisions and for keeping these decisions from affecting the essence of the system.
In the previous chapter, it was established that the goal of software architecture is to ensure that the human resources needed to keep a system is minimized to the barest minimum. The architect will also ensure that the software system is flexible enough for changes. High cost of maintenance usually occurs when systems are coupled with premature decisions. Premature decisions are decisions that have nothing to do with the business requirements of the system; examples are decisions of utility library, framework, web server, database, and so on. The validity of software is determined if decisions like the above mentioned are made deferrable.
How To Determine The Lines To Draw And When To Draw The Lines
As already explained above, lines are to be drawn on both the things that matter to the effectiveness of the system and things that don't. For instance, the Graphic User Interface does not matter to the system's business. Hence lines should be drawn on it, the database does not also matter to the GUI and the business rules, but the line should also be drawn on it.
Most often than not, we have been taught that the database is very important to the business rule, but this is misguided information. As explained in the previous chapter, the business only make use of the database indirectly. This means that the database does not need to know about the query language or the schema and other information contained in the database. All the business rule makes use of are the sets of information used to save and fetch data. As a result, we put the database behind the business rule in our system.
Where Do We Fix our Boundary Line ?
The boundary line is usually below the database, just across the inheritance relationship. This diagram below captured this.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
AI & Machine Learning | Bioinformatics |
Computer Simulation | Cybernetics |
Human-Computer Interaction | Information Theory |
Robotics | Systems Analysis & Design |
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8293)
Test-Driven Development with Java by Alan Mellor(6665)
Data Augmentation with Python by Duc Haba(6568)
Principles of Data Fabric by Sonia Mezzetta(6330)
Learn Blender Simulations the Right Way by Stephen Pearson(6215)
Microservices with Spring Boot 3 and Spring Cloud by Magnus Larsson(6088)
Hadoop in Practice by Alex Holmes(5958)
Jquery UI in Action : Master the concepts Of Jquery UI: A Step By Step Approach by ANMOL GOYAL(5806)
RPA Solution Architect's Handbook by Sachin Sahgal(5483)
Big Data Analysis with Python by Ivan Marin(5331)
The Infinite Retina by Robert Scoble Irena Cronin(5182)
Life 3.0: Being Human in the Age of Artificial Intelligence by Tegmark Max(5140)
Pretrain Vision and Large Language Models in Python by Emily Webber(4294)
Infrastructure as Code for Beginners by Russ McKendrick(4053)
Functional Programming in JavaScript by Mantyla Dan(4037)
The Age of Surveillance Capitalism by Shoshana Zuboff(3943)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3766)
Embracing Microservices Design by Ovais Mehboob Ahmed Khan Nabil Siddiqui and Timothy Oleson(3569)
Applied Machine Learning for Healthcare and Life Sciences Using AWS by Ujjwal Ratan(3543)
