Posted by : Unknown Monday, September 2, 2013

This entry is related to the 14th chapter of the book "Code Craft". It explains why having a software architecture is a serious issue, the similarities with "real life" architecture and some types of architecture... Pasta architecture (for real).

Let's analyze some of these points.

Yes, having a software architecture is a serious issue. This will help a programming team in order to avoid any extra efforts in a project (and by "extra" I mean "unnecesary"), like too specific/general modules, redundancy and so on. We have to remember that a project is a limited-resources (time, money and quality) effort, so we have to achieve a goal without wasting any resource.

Now, let's analyze some of the architectural styles from the book (and by "some", I mean "the ones I liked"... You know... This is my blog :P):

Obviously, having no architecture (spaghetti ball) is not the best idea, because you do not have an idea of what you have to do. Layered architecture (lasagna) is one of the most common styles: you make some low-level modules, then you make some mid-level modules (using the low-level ones) and so on. This style might work well, but if you have a distributed aplication system, for example, maybe you are looking for a server/client style (gemelli). With this style, you take on count some client actions, and you don't need to have all the functionality on the server side, and you can consider your client is not a dumb terminal (like everyone does). I really like this style, because it makes some things safer. Even when some geeky dude achieves to use a client-side code to some personal goals, you can verify if everything is working well on the server-side. Also, you can find pretty cool asychronous stuff in the client/server style (yes, yes... I really enjoyed working on distributed aplications using Node.js). Now, if you are lazy (like me :D) and you don't like to work too much in general things, maybe you will like middlewares (canned ravioli). These things are one of the best thing I've seen in my life, because they LOVE my laziness :3 Middlewares provide you some general work, which is necessary for the most basic application (yes, I love you, Express). If you are a person that likes doing all the job... Well,  middlewares are not for you... I'm sorry...

I began writting serious stuff and I ended fangirling (sorry about that). If you want to read more specifically about software architecures, I widely recommend the text I read to write this entry ("Code Craft" Ch. 14). Also, I would like you to know that I know the meaning of every culinary term used in this entry (it's hard to grow up with a chef sister). I hope you enjoyed this entry as I did. See ya!


Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Software Design and Architecture - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -