41
Qualidade de Software: algumas boas práticas adotadas por Programadores Carlos Eduardo Dantas [email protected] http://carloseduardoxp.wordpress.com INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TRIÂNGULO MINEIRO – Campus Avançado Uberlândia “Experiência sem teoria é cegueira, mas teoria sem experiência é mero jogo intelectual” Immanuel Kant

Qualidade de Software: algumas boas práticas adotadas por Programadores

Embed Size (px)

Citation preview

Page 1: Qualidade de Software: algumas boas práticas adotadas por Programadores

Qualidade de Software: algumas boas práticas adotadas por

Programadores

Carlos Eduardo [email protected]

http://carloseduardoxp.wordpress.com

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA

TRIÂNGULO MINEIRO – Campus Avançado Uberlândia

“Experiência sem teoria é cegueira, mas teoria sem experiência é mero jogo intelectual” – Immanuel Kant

Page 2: Qualidade de Software: algumas boas práticas adotadas por Programadores

Quem sou?

• Professor Efetivo no IFTM Campus Uberlândia-Centro;

• 9 anos criando gambiarras em diversas empresas de TI.

“A morte do homem começa no instante em que ele desiste de aprender” – Albino Teixeira

Page 3: Qualidade de Software: algumas boas práticas adotadas por Programadores

Motivação

• Informação:

• Experiência:

“As três coisas mais difíceis no mundo: guardar segredo, perdoar uma injúria e aproveitar o tempo”– Benjamin Franklin

Page 4: Qualidade de Software: algumas boas práticas adotadas por Programadores

Introdução

Sociedade demanda:

• Grande quantidade de sistemas e aplicações;

• Software complexo, sistemas distribuídos e heterogêneos;

• Requisitos mutantes (todo ano, mês e dia).

“A melhor maneira de fugir do seu problema é resolvê-lo” – Robert Anthony

Page 5: Qualidade de Software: algumas boas práticas adotadas por Programadores

Introdução

Expectativa de projetos com menor custo, no menor prazo, com o maior escopo e a melhor qualidade

“É impossível para um homem aprender aquilo que ele acha que já sabe” – Epíteto

Page 6: Qualidade de Software: algumas boas práticas adotadas por Programadores

Problemas

• A qualidade do Software nem sempre é a maior prioridade;

• Pouca qualidade = retrabalho;

• Software com falhas ou indisponibilidades = perda de dinheiro

“O pessimista queixa-se do vento, o otimista espera que ele mude e o realista ajusta as velas. “ – Willian George Ward

Page 7: Qualidade de Software: algumas boas práticas adotadas por Programadores

Problemas

• Projetos possuem uma forte tendência a entrarem na chamada “curva do pânico”, sacrificando a qualidade

“Pensa como pensam os sábios, mas fala como falam as pessoas simples” – Aristóteles

Page 8: Qualidade de Software: algumas boas práticas adotadas por Programadores

Qualidade de Software

• O Software atende as necessidades do cliente?

• O Software é funcional para o cliente?

“O êxito não se consegue só com qualidades especiais. É sobretudo um trabalho de constância, de método e deorganização” – J. P. Sergent

Page 9: Qualidade de Software: algumas boas práticas adotadas por Programadores

Qualidade de Software

• O Software é flexível?

• O Software é reutilizável?

• O Software é fácil de manter?

“Não é a montanha que nos faz desanimar, mas a pedrinha que trazemos no sapato” – Autor desconhecido

Page 10: Qualidade de Software: algumas boas práticas adotadas por Programadores

Algumas boas práticas adotadas por programadores

“O primeiro passo para conseguirmos o que queremos na vida é decidirmos o que queremos”– Ben Stein

Page 11: Qualidade de Software: algumas boas práticas adotadas por Programadores

Considerar novas metodologias para criação de Softwares

• Entregas rápidas e incrementais;

• Cliente como membro da equipe;

• Prática/cultura de mudanças;

• Foco nos programadores;

• Programação em par;

