Francisco Alessandro Feitoza de Patricio da Rocha de Sousa da Silva
Algumas pessoas que fazem código, acham melhor entregar rápido do que entregar bem
do Latim, designare
de- (de dentro, para fora)
signare- ( signum, indicar algo, marcar)
"Designar, Determinar"
Mas qual é o momento de "planejar e estruturar"?
No "inicio" do projetoEngenharia de Software
Como funciona a engenharia de software?
Como seria melhor?
Arquitetura?
Design?
Arquitetura (de soluções) é sobre a comunicação entre as diferentes tecnologias que compõem e auxiliam o Software.
Arquitetura (do código) é sobre a conunicação entre as camadas de códigos, pensando I/O
Design é sobre o "desenho" do fluxo de partes do código com o próprio código
Então poderiamos dizer que design de software se divide nisso?
O melhor seria isso
Patterns
Soluções "gerais" repetitiveis, para resolverem problemas comuns.
Cristopher Alexander, 1977
Um padrão descreve uma solução comprovada para um problema recorrente no design
Gang of Four, 1994
Cataloga e explica padrões comuns para resolver problemas de software orientado a objetos.
E como ninguém conhece esse livro?
O mesmo livro com outra capa
Sim, é um livro de arquitetura e urbanismo
Design Patterns
Principles
Representam guidelines de alto nível ou boas práticas para considerar ao projetar a arquitetura do software.
do Latim, Principium
Começo/Inicio (Fundamento, Base)
Design Principles
Porque comparar os 2? Se são diferentes dos iguais
Principles | Guias para tomar decisões de design. |
---|---|
Patterns | Soluções prontas para problemas recorrentes. |
Principles | Guias para tomar decisões de design. |
---|---|
Patterns | Soluções prontas para problemas recorrentes. |
Principles | Guias para tomar decisões de design. |
---|---|
Patterns | Soluções prontas para problemas recorrentes. |
Temos um problema: Criar um sistema de venda de ingressos
AQUI TEM CORAGEM
Temos outro problema: Criar um esquema de dar descontos nos ingressos do evento
O que usamos ali?
Pattern ou Principle?
E qual?
SOLID
Podemos simplesmente criar outro tipo de desconto sem afetar as classes existentes
Outro problema: Gravar logs
O que foi isso aqui?
Abstract Factory
E com isso a gente vê o quanto essa Teoria é Prática
Como dizia minha ex:
TERMINAMOS
DÚVIDAS?