O documento discute boas práticas de programação para melhorar a qualidade e performance de códigos. Ele aborda tópicos como comentários, nomes de variáveis, identação, testes, uso de loops, arrays e funções de forma otimizada. O documento argumenta que seguindo essas práticas recomendadas é possível desenvolver software mais eficiente e de fácil manutenção.
2. Agenda
1 Boas Práticas Gerais de Programação
2 Boas Práticas de Programação - Código
3 Conclusões
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 2
3. 1 Boas Práticas Gerais de
Programação
1.1 Comentários
- No início de cada arquivo deve ter seu nome, uma
descrição do que o arquivo contém, quem o criou e em
qual data.
- Antes de cada função, deve ser explicado o que ela faz,
o que ela retorna e qual o comportamento das variáveis.
Use como premissa que alguém consegue definir se irá ou
não usar a rotina e poderá usá-la apenas lendo o
comentário, sem precisar conhecer o código.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 3
4. 1 Boas Práticas Gerais de
Programação
1.1 Comentários
- Se a função ficar grande, é importante explicar na
criação das variáveis o que elas fazem. Comente cada
grande parte do código. Por exemplo: quando o programa
entra em um if e quando entra em um else.
- Não precisa comentar coisas óbvias como explicar que
contador++ está incrementando o contador.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 4
5. 1 Boas Práticas Gerais de
Programação
1.2 Nomes Claros às Variáveis
- Uma variável não precisa ter nome e sobrenome, mas
não deve ser chamada apenas por uma letra.
- Seu nome deve ter um significado lógico, de forma que
alguém apenas lendo o nome consiga imaginar o que deve
ser armazenado na variável.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 5
6. 1 Boas Práticas Gerais de
Programação
1.3 Evite mapeamento mental
- Às vezes vemos variáveis nomeadas com uma letra só.
Sem dúvida são perfeitamente aceitáveis em um loop (i é
a mais comum), mas desde que o loop seja pequeno e não
haja conflitos. Em outros contextos, as variáveis de uma
só letra certamente serão problemáticas, pois o leitor terá
que fazer mapeamento mental daquela letra para o seu
real significado. Com o passar do tempo, nem o próprio
autor do código lembrará qual o verdadeiro conceito
daquela variável de uma letra só.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 6
7. 1 Boas Práticas Gerais de
Programação
1.4 Use Tipagem Forte Logicamente
- Algumas linguagens são fracamente tipada. Ou seja, ele
não checa se você está usando corretamente os tipos da
linguagem. Você pode inserir um texto em uma variável
numérica, por exemplo. Pode, mas não deveria.
- Tome o cuidado de usar variáveis do tipo correspondente
ao seu uso.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 7
8. 1 Boas Práticas Gerais de
Programação
1.5 Use Comandos Claros e Usualmente Conhecidos
- A maioria das linguagens possuem mais de uma forma
para resolver uma situação. Tente sempre usar a mais
comum. Pode ser que a manutenção do programa seja
feita por uma pessoa que não tenha muito conhecimento
da linguagem e não conheça o comando utilizado.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 8
9. 1 Boas Práticas Gerais de
Programação
1.6 Identação
- É algo simples e que facilita incrivelmente tanto a
construção de um programa como sua manutenção.
- Usar, se possível, o próprio tab ao invés de espaços, para
que seja fácil manter todas as linhas iniciando-se na
mesma coluna.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 9
10. 1 Boas Práticas Gerais de
Programação
1.7 Funções
- A primeira e mais importe regra é que funções devem ser
pequenas. A segunda regra é que devem ser menores
ainda.
- Funções pequenas são fáceis de entender e facilitam o
cumprimento do princípio: "faça apenas uma coisa".
- A regra de ouro é: "Funções devem fazer uma coisa.
Devem fazê-la bem. Devem fazer somente essa coisa."
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 10
11. 1 Boas Práticas Gerais de
Programação
1.7 Funções
- O melhor jeito de saber se a função está fazendo "mais
do que uma coisa" é verificar se é possível extrair outra
função de dentro dela.
- Funções devem fazer algo ou responder algo, nunca os
dois. Ou a função deve alterar o estado de um objeto ou
deve retornar alguma informação sobre o objeto. Fazer as
duas coisas em geral leva a confusões.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 11
12. 1 Boas Práticas Gerais de
Programação
1.8 Testes
- Construir um software não é somente escrever código e
vê-lo funcionar, é saber que aquele código será
manutenível e que outras pessoas vão alterá-lo. Por isto
teste é fundamental.
- Quem desenvolve tem que ser responsável por aquilo
que escreve e saber que seu sistema tem que continuar
funcionando, por isto toda linha escrita deve estar
testada.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 12
13. 1 Boas Práticas Gerais de
Programação
1.8 Testes
- Muitas empresas veem testes como gastos maiores no
projeto, o que de fato acontece, porém a qualidade do
software produzido é algo significante. Quando não se
produz teste automatizado, a quantidade de testes
manuais são maiores e muitas vezes o custo desses testes
também é maior.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 13
14. 2 Boas Práticas de Programação -
Código
- Para se ter um código bem enxuto e com boa qualidade
não basta apenas termos convenção de nomes, classes,
variáveis, entre outros. Precisamos ter um padrão para
algumas situações para melhorarmos não somente a
performance do código que está sendo escrito, mas
também a qualidade de ordenação para que, futuros
desenvolvedores, ao olharem o nosso código em uma
manutenção, consigam facilmente identificar e assim
trabalhar em cima do problema e não reaprender tudo o
que foi feito, assim desperdiçando tempo e dinheiro.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 14
15. 2 Boas Práticas de Programação -
Código
2.1 Operadores de Curto Circuito
- Operadores que operam em curto-circuito fazem parte
de algumas linguagens de programação. Esses operadores
ajudam a poupar verificações desnecessárias em nosso
código.
if(condicao1 && condicao2) { //… }
if(condicao1 || condicao2) { //… }
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 15
16. 2 Boas Práticas de Programação -
Código
2.1 Operadores de Curto Circuito
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 16
17. 2 Boas Práticas de Programação -
Código
2.2 Teste de Ordenação Lógica
- Um detalhe bastante importante que muitas vezes não
se presta atenção é quando utilizamos o bloco switch.
Neste caso, o ideal é sempre ordenar a lista de
possibilidades da mais frequente para a menos frequente.
Isso evitará que a avaliação seja feita em vários itens,
tendo assim uma perda de performance, pois se o item
frequente está na último posição a ser avaliada, ela
deverá passar por todas as outras antes.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 17
18. 2 Boas Práticas de Programação -
Código
2.2 Teste de Ordenação Lógica
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 18
19. 2 Boas Práticas de Programação -
Código
2.3 Fusão de Loops
- A fusão de loops é quando usam-se dois loops distintos
para operar o mesmo conjunto de elementos e, em cada
um deles, efetuar uma ação diferente. Na maioria das
vezes utilizamos isso em coleções para alterar algum
valor, ou algo do tipo.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 19
20. 2 Boas Práticas de Programação -
Código
2.3 Fusão de Loops
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 20
21. 2 Boas Práticas de Programação -
Código
2.3 Fusão de Loops
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 21
22. 2 Boas Práticas de Programação -
Código
2.4 Minimizar Trabalho dentro de Loops
- Este é um dos pontos essenciais para ganharmos em
performance na aplicação. Muitas vezes colocamos
operações custosas dentro de loops, o que acarretará na
execução desta operação o mesmo número de vezes que o
loop for executado. Na maioria dos casos, esse código
custoso faz sempre a mesma coisa, ou seja, é um cálculo
que independe de qualquer valor proveniente do loop.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 22
23. 2 Boas Práticas de Programação -
Código
2.4 Minimizar Trabalho dentro de Loops
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 23
24. 2 Boas Práticas de Programação -
Código
2.4 Minimizar Trabalho dentro de Loops
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 24
25. 2 Boas Práticas de Programação -
Código
2.5 Busca de um Elemento em um Array
- Este é outro dos pontos essenciais para ganharmos em
performance na aplicação. Muitas vezes colocamos
procuramos um elemento dentro de um array. Ao
localizarmos o elemento o correto é pararmos a busca,
assim economiza-se um processamento precioso.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 25
26. 2 Boas Práticas de Programação -
Código
2.5 Busca de um Elemento em um Array
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 26
27. 2 Boas Práticas de Programação -
Código
2.6 Code Caching
- Code caching significa salvar um determinado valor que
é proveniente de algum cálculo mais complexo em um
membro interno que, por sua vez, será exposto pela
classe. Geralmente utilizamos essa técnica quando o valor
é frequentemente utilizado e, se for sempre calculado,
teremos uma perda de performance, já que o cálculo seria
efetuado o mesmo número de vezes que a propriedade é
invocada.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 27
28. 2 Boas Práticas de Programação -
Código
2.6 Code Caching
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 28
29. 1 Boas Práticas de Programação -
Código
2.7 Atribuição de Valor com Somente Duas
Possibilidades
- Para variáveis que somente poderão receber duas
possibilidades de valores, baseadas em uma estrutura de
condição SE, iniciar a mesma com o valor mais provável e
somente alterar se a condição for verdadeira, assim
elimina-se o processamento do SENÃO.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 29
30. 3 Boas Práticas de Programação -
Código
2.7 Atribuição de Valor com Somente Duas
Possibilidades
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 30
31. 2 Boas Práticas de Programação -
Código
2.7 Atribuição de Valor com Somente Duas
Possibilidades
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 31
32. 2 Boas Práticas de Programação -
Código
2.8 Execução de Funções Desnecessárias
- Mais um item para melhor a performance do sistema. Se
a função não é necessária no momento, não a execute.
Outras duas questões:
1) Se ela for necessária, será que está utilizando da forma
correta?
2) Não existe uma função mais performática do que a que
está utilizando?
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 32
33. 2 Boas Práticas de Programação -
Código
2.8 Execução de Funções Desnecessárias
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 33
34. 2 Boas Práticas de Programação -
Código
2.9 Abre e Fecha Chaves (Blocos de Comandos)
- Para a maioria das linguagens é opcional o uso do abre e
fecha chaves ({ }) quando há somente uma linha de
comando no bloco. O questão é que quando se insere mais
uma linha elas devem ser colocadas, pois a execução do
código não será a esperada. Dado isto, a sugestão é usar
sempre.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 34
35. 2 Boas Práticas de Programação -
Código
2.9 Abre e Fecha Chaves (Blocos de Comandos)
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 35
36. 2 Boas Práticas de Programação -
Código
2.9 Abre e Fecha Chaves (Blocos de Comandos)
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 36
37. 2 Boas Práticas de Programação -
Código
2.9 Abre e Fecha Chaves (Blocos de Comandos)
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 37
38. 2 Boas Práticas de Programação -
Código
2.10 CTRL+C/CTRL+V
- Nunca utilizar o CTRL+C/CTRL+V. Se precisar repetir um
trecho de código, o melhor a ser feito, é criar uma função
com o trecho e fazer os dois pontos chamarem a função.
- Princípio da Janela Quebrada
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 38
39. 3 Conclusões
- Economia de hardware;
- Facilidade na manutenção e inclusão de novas
funcionalidades;
- Respostas mais rápidas (para o cliente);
- Principal: é de extrema importância colocar o que foi
apresentado em prática, pois sem isto os benefícios
citados não acontecem.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 39
41. Referências
AÉCE, I. Boas Práticas de Programação. Disponível em:
http://www.linhadecodigo.com.br/artigo/1310/boas-praticas-de-programacao.aspx.
Acesso em 15 mar 2016.
BRUNO, W. Boas Práticas de Programação - Filosofias de Desenvolvimento. Disponível
em: http://wbruno.com.br/php/boas-praticas-de-programacao-filosofias-de-
desenvolvimento. Acesso em 01 mar 2016.
FILHO, J. O. M. Programação Orientada à Gambiarra. Disponível em:
http://pt.slideshare.net/josenaldomatos/programao-orientada-a-gambiarra-30097904.
Acesso em 28 mar 2016.
MARZAGÃO, L. F. Boas Práticas em Programação. Disponível em:
http://dulimind.blogspot.com.br/2014/05/boas-praticas-em-programacao-parte-
01.html. Acesso em 16 mar 2016.
TAVARES, L. Boas Práticas de Programação. Disponível em:
http://www.devmedia.com.br/boas-praticas-de-programacao/31163. Acesso em 09 mar
2016.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 41
42. Referências
UNIVERSIDADE ESTADUAL DE CAMPINAS. Linguagem e Técnicas de Programação - Boas
Práticas. Disponível em:
http://www.ft.unicamp.br/liag/wp/robocode_files/qualidade.pdf. Acesso em 08 mar
2016.
WIKIPEDIA. Teoria das Janelas Partidas. Disponível em:
https://pt.wikipedia.org/wiki/Teoria_das_Janelas_Partidas. Acesso em 02 mar 2016.
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 42
43. Contato
Anderson Augustinho
Analista de Sistemas
Professor e Instrutor Java
andersonaug@celepar.pr.gov.br
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. 43