3. Sumário
• Boas práticas de desenvolvimento de
software (ou como ser feliz programando)
– Comunicação
– Code Standards (Padrões de codificação)
– Controle de versão
– Testes, code coverage (análise de cobertura
de código) e integração contínua
4. Sumário
• Desenvolvimento Web
– Web standards (padrões web)
– Semântica
– Separação em camadas
– Graceful degradation e JavaScript nãoobstrutivo
– Performance
– Ferramentas
• Dúvidas
9. Comentários no código
// Ordena $array utilizando o selection sort
$len = count($array) -1;
for($i=0; $i<=$len ; $i++) {
$ini = $i;
for($j=$i+1; $j<=$len; $j++)
if ($array[$j] < $array[$i])
$ini = $j;
if ($ini != $i) {
$troca = $array[$i];
$array[$i] = $array[$ini];
$array[$ini] = $troca;
}
}
10. Documentação
(automatizada, é claro)
Simples com RDoc, phpDocumentator,
Doxygen...
O esforço é de apenas pensar sobre o que
método, classe, etc, faz e escrever com
anotações especiais.
11. Documentação
(automatizada, é claro)
/**
* Descrição curta de bar
*
* Descrição longa, executa intensamente
{@link foo()} para conquistar o mundo
*
* @param
$useless Não faz nada.
* @return
true
*/
function bar($useless){foo();return TRUE;}
function foo(){}
14. Code Standards
É simples.
Escolha, ajuste a IDE e pronto!
Facilitam a legibilidade e mantém a
consistência, tornando-se mais fácil
analisar as diferenças em, por exemplo,
uma ferramenta de controle de versão.
18. Testes, code coverage e
integração contínua
Confiança de alterar o código sem estragar
nada.
O mínimo que se pode fazer são testes
unitários.
Code coverage ajuda a verificar se algum teste
está faltando.
Integração contínua garante que nenhum
infeliz comitou e se esqueceu de rodar os
testes antes.
22. Web standards
História
No começo havia o HTML.
Era apenas texto, listas e links.
Isso era chato.
As pessoas queriam cores, fontes variadas
e imagens.
Surgiu o primeiro problema.
24. Web standards
História
Cor de fundo, bordas, espaçamento, fontes,
etc, tudo era definido no HTML.
Ao mudar em uma página era preciso
mudar em todas.
32. Web standards
• Doctype Strict renderização o modo
Standards
• Doctype Transitional XHTML renderiza o
modo quase Standards
• Outros ou nenhum doctype renderiza o
modo Quirks
60. Performance
#nav li a {background-image:url(‘sprite.gif')}
#nav li a.item1 {background-position:0px 0px}
#nav li a:hover.item1 {background-position:0px -72px}
#nav li a.item2 {background-position:0px -143px;}
#nav li a:hover.item2 {background-position:0px -215px;}