Clean Code não é tudo!

Mas é 100%

Alessandro Feitoza

PHP Evangelist

Symfony / PHP Developer

PHP com Rapadura Founder

Vamos Conceituar.

SOFTWARE LIVRE

  1. Usar o Software para qualquer propósito;

  2. Conhecer e Adaptar;

  3. Redistribuir para Ajudar o próximo;

  4. Distribuir Modificações

Precisa
Acessar
O Código

Código Limpo!

  • Apenas algumas dicas de como deixar o código manutenivel.
  • Tentar fazer códigos profissionais que garantem uma boa legibilidade.

Uncle Bob

Vamos aos pobremas!

  • Falta de dominio na linguagem
  • Prazo apertado
  • Código escrito "nas côxas"
  • Falta de refatoração
  • GoHorse
  • "Não sou pago pra isso"

Tudo isso cria um alojamento para bugs

Heróizão!

"Chefe" dos prazos

Dev: "chefe, vou ter q atrasar a entrega"

Chefe: "Rapaz, te vira. Lá em cima daquele armário tem uma caixa, aí tem uma roupa verde, de sapo, pega ela, veste e dá teus pulo."

"Chefe" com pitada de motivação

Dev: "chefe, vou ter q atrasar a entrega"

Chefe: "Rapaz, confio na sua capacidade."

#FAZTEUNOME

Isso tudo cria código ruim.

E código ruim sai muito caro, impede melhorias e dificulta a liberdade.

Então simbora aprender a fazer código limpo.

Mas o que é Código Limpo pra você?

"nomes de variáveis limpas, nomes de funções limpas, nomes de classes limpas. Estruturas do código de facil entendimento, códigos explícitos."

Uncle Bob

"código elegante e eficiente com lógica direta que dificulte um alojamento para bugs"

Bjarn Stroustrup

Somos todos Autores

  • Um autor escreve um capitulo que vai ser lido de cima pra baixo.
  • Você lê, e dificilmente volta pra ver o que leu pra entender.
  • Uma escrita romantica é diferente de uma escrita técnica. Quanto mais romantica mais facil do leitor entender.

1 - Nomes Significativos

$a = 'Alessandro';
$b = 'eu@alessandrofeitoza.eu';
$c = 22;
$d = 'tesudo';
$name = 'Alessandro';
$email = 'eu@email.eu';
$idade = 22;
$nickname = 'tesudo';

Use nomes que revelem o propósito.

1 - Nomes Significativos

o = 1;

if (o == 1) {
    a = 0l;
} else {
    a = o1;
}

Não crie problemas para si mesmo

1 - Nomes Significativos

public function dtaRcd102();
public function svUsGroup();

Crie nomes pronunciaveis

public function dataRecord();
public function saveUserInGroup();

2 - Funções

 

  • Crie funções pequenas e Objetivas.
  • Essa função tem a função de fazer apenas isso.
  • Ler o código de cima pra baixo.
  • Poucos Parametros (máximo 3)
  • Prefira exceções a retorno de erros em forma de código

2 - Funções

  • Tratamento de Erro é uma coisa
try {
    if ( x() ) {
        $this->facaIsso();
    }

    $this->comandoGeral();
} catch (\Exception $exception) {
    try {
        comando1();
        comando2();
        comando3();
    } catch (\Exception $exception) {
        return false;
    }
}

2 - Comentários

  • Evite comentários, isso lhe obriga a criar código auto explicativos;
  • Não faça um diário de bordo (meu querido código)
  • Evite explicar o óbvio
  • Comentários podem se voltar contra você.

3 - Formatação

  • Cuidado com o comprimento horizontal;
  • Cuidado com o comprimento vertical;
  • Cuidado com o comprimento;
  • Dê espaço entre os comandos que não fazem sentido próximo;
  • Agrupe códigos que façam uma coisa dependente da outra;
  • Endente!

4 - Tratamento de Erro

  • Trate os erros como gostaria de ser tratado (com atenção)
  • Gere Exceções ao invés de códigos de erro;
  • Crie o try - catch antes dos demais
  • Defina suas exceções de acordo com sua necessidade;
  • Não retorne Null
  • Não passe null

5 - Teste de Unidade

  • Faça TDD
  • Refatore
  • Faça mais TDD
  • Teste limpos;
  • Testes de acordo com o dominio da Aplicação;

6 - Classes

  • Classes Pequenas e Objetivas
  • Agrupe as Classes de acordo com o módulo do dominio
  • Responsabilidade Única
  • Cuidado com o alto acomplamento
  • Estude SOLID

Tem muito mais coisa.

#FazTeuNome!

#FazTeuCódigo!

Dúvidas

Recomendo ler também.

Valeu o Boi!

Alessandro Feitoza

eu@alessandrofeitoza.eu

Clean Code não é tudo!

By Alessandro Feitoza

Clean Code não é tudo!

  • 208
Loading comments...

More from Alessandro Feitoza