Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DDD

talles
October 05, 2016

 DDD

talles

October 05, 2016
Tweet

More Decks by talles

Other Decks in Programming

Transcript

  1. Domain-driven design (DDD) é uma metodologia de desenvolvimento de software

    que conecta implementação a um modelo em constante evolução. Sob o DDD, o desenho da aplicação deve seguir a lógica de domínio e o domínio deve ser definido e refinado pelos especialista no domínio e equipe técnica.
  2. “The essential thing about Domain Driven Design is that you

    have to care more about the business or the domain that the software is being targeted at, then you worry about the technology or whatever technique, or even the process that you are using to develop the software.”
  3. Acidental vs Essencial • Complexidade acidental é a complexidade oriunda

    das ferramentas e técnicas de desenvolvimento (técnico). • Complexidade essencial é a complexidade oriunda do problema a ser resolvido (negócio). • Segundo Brooks, a complexidade acidental diminuiu substancialmente durante a evolução da computação e os programadores de hoje passam a maior parte do tempo lidando com a complexidade essencial do problema.
  4. “I would say there is a lot of latitude but

    the most fundamental pattern of Domain Driven Design is probably the ubiquitous language. (...) But then to go with that you have to have a recognition that there are boundaries, that a model is not just floating in space, that it applies within a certain context and that context has a definitely defined limit, a bounded context for the model. With those two ingredients I would say someone is doing Domain Driven Design and there are a lot of other practices that help solve more specific problems.”
  5. • Aplicações cada vez mais complexas • Aumento da produtividade

    de desenvolvimento (desenvolvimento web) • Surgimento de algumas tendências demandam uma modelagem cuidadosa do problema (SOA) e de aproximação entre papéis técnicos e de negócio (Agile)
  6. “I actually diagram that out in a kind of informal

    notation similar to what I use in the book and I am not prescribing a particular notation, but I am saying it is valuable to actually draw a picture, get some people together usually architects and project managers and a few key customers maybe can get together and they can draw what their context map looks like and share with everybody, all the members of the team; this is well worth doing and in fact it is one of the things I frequently do with costumers, with my clients.”
  7. Entidade An object fundamentally defined not by its attributes, but

    by a thread of continuity and identity. Service An operation offered as an interface that stands alone in the model, with no encapsulated state. Objeto de valor An object that describes some characteristic or attribute but carries no concept of identity. Fábricas A mechanism for encapsulating complex creation logic and abstracting the type of a created object for the sake of a client. Agregados A cluster of associated objects that are treated as a unit for the purpose of data changes. Repositório A mechanism for encapsulating storage, retrieval, and search behavior which emulates a collection of objects.