Limit your abstractions - Série sobre abstrações e seus custos
O blog do Ayende é um dos que considero leitura obrigatória pra qualquer desenvolvedor, ainda mais .NET. Ele já me salvou de usar abstrações inúteis uma vez e nesta série ele volta a falar sobre abstrações que mais atrapalham do que ajudam, adicionando complexidade e "cerimônia" que não ajudam em nada.
Ele fala um pouco sobre como ele costuma programar e o design usado. As aplicações que ele desenvolve costumam ter 7 abstrações:
- Controllers
- Views
- Entities
- Commands
- Tasks
- Events
- Queries
Os três primeiros são bastante conhecidos, Commands são como um pacote, que acontece assim que é chamado, as Tasks por sua vez não tem um momento exato para ocorrerem, como uma tarefa assíncrona. Events são usados quando algo importante acontece no sistema e requer uma ação. E as Queries também são obvias.
A série até agora já tem 13 partes:
Limit your abstractions: Analyzing a DDD application
Limit your abstractions: Application Events–the wrong way
Limit your abstractions: Application Events–what about change?
Limit your abstractions: Application Events–Proposed Solution #1
Limit your abstractions: Application Events–Proposed Solution #2–Cohesion
Limit your abstractions: Application Events–event processing and RX
Limit your abstractions: You only get six to a dozen in the entire app
Limit your abstractions: Commands vs. Tasks, did you forget the workflow?
Limit your abstractions: All cookies looks the same to the cookie cutter
Limit your abstractions: So what is the whole big deal about?
Limit your abstractions: Refactoring toward reduced abstractions
Limit your abstractions: The key is in the infrastructure…
Limit your abstractions: And how do you handle testing?