13/08/2016
Introdução
Porque os projetos dão errado
Etapas para aplicação de boas práticas
Designer Pattern
Testes
.agenda {}
Projetos não falham. Pessoas falham.
Sergey Brin: cofundador do Google apresentou o produto ao mercado antes da hora certa.
Recentemente, o Google anunciou mudanças drásticas no projeto. A equipe será reformulada em parte e o desenho do produto começará do zero.
.boas Praticas {}
Construir um software não é somente escrever código e vê-lo funcionar, é você saber que aquele código será manutenível e que outras pessoas vão alterá-lo.
.boas Praticas {}
.produtividade{}
.pomodoro{}
.pomodoro{}
.pomodoro{}
.produtividade {}
.kanban{}
.metodologias Agil{}
.SCRUM {}
Iterativo
Incremental
.SCRUM {}
Sprints
Sprints Backlog
.SCRUM {}
Sprint backlog
.SCRUM {}
Product Owner
Scrum Master
.SCRUM {}
Scrum Team
.etapas {}
.requisitos {}
.requisitos Funcionais {}
RF01 - Criar formulário de contato contendo, nome, email e mensagem.
.requisitos Funcionais{}
Funcionais
RF02 - validar campo de email
RN02 - Ao clicar no campo de senha, animar coruja
Regra de Negócio
.requisitos {}
Não Funcionais
RNF01 Requisitos de portabilidade. o sistema deverá rodar em qualquer plataforma.
.requisitos naoFuncionais{}
Segurança
Confidencialidade
.requisitos {}
Consequências de Software sem Requisitos
.prototipacao {}
Processo que facilita o entendimento dos requisitos, apresenta conceitos e funcionalidades do software.
.prototipos Vantagens{}
.prototipos Tipos{}
.prototipos Tipos{}
São esboços concebidos ainda na fase inicial, durante a concepção do sistema.
.prototipos Tipos {}
Conhecidos por wireframes, são mais detalhados e desenvolvidos na fase da arquitetura da informação, é o layout básico do projeto.
.prototipos Tipos {}
.prototipos Tipos {}
.prototipos Tipos {}
.prototipos Ferramentas {}
.design Patterns {}
.design Patterns {}
Ou seja...
É uma solução de um problema que alguém já teve no desenvolvimento e manutenção de softwares orientado a objetos.
.design Patterns {}
Criado por
.padroes de Projetos {}
Vantagens
.padroes de Projetos {}
.padrao MVC{}
Model View Controller (MVC)
Vantagens
.padrao MVC{}
View
Trata dos dados e da lógica de negócios.
Model
Apresentação dos dados ao usuário, telas (CSS, HTML).
Controller
Interage com o model para criar a view e recebe as requisições do usuário.
.padrao MVC{}
.versionar Projeto{}
Guarda as informações de quem alterou alguma funcionalidade.
Controle de versão
.versionar Projeto{}
Se alguém fizer algo de errado..
Ou seja...
Já sabem quem é o culpado!
.versionar Projeto{}
Porque usar versionamento?
.versionar Projeto{}
Quem usa Git?
.Normalizacao {}
.Normalizacao {}
A finalidade das regras de normalização é evitar anomalias de atualização no banco de dados
.Normalizacao {}
Anomalias de alteração é evitar inconsistências e reduzir o esforço para a atualização dos dados
.Normalizacao {}
Anomalias de exclusão é evitar a perda de informações associadas a um dado registro
Evitar
Boa Prática
.normalizacao{}
Dividir tabelas grandes em tabelas menores, através das formas normais
Objetivo: minimizar danos sofridos no desempenho do banco de dados
.consultas SQL{}
Com * o SGBD gasta muito tempo percorrendo todos os campos
Evitar
Boa Prática
.consultas SQL{}
SELECT * FROM tabelax
SELECT COLUNAA, COLUNAB FROM tabelax
Verificar se um campo string tem necessidade de usar Char ou Varchar
Evitar
Boa Prática
.consultas SQL {}
CREATE TABLE pessoa(
id int not null PRYMARY KEY
sexo varchar(10);
)
INSERT INTO pessoa(
sexo 'F' )
CREATE TABLE pessoa(
id int not null PRYMARY KEY
sexo char(1);
)
INSERT INTO pessoa(
sexo 'F' )
Objetivo: melhorar desempenho do banco, com EXISTS o banco sabe que é um teste de existência sua busca é interrompida assim que encontrar a a primeira linha
Evitar
Boa Prática
.consultas sql{}
O SGBD não consegue otimizar cláusulas de join ligadas por OR. Neste caso é mais eficiente ligar os conjuntos de resultados por UNION.
Evitar
Boa Prática
.consultas sql{}
SELECT a FROM tab1, tab2
WHERE tab1.a = tab2.a
OR tab1.x = tab2.x
SELECT a FROM tab1, tab2
WHERE tab1.a = tab2.a
UNION SELECT A FROM tab1, tab2
WHERE tab1.x = tab2.x
OR
UNION
.testes Automatizados {}
UI
Service
Unit
TDD - Test Driven Development
.testes Automatizados {}