SlideShare uma empresa Scribd logo
1 de 28
Engenharia de software
iBeer 2018
Raphael Nascimento
Felipe Rugai
Quem somos…
▪ Raphael Nascimento
▪ Rasta, Pai
▪ Arquiteto de Software
▪ 15 anos na área
▪ Casado
▪ Pai da Lorena
▪ Felipe Rugai
▪ Gordo
▪ Desenvolvedor full-stack
▪ 2 anos na área mas mtos deV.I.D.A™
▪ Casado?
▪ Pai da Clara
Engenharia de Software
▪ Padrões
▪ Boas práticas
▪ Experiência
PADRÃO
Um padrão é uma regra de três partes que expressa a relação entre um
contexto, um problema e uma solução.
Presentation
Application
Domain
Infrasctructure Repository
Domain
Services
Foco: Domínio
▪ Regras de negócio
▪ Isolamento
– Domínio “sujo” (bad)
▪ Reutilização
▪ Mínimo acoplamento
▪ Qualquer tecnologia
Entities
Value Objects
▪ Não possuem identidade
▪ Ciclo de vida rápido
Models
▪ View Model
▪ DTO – DataTransfer Object
Repositories
▪ Acesso a dados
Domain Services
▪ Ações
Presentation
▪ MVC
▪ MVVM
▪ MVP
▪ MVW
Good Practices Only
SOLID
▪ Single responsibility principle
– Uma classe deve ter um, e somente um, motivo para mudar.
▪ Open/closed principle
– Você deve ser capaz de estender um comportamento de uma classe, sem modificá-lo.
▪ Liskov substitution principle
– As classes base devem ser substituíveis por suas classes derivadas.
▪ Interface segregation principle
– Muitas interfaces específicas são melhores do que uma interface única.
▪ Dependency inversion principle
– Dependa de uma abstração e não de uma implementação.
Falar como ser humano…hehehe
Linguagem Ubíqua
Linguagem Ubíqua
Linguagem Ubíqua
Linguagem Ubíqua
Linguagem Ubíqua
Linguagem Ubíqua
Linguagem Ubíqua
Defensive Design
▪ Validar
▪ Validar
▪ Validar…
Calmô!
iBeer #16 - Engenharia de software
iBeer #16 - Engenharia de software

Mais conteúdo relacionado

Semelhante a iBeer #16 - Engenharia de software

Webinar carreiras dados
Webinar carreiras dadosWebinar carreiras dados
Webinar carreiras dadosMarco Garcia
 
Kdw summit 2013
Kdw summit 2013Kdw summit 2013
Kdw summit 2013kdwinfo
 
Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01Renato Sousa
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoThiago Freitas
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareLeonardo Zanivan
 
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 tiLuis Henrique Costa
 
FDD para equipes não tão ágeis
FDD para equipes não tão ágeisFDD para equipes não tão ágeis
FDD para equipes não tão ágeisguilhermepinter
 
Integração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosIntegração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosRobert Silva
 
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Marvin Ferreira
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosRafael Chaves
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com PythonFrederico Cabral
 
II Congresso Latino-Americano de Inteligência Artificial e Data Science
II Congresso Latino-Americano de Inteligência Artificial e Data ScienceII Congresso Latino-Americano de Inteligência Artificial e Data Science
II Congresso Latino-Americano de Inteligência Artificial e Data ScienceGeorg Buske
 
Além do MVP com PHP - TDC POA 2015
Além do MVP com PHP  - TDC POA 2015Além do MVP com PHP  - TDC POA 2015
Além do MVP com PHP - TDC POA 2015Romeu Mattos
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-DesignWende Mendes
 

Semelhante a iBeer #16 - Engenharia de software (20)

Palestra Fatec
Palestra FatecPalestra Fatec
Palestra Fatec
 
Webinar carreiras dados
Webinar carreiras dadosWebinar carreiras dados
Webinar carreiras dados
 
Kdw summit 2013
Kdw summit 2013Kdw summit 2013
Kdw summit 2013
 
Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01
 
Lecture 7 :: Ferramentas Case
Lecture 7 :: Ferramentas CaseLecture 7 :: Ferramentas Case
Lecture 7 :: Ferramentas Case
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de software
 
