Chapter 3: The return of the Lego´s

Once again, my life was faced again with ethical dilemmas, world changing questions, and some comparisons between Lego bricks and a component in this software architecture course.

Original poster of that class

This time´s blog is aimed towards the chapter 14 from Pete Goodliffe’s book “Code Craft: The Practice of Writing Excellent Code.”, where the topic of software architecture foundations was approached. As well as conventional architecture, it isn’t the act of building that we are focusing on, neither on the design of the building, but in the design of the blueprints (And that’s how far my “conventional architecture” knowledge goes). However, there are a lot of other topics covered abroad building blueprints, starting with points of view, components, and the different styles used to design software architecture.

I think that many of us (programmers) may jump directly into software design and then immediately start coding. And while that extra step before coding helps how we approach the problem, sometimes it is not enough. Software architecture is needed for having a solid foundation from the beginning of a project, avoiding huge problems along the way. One of the benefits I like the most of this type of planning is how we prepare for upcoming changes; it is very important to know from the start which elements or components are probable to stay the same through the implementation of the system or which parts are likely to change. Something important (that is often omitted by us) is documentation. While this is the design of the blueprint, each detail and decision must be documented for later consulting.

However, with all those considerations, a good system architecture is simple; there must be a balance. There should be neither too few nor too many components. It also identifies the key components, not how they work, as well as leave space for extensions and modifications, but has defined uses too. In conclusion, the key word in laying the foundations of software design is “Balance”, we have to reach the halfway in each section of the architecture so we can accomplish the best possible system design.

References:
Goodliffe Pete (2006). Code Craft: The Practice of Writing Excellent Code.

Comments

Popular posts from this blog

Chapter 4: Architectus Reloadus vs Architectus Oryzus

Chapter 9: Microservice Architecture: A whole new Architectural world.

Chapter 11: Metaprogramming