Posts

Showing posts from April, 2024

Head First Architecture Chapter-3

Image
 This chapter is mainly about the fact that software architecture has a lot of tradeoffs. An Application Scenario: A scenario was given about an application for selling sneakers (this could be anything tbh), that helps people buy, sell, and trade collectible sneakers.  The initial architecture was simple a single service that responds to requests send by mobile app users. So there are 2 options we might get into the tradeoff between them , which are using queues or using topics for messaging : so we can do the tradeoff analysis for each approach of them: 1- Queue approach  Pros:  a- It is more secure as the publishing service is aware of the receivers as each new service would have a new queue and the publishing service would need to know about it to send to it. b- we can have a different format for each receiver. c- we can scale and monitor independently each queue.  2- Queue approach Cons: a- Higher degree of coupling which hurts extensibility. b- Require...

Head First Architecture Part-2

Image
 This is the second part of covering the book Head First Software-Architecture, in this second chapter the emphasis was on the Architectural characteristics which is the first dimension of the software architecture. What is it ? There is no standard term for Architectural characteristics, sometimes these are called non functional requirements which is not accurate as these are indeed functional requirement they are just not related to the domain.Sometimes it is called cross-cutting requirements. Architects break down structure design for software system into two types: 1- Logical components: this represents the domain of the application ,the motivation for writing the software system. 2- Architectural characteristics: these are the important parts of the construction process of the software system independent of the domain. Further more we can say that Architectural characteristics have 3 main points: a- They specify a non domain design consideration: while the requirement decides ...

Head First Architecture

Image
 I have found out that there is a new book that is under early release version on the O'reilly website  called Head First Architecture that is to follow on the great Head First series , as I have read the Head First Design patterns book and really liked it several years ago and the fact that Neal Ford  (One of the authors of Software Architecture An Engineering Approach) is one of the authors, I take a look on it and found that it really is adding a lot of value at least for me, so I am doing a brief summary of it in the next couple of posts hopefully. At first it draws an analogy between building houses and building software systems, in this analogy the building plan or the blueprint of houses is the equivalent of the software architecture, what might be the similar point between both: 1- Both specify the structure of the system, in the house case it defines the rooms, walls, stairs and floors, in the case of the software system it defines the databases, services, user-i...