• Padronização do código;

• Semana de 40 horas.

“A cooperação é a convicção plena de que ninguém pode chegar à meta se não chegarem todos” – Virginia Burden

Page 12: Qualidade de Software: algumas boas práticas adotadas por Programadores

Considerar novas metodologias para criação de Softwares

“Uma imagem vale mais que mil palavras”– Napoleão Bonaparte

Page 13: Qualidade de Software: algumas boas práticas adotadas por Programadores

Aceitar a programação poliglota

“Se está muito difícil encontrar o caminho, faça-o” – Autor desconhecido

Page 14: Qualidade de Software: algumas boas práticas adotadas por Programadores

Adotar versionamento de projetos

“Os nossos desejos são como crianças pequenas: quanto mais lhes cedemos, mais exigentes se tornam” –Provérbio Chinês

Page 15: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

• Aprender os conceitos de POO é fácil, o problema é modelar o sistema.

“Péssima ideia, a de que não se pode mudar” – Montaigne

Page 16: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

“A ciência nunca resolve um problema sem criar mais dez” – George Bernard Shaw

Page 17: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

“A libertação do desejo conduz à paz interior”– Lao-Tsé

Page 18: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

• Diagrama de Sequência POO vs Estruturado

• Obs: considere a UML como ótima solução para realização de esboços entre a equipe.

“Não se deseja aquilo que não se conhece”– Ovídio

Page 19: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

• Foco em classes e nas mensagens trocadas entre estas, ao invés de tabelas e seu modelo relacional.

“A Inteligência é quase inútil para quem não tem mais nada”– Carrel, Alexis

Page 20: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

• Adoção de Princípios OO:

Evite o modelo anêmico;

Aberto-Fechado (OCP);

Não se Repita (DRY);

Responsabilidade Única (SRP);

Encapsule o que varia;

Substituição de Liskov (LSP);

Programe para interface e não para implementação;

Entidades de software devem ser abertas a extensão, mas fechadas a modificação.” – Bertrand Meyer

Page 21: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

• Adoção de Princípios OO:

Componha comportamentos;

Evite Herança, favoreça Composição;

Favoreça Imutabilidade e Simplicidade.

“Ninguém é dono da multidão, ainda que creia tê-la dominada.”– Eugene Ionesco

Page 22: Qualidade de Software: algumas boas práticas adotadas por Programadores

Desconsiderar Programação estruturada em Linguagens OO

• Adoção de Padrões de Projeto:

MVC;

• Strategy;

Factory;

Template Method;

Observer;

Strategy;

Proxy;

Decorator, etc.. etc.. etc..“A verdadeira felicidade vem da alegria de atos bem feitos, o entusiasmo de criar coisas novas.” – Antoine de

Saint-Exupery

Page 23: Qualidade de Software: algumas boas práticas adotadas por Programadores

Aplicar fundamentos da Computação em Soluções

• Programadores ruins utilizam-se constantemente de soluções “força bruta”

“Não existe colher. Você verá que não é a colher que se dobra, apenas você mesmo. “ – Garoto com a colher, Matrix

Page 24: Qualidade de Software: algumas boas práticas adotadas por Programadores

Aplicar fundamentos da Computação em Soluções

“Eu diria algo como ‘Software está gerenciando o mundo’. Nosso trabalho é apenas polinizá-lo ...”– Brian Foote

Page 25: Qualidade de Software: algumas boas práticas adotadas por Programadores

Aplicar fundamentos da Computação em Soluções

• Uso de soluções razoáveis de busca;

• Aplicação de diferentes tipos de Estruturas de Dados para cada contexto (conjuntos, árvores, tabelas hash, mapas, listas);

• Paralelização de tarefas com threads;

• Domínio de técnicas para controle de concorrência como semáforos e monitores.

“Não há uma verdade fundamental, apenas há erros fundamentais”– Bachelard , Gaston

Page 26: Qualidade de Software: algumas boas práticas adotadas por Programadores

