| There's not enough detail of what kind of "gold platting" the author had done. Now I'm not an expert on "architectures" or "patterns" and my view is just a personal observation when I glanced over HN, slideshare.net, and InfoQ to some extend. Often I saw 2 types of architectures: 1) System-Level 2) Component-Level The System-Level type of architecture usually shows up in companies (or person that does the explanation) where the tools being used are UNIX-y: python, ruby, rails, django, apache, nginx, mysql, linux/command-line, syslog, etc. These people/companies tend to adopt a strong "pipe"-like architecture. The mindset here is to write a program/application that does one thing really well. The Component-Level type of architecture usually shows up in places where there's a strong OOP/Java/.NET culture. Often, this is the place where many people try to write the best damn code possible. You'll see some sort of "ManagerXYZ.java" or "XYZService.java" or "PolicyXYZ.java" or "XYZProvider.java". The Component-Level type of architecture tends to link many components tightly together and somehow each Component acts as if it is a "mini-API". The mindset here is to write a library/component/class that does one thing really well. Which one that the author chose? Now when ugly code happens. Well.. I'd like to stay away from flame-war and all that stuff so I suppose you'd have to make your own judgement which way is better: System-level or Component-level. |