DDD e Rails
DDD e RailsDDD e Rails
DDD e Rails
 
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
 
FDD para equipes não tão ágeis
FDD para equipes não tão ágeisFDD para equipes não tão ágeis
FDD para equipes não tão ágeis
 
Integração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosIntegração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes Automatizados
 
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com Python
 
II Congresso Latino-Americano de Inteligência Artificial e Data Science
II Congresso Latino-Americano de Inteligência Artificial e Data ScienceII Congresso Latino-Americano de Inteligência Artificial e Data Science
II Congresso Latino-Americano de Inteligência Artificial e Data Science
 
Além do MVP com PHP - TDC POA 2015
Além do MVP com PHP  - TDC POA 2015Além do MVP com PHP  - TDC POA 2015
Além do MVP com PHP - TDC POA 2015
 
além do mvp com php
além do mvp com phpalém do mvp com php
além do mvp com php
 
UX + ágil
UX + ágilUX + ágil
UX + ágil
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Domain-Driven-Design
 Domain-Driven-Design Domain-Driven-Design
Domain-Driven-Design
 

Mais de DCX Resource IT

iBeer #18 - Material Design
iBeer #18 - Material DesigniBeer #18 - Material Design
iBeer #18 - Material DesignDCX Resource IT
 
iBeer #17 - Android: Do Java para Kotlin
iBeer #17 - Android: Do Java para KotliniBeer #17 - Android: Do Java para Kotlin
iBeer #17 - Android: Do Java para KotlinDCX Resource IT
 
iBeer #11 - Acessibilidade
iBeer #11 - AcessibilidadeiBeer #11 - Acessibilidade
iBeer #11 - AcessibilidadeDCX Resource IT
 
iBeer #12 - Design thinking
iBeer #12 - Design thinkingiBeer #12 - Design thinking
iBeer #12 - Design thinkingDCX Resource IT
 
iBeer #1 - UX. O que é? Pra quem é?
iBeer #1 - UX. O que é? Pra quem é?iBeer #1 - UX. O que é? Pra quem é?
iBeer #1 - UX. O que é? Pra quem é?DCX Resource IT
 
iBeer #9 - IoT - Hands on
iBeer #9 - IoT - Hands oniBeer #9 - IoT - Hands on
iBeer #9 - IoT - Hands onDCX Resource IT
 

Mais de DCX Resource IT (12)

iBeer #18 - Material Design
iBeer #18 - Material DesigniBeer #18 - Material Design
iBeer #18 - Material Design
 
iBeer #17 - Android: Do Java para Kotlin
iBeer #17 - Android: Do Java para KotliniBeer #17 - Android: Do Java para Kotlin
iBeer #17 - Android: Do Java para Kotlin
 
iBeer #11 - Acessibilidade
iBeer #11 - AcessibilidadeiBeer #11 - Acessibilidade
iBeer #11 - Acessibilidade
 
iBeer #8 - Salesforce
iBeer #8 - SalesforceiBeer #8 - Salesforce
iBeer #8 - Salesforce
 
iBeer #7 - RPA
iBeer #7 - RPAiBeer #7 - RPA
iBeer #7 - RPA
 
iBeer #6 - IoT
iBeer #6 - IoTiBeer #6 - IoT
iBeer #6 - IoT
 
iBeer #2 - Xamarin
iBeer #2 - XamariniBeer #2 - Xamarin
iBeer #2 - Xamarin
 
iBeer #4 - Clean code
iBeer #4 - Clean codeiBeer #4 - Clean code
iBeer #4 - Clean code
 
iBeer #15 - Docker
iBeer #15 - DockeriBeer #15 - Docker
iBeer #15 - Docker
 
iBeer #12 - Design thinking
iBeer #12 - Design thinkingiBeer #12 - Design thinking
iBeer #12 - Design thinking
 
iBeer #1 - UX. O que é? Pra quem é?
iBeer #1 - UX. O que é? Pra quem é?iBeer #1 - UX. O que é? Pra quem é?
iBeer #1 - UX. O que é? Pra quem é?
 
iBeer #9 - IoT - Hands on
iBeer #9 - IoT - Hands oniBeer #9 - IoT - Hands on
iBeer #9 - IoT - Hands on
 

Último

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

iBeer #16 - Engenharia de software