Considerar a “Escalabilidade” na composição de soluções

• Casos onde a falha de escalabilidade é momentânea

“Ensinar é aprender duas vezes.” – Joseph Joubert

Page 27: Qualidade de Software: algumas boas práticas adotadas por Programadores

Considerar a “Escalabilidade” na composição de soluções

• Casos onde a solução pode deixar de ser escalável com o tempo

“São muitos os que usam a régua, mas poucos os inspirados.”– Platão

Page 28: Qualidade de Software: algumas boas práticas adotadas por Programadores

Considerar a “Escalabilidade” na composição de soluções

• Ferramentas baseadas na cultura noSqltêm ajudado na produção de soluções performáticas de persistência.

“Vivemos todos sob o mesmo céu, mas nem todos temos o mesmo horizonte.” – Konrad Adenauer

Page 29: Qualidade de Software: algumas boas práticas adotadas por Programadores

Fazer uso de testes automatizados

“O maior prazer é esperar pelo prazer.”– Gotthold Lessing

Page 30: Qualidade de Software: algumas boas práticas adotadas por Programadores

Antes gerenciar do que reinventar a roda

• Servidores de aplicação separam o desenvolvedor de Software de algumas das complexidades de um sistema computacional

“Saber é compreendermos as coisas que mais nos convém.”– Friedrich Nietzsche

Page 31: Qualidade de Software: algumas boas práticas adotadas por Programadores

Escolher e adotar bons frameworks de Desenvolvimento

“Eu apenas invento e espero que outros apareçam precisando do que inventei” – R. Buckminster Fuller

Page 32: Qualidade de Software: algumas boas práticas adotadas por Programadores

Priorizar convenção sobre configuração

• Visa diminuir o número de decisões que o desenvolvedor precisa tomar;

• Definir apenas aspectos

não convencionais da

aplicação;

• Diminuir esforço com

arquivos de configuração.

“O homem comum fala, o sábio escuta, e o tolo discute”. Sabedoria oriental

Page 33: Qualidade de Software: algumas boas práticas adotadas por Programadores

Práticas clichê adotadas por programadores

“A arte nunca está terminada, apenas abandonada.” – Leonardo Da Vinci

Page 34: Qualidade de Software: algumas boas práticas adotadas por Programadores

Seja um Programador Pragmático

“Um homem pinta com seu cérebro e não com suas mãos.”– Michelangelo

Page 35: Qualidade de Software: algumas boas práticas adotadas por Programadores

Pratique comunicação

“Experiência é apenas o nome que damos aos nossos erros.”– Oscar Wilde

Page 36: Qualidade de Software: algumas boas práticas adotadas por Programadores

Conheça áreas relacionadas

• Gerenciamento de Projetos;

• Técnicas para coleta de requisitos;

• Infra-estrutura.

“Fazer troça da •filoso•fia é, na verdade, �filosofar”– Blaise Pasca

Page 37: Qualidade de Software: algumas boas práticas adotadas por Programadores

Adote o Inglês como primeiro idioma

• Livros e manuais de referência não são traduzidos do dia para a noite;

• As mais importantes discussões sobre qualquer assunto de TI estão escritas e divulgadas em Inglês.

“É uma experiência eterna de que todos os homens com poder são tentados a abusar.” – Baron de Montesquieu

Page 38: Qualidade de Software: algumas boas práticas adotadas por Programadores

Participe de fóruns, comunidades e projetos Open-Source

“A nuca é um mistério para a vista.” – Paul Valéry

Page 39: Qualidade de Software: algumas boas práticas adotadas por Programadores

Compartilhe conhecimento via blogs

“O caminho do inferno está pavimentado de boas intenções.” – Marx

Page 40: Qualidade de Software: algumas boas práticas adotadas por Programadores

Considere a opção de criar o seu próprio negócio

“Nove pessoas não fazem um bebê em 1 mês” – Fred Brooks

Page 41: Qualidade de Software: algumas boas práticas adotadas por Programadores

Dúvidas?