Software Architecture Notes Edit
Who is an Architect
In software industry there is no clear definition of an architect. Given a project an architect should be able to give a clear technical road map of how the project will be structured, selection of components, database design, technology stack, design pattern, architecture pattern, infrastructure, oops. An architect should also need to know how to estimate the time in a quantifiable scientific manner and should know UML. Architect should follow Domain Driven Development, which means you design what's in the requirement nothing more nothing less.
Types of classes
- Entity: Domain Specific or Real world Eg City, Address
- Service: Technical Classes Eg Logger, HTTP
- Value Object: Comparing based on value Eg Comparing Currency, Comparing Dates
Anamic Model vs Rich Domain
Anamic Model separates the logic from data. Rich domain model put the logic and data in the same model.