When we think of a view, we usually relate it to the MVC pattern, created in the late 1970s by Trygve Reenskaug. However that was a long time ago and software development has changed...| @hgraca
Value objects are sometimes confused with DTOs, however, while DTOs have no significant logic, Value Objects do...| @hgraca
Data Transfer Objects (DTOs) are objects used only to pass some data around as a whole, as opposed to several individual variables...| @hgraca
Documenting Software Architecture When we need to explain to someone else (new developer, product owner, investor, …) how the application works, we need documentation. But what documentation options do we have that can express the whole application building blocks and how it works?! In this post I’m going to write about: - UML - 4+1 Architectural view model - Architecture Decision Records - The C4 Model - Dependency diagrams - Application Map| @hgraca
Reflecting architecture and domain in code In my previous posts of The Software Architecture Chronicles I've talked about many interesting ideas. However, how do we actually put it to practice in our codebase?!| @hgraca
This chapter was added to the 20-year anniversary edition of 1995 and is a transcript of a paper Brooks wrote back in 1986 titled "No Silver Bullet - Essence and Accident in Software Engineering". In it, Brooks addresses the essential tasks of building software.| @hgraca
Documentation is needed. Others need to understand what our application is, what it does how it does it, how it behaves. The application code, as well, needs to be understood, not only by the machine but also by the next developer reading it. We need to document all the way from a faraway view of the system to a detailed view of the system. Then the question is: What and how to document?| @hgraca
Plenty of projects, if not the vast majority, end up getting delayed... Some more than twice the initial estimated time and cost. This happened up until 1986, when the book was published, but it still happens today. I feel it is, sadly, very common. But how does this happen? How can we prevent it?| @hgraca
The challenge is not simply to build something that "works". It is to build something that really works in the way the end user needs it to work, with conceptual consistency, with minimal technical bugs, and that can be maintained and extended throughout a long life.| @hgraca
The work quality and efficiency of a crafter depends a lot on the tools at hand. In this chapter, Brooks makes a case for this statement validity for software developers as well and gives a list of…| @hgraca