SlideShare uma empresa Scribd logo
De onde veio e porque voltou?
Menos código
Higher order function
Pure function
Currying
Recursion
Map
List comprehension or for comprehension
Filter
Pattern Matching
Fold
Herança/Polimorfismo
Herança
Polimosfismo
Principais pontos do DDD
Alinhamento de código com Negócio
Favorece a reutilização
Diminui o Acoplamento
Independência de Tecnologia
In DDD, we don’t consider any databases.
DDD is all about the domain , not about the database, and Persistence
The domain layer is the heart of the software and this is where the
interesting stuff happens
DDD não é uma bala de prata para todo o desenvolvimento do aplicativo,
ele apenas ajuda a gerenciar a complexidade, quando a complexidade
vem do domínio.
Eric Evans
Tudo se resume à complexidade do comportamento em
seu sistema. Se você complicada e a cada mudança de
regras de negócios que envolvem a validação, cálculos, e
derivações ... você vai querer um modelo de objeto.
Martin Fowler
Layers
User interface
Responsável por apresentar informações ao usuário e interpretar os comandos do
usuário.
Coordena a atividade de aplicativos.
Aplication layer
Domain layer
Contém informações sobre o domínio do negócio.
Infrastructure layer
Esta camada atua como uma biblioteca de suporte para todas as outras camadas.
Ele fornece comunicação entre as camadas, implementa persistência para objetos
de negócios
Value Object != Entity
Você compra um livro para formar a biblioteca. Se você
perder esse livro e comprar outro e você não se importa
qual é qual, em seguida, o livro é um Value Object.
Mas se o livro que você compra é assinada pelo autor, e é
muito difícil substituí-lo. Você se preocupa com esse livro
específico, outra cópia simples não irá substituí-lo. Esse
livro é uma Entity.
F# / DDD
http://www.tryfsharp.org
http://fsharpforfunandprofit.com
Domain driven design com functional programing(f#)

Mais conteúdo relacionado

Destaque

Destaque (9)

Introduction into Procedural Content Generation by Yogie Aditya
Introduction into Procedural Content Generation by Yogie AdityaIntroduction into Procedural Content Generation by Yogie Aditya
Introduction into Procedural Content Generation by Yogie Aditya
 
Mule soft esb – data validation best practices
Mule soft esb – data validation best practicesMule soft esb – data validation best practices
Mule soft esb – data validation best practices
 
CloudHub networking guide
CloudHub networking guideCloudHub networking guide
CloudHub networking guide
 
Testing in Game Development
Testing in Game DevelopmentTesting in Game Development
Testing in Game Development
 
Mule error handling_choice exception strategy
Mule error handling_choice exception strategyMule error handling_choice exception strategy
Mule error handling_choice exception strategy
 
Are you in control of Testing, or does Testing control you?
Are you in control of Testing, or does Testing control you? Are you in control of Testing, or does Testing control you?
Are you in control of Testing, or does Testing control you?
 
Docker Compose
Docker ComposeDocker Compose
Docker Compose
 
Google BigQuery 101 & What’s New
Google BigQuery 101 & What’s NewGoogle BigQuery 101 & What’s New
Google BigQuery 101 & What’s New
 
Conectores mule
Conectores muleConectores mule
Conectores mule
 

Semelhante a Domain driven design com functional programing(f#)

Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven Design
Lambda3
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
André Borgonovo
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
Marcius Brandão
 

Semelhante a Domain driven design com functional programing(f#) (20)

A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven Design
 
Arquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerArquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain Layer
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
Programando com prazer com DDD
Programando com prazer com DDDProgramando com prazer com DDD
Programando com prazer com DDD
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
 
DDD - Step by Step
DDD - Step by StepDDD - Step by Step
DDD - Step by Step
 
Gestão estratégica de TI
Gestão estratégica de TIGestão estratégica de TI
Gestão estratégica de TI
 
Treinamento DDD .Net
Treinamento DDD .NetTreinamento DDD .Net
Treinamento DDD .Net
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Net Place - Apresentação Institucional
Net Place - Apresentação InstitucionalNet Place - Apresentação Institucional
Net Place - Apresentação Institucional
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise Patterns
 
Day 0 iniciando na carreira em ti
Day 0   iniciando na carreira em tiDay 0   iniciando na carreira em ti
Day 0 iniciando na carreira em ti
 
Explore o uso de Dados LiDAR no FME
Explore o uso de Dados LiDAR no FMEExplore o uso de Dados LiDAR no FME
Explore o uso de Dados LiDAR no FME
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014
 
Mw corp-2013-ss
Mw corp-2013-ssMw corp-2013-ss
Mw corp-2013-ss
 

Mais de Rafael Salerno de Oliveira

Mais de Rafael Salerno de Oliveira (20)

TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Aws route 53
Aws route 53Aws route 53
Aws route 53
 
Aws Network Introduction
Aws Network Introduction Aws Network Introduction
Aws Network Introduction
 
Aws system manager
Aws system managerAws system manager
Aws system manager
 
Clean code
Clean codeClean code
Clean code
 
Kontena
KontenaKontena
Kontena
 
Docker hub
Docker hubDocker hub
Docker hub
 
Docker cloud
Docker cloudDocker cloud
Docker cloud
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Virtual box
Virtual boxVirtual box
Virtual box
 
Serf
SerfSerf
Serf
 
Vagrant
VagrantVagrant
Vagrant
 
V8 Google
V8 GoogleV8 Google
V8 Google
 
Thinking in systems
Thinking in systemsThinking in systems
Thinking in systems
 
Design pattern for mobile Android IOS
Design pattern for mobile Android IOSDesign pattern for mobile Android IOS
Design pattern for mobile Android IOS
 
Batoo jpa
Batoo jpaBatoo jpa
Batoo jpa
 
Hammock Driven Development
Hammock Driven DevelopmentHammock Driven Development
Hammock Driven Development
 
Responsibility Driven Design
Responsibility Driven DesignResponsibility Driven Design
Responsibility Driven Design
 
Service Design Patterns - Study Case
Service Design Patterns - Study Case  Service Design Patterns - Study Case
Service Design Patterns - Study Case
 

Domain driven design com functional programing(f#)