• Contains highly-contagious traces of controversial ancient wisdom • YMMV • I didn’t (won’t) violate any dark-secret pacts I have with my employers / customers / family & friends today
agile projects are now, steadily and iteratively, producing crap code” • Developers estão muito focados em tecnologia e base de dados (complexidade essencial vs técnica)
you have to know what that software is about. You cannot create a banking software unless you have a good understanding of what banking is all about. One must understand the domain of banking.”
conhecimento, influencia e actividade sobre um dada situação • é também um conjunto de conceitos que através da sua aplicação nos permitem resolver problemas • DDD significa, fazer o design (de um software) orientado pelo conhecimento sobre a situação (em que o software se insere)
“Its a conundrum. The people who are experts in the problem domain - the domain experts - are rarely qualified to write software. The people who are qualified to write software - the programmers - don’t always understand the problem domain”
domain, they learn only what the application should do, not the principles behind it. Useful software can be build that way, but the project will never arrive at a point where power new features unfold as corollaries to older features.”
numa colaboração criativa entre domain experts e software experts • Falar uma linguagem ubíqua (ubiquitous language) em um contexto delimitado (bounded context) explicito • Escrever código que expressa esses modelos explicitamente
descreve aspectos chave selecionados de um domínio, que pode ser usado para resolver problemas no tal domínio • Modelos evoluem a medida que nossa compressão sobre o problema evolui • Um modelo possui linguagem (jargão) e pode ter várias representações
desenvolvêssemos um app USSD para que os seus clientes possam transacionar sem precisar dirigir-se a um ATM ou balcão. • Transacções OIC são feitas com NIB e transações internas são feitas com o Número de conta. O montante máximo permitido por transação é de 10K a menos que o cliente seja Premium. Transferências OIC de montantes acima de 100K devem ser remetidas via MTR. Os clientes devem ser notificados de cada transacção via SMS
De Entrar nos detalhes da implementação. Destaca o que é estrategicamente importante para o seu Negócio, como dividir o trabalho por importância E como fazer integrações da melhor maneira.”
e precisa. Para isso existem várias técnicas de facilitação: • DDD Whirlpool - Eric Evans - @ericevans0 • BDD - Dan North - @tastapod • Event Storming - Alberto Brandolini - @ziobrando • User Story Mapping - Jeff Patton - @jeffpaton • Domain StoryTelling - Stefan Hofer - @hofstef