Código Limpo com PHP
Filipi Arruda
Filipi Arruda
Desenvolvedor back end desde 2013
Desenvolvedor back end na TrackCash
Redes sociais:
LinkedIn - www.linkedin.com/in/filipiarruda
Twitter - @FilipiArruda
O que é programar?
“Programar é uma arte de dizer a outro ser humano o que
se quer que o computador faça.” - Donald Knuth
O que é um código “sujo”?
Primeiro é necessário saber o que é um código “sujo”:
Código de difícil manutenção, difícil entendimento, e que demanda um tempo
enorme para correção de bugs que em um código organizado seriam simples de
fazer.
Código sem padronização de nomes.
Código que não é autoexplicativo.
Bad Smells - O que são? É de comer?
De acordo com Kent Beck(criador do Extreme
Programming e Test Driven Development e signatário do
manifesto ágil), bad smells são estruturas no código que
sugerem a possibilidade de refatoração, como nos
exemplos a seguir:
Rigidez – uma alteração em um ponto do código requer
alterações em cascata(código engessado);
Fragilidade – A modificação de um ponto do código quebra outras funcionalidades
(funções, classes, novos bugs);
Complexidade – Arquitetura muito complexa, pois foi preparada para manipular
qualquer tipo de possibilidade;
Duplicação – Código redundante, duplicado;
Legibilidade – Código difícil de compreender.
Bugs(mais que o normal)
Queda de produtividade
Dificuldade de entrega de valor
Dificuldade de integrar novos
desenvolvedores ao projeto
Horas e mais horas extras para cumprir
prazos
Desperdício de tempo para entender o que
aquela variável faz
Consequências de um código “ruim”
Quando programei isso, só deus e eu
sabíamos o que eu estava fazendo... agora só
deus sabe
Como “limpar” o código “sujo”
REFATORAÇÃO - É a forma de ir melhorando o código e tornando-o legível;
Tornar o código existente reutilizável e distribuir responsabilidades entre classes e
funções.
Usar boas práticas e seguir as PSR’s: https://www.php-fig.org
Refatorar
Aplicar padrão de Nomenclaturas:
● Classe : ou file_processing;
● Função: SearchName melhor que SearchUserName (dentro da classe Users);
$users->SearchName($userName);
● Variáveis: $getFileName melhor que $file.
Princípios Clean Code.
Adaptados ao PHP
Clean Code, o que é?
Clean Code é uma filosofia de desenvolvimento cuja o principal objetivo é
aplicar técnicas simples que visam facilitar a escrita e leitura de um código.
Livro Clean Code
“ Aprender a criar códigos limpos é uma tarefa árdua e
requer mais do que o simples conhecimento dos
princípios e padrões. Você deve suar a camisa; praticar
sozinho e ver que cometeu erros; assistir os outros
praticarem e errarem; vê-los tropeçar e refazer seus
passos; Vê-los agonizar para tomar decisões e o preço
que pagarão por as terem tomado da maneira errada. ” -
Robert C. Martin
Ser responsável pelo código que produz
Os gerentes e marqueteiros buscam em nós programadores as informações que
precisam para fazer promessas e firmarem compromissos. Os usuários esperam que
validemos as maneiras pelas quais os requisitos se encaixarão no sistema. Nossa
cumplicidade no planejamento do projeto é tamanha que compartilhamos uma
grande parcela da responsabilidade em caso de falhas; especialmente se estas forem
em relação a um código ruim.
A maioria dos gerentes querem a verdade, mesmo que demonstrem o contrário, eles
podem proteger com paixão o prazo e os requisitos, essa é a função deles. A sua é
proteger o código com essa mesma paixão!
Conceitos SOLID para um código limpo
Fácil manutenção, entendimento e organização;
Arquitetura aberta a receber atualizações, melhorias e novos recursos sem danos
colaterais;
Aplicação de testes de forma fácil e de simples entendimento;
Fácil reaproveitamento de código;
Fácil adaptação a mudanças no escopo do projeto.
Como eu desenvolvedor aplico estes princípios
Produzir um código legível, reutilizável e manutenível.
Para criarmos novas features precisamos ler código antigo. Para desenvolvermos de
forma produtiva e eficiente, precisamos entender o código antigo, entender o
impacto dessa nova funcionalidade na estrutura atual de código.
Garantir que uma classe tenha responsabilidade única(a classe ou função precisa ser
ESPECIALISTA na responsabilidade que lhe foi atribuída)
Garantir a fácil identificação de bugs e continuidade do desenvolvimento por outros
membros do time.
Recomendações Pessoais
Livro Clean Code - Também em português como Código Limpo
Post Tiago Aragão no Medium sobre Clean Code: http://bit.ly/2VdqgcB
Conversar e pedir conselhos a profissionais mais experientes, e já passaram pelas
dificuldades que estamos enfrentando.
Dúvidas e comentários
Desejo a todos que busquem evoluir sempre.
“Como desenvolvedor, cada dia que passo
percebo o quanto ainda preciso aprender”

Código limpo php

  • 1.
    Código Limpo comPHP Filipi Arruda
  • 2.
    Filipi Arruda Desenvolvedor backend desde 2013 Desenvolvedor back end na TrackCash Redes sociais: LinkedIn - www.linkedin.com/in/filipiarruda Twitter - @FilipiArruda
  • 3.
    O que éprogramar? “Programar é uma arte de dizer a outro ser humano o que se quer que o computador faça.” - Donald Knuth
  • 4.
    O que éum código “sujo”? Primeiro é necessário saber o que é um código “sujo”: Código de difícil manutenção, difícil entendimento, e que demanda um tempo enorme para correção de bugs que em um código organizado seriam simples de fazer. Código sem padronização de nomes. Código que não é autoexplicativo.
  • 5.
    Bad Smells -O que são? É de comer? De acordo com Kent Beck(criador do Extreme Programming e Test Driven Development e signatário do manifesto ágil), bad smells são estruturas no código que sugerem a possibilidade de refatoração, como nos exemplos a seguir: Rigidez – uma alteração em um ponto do código requer alterações em cascata(código engessado);
  • 6.
    Fragilidade – Amodificação de um ponto do código quebra outras funcionalidades (funções, classes, novos bugs); Complexidade – Arquitetura muito complexa, pois foi preparada para manipular qualquer tipo de possibilidade; Duplicação – Código redundante, duplicado; Legibilidade – Código difícil de compreender.
  • 7.
    Bugs(mais que onormal) Queda de produtividade Dificuldade de entrega de valor Dificuldade de integrar novos desenvolvedores ao projeto Horas e mais horas extras para cumprir prazos Desperdício de tempo para entender o que aquela variável faz Consequências de um código “ruim”
  • 8.
    Quando programei isso,só deus e eu sabíamos o que eu estava fazendo... agora só deus sabe
  • 9.
    Como “limpar” ocódigo “sujo” REFATORAÇÃO - É a forma de ir melhorando o código e tornando-o legível; Tornar o código existente reutilizável e distribuir responsabilidades entre classes e funções. Usar boas práticas e seguir as PSR’s: https://www.php-fig.org
  • 10.
    Refatorar Aplicar padrão deNomenclaturas: ● Classe : ou file_processing; ● Função: SearchName melhor que SearchUserName (dentro da classe Users); $users->SearchName($userName); ● Variáveis: $getFileName melhor que $file.
  • 11.
  • 12.
    Clean Code, oque é? Clean Code é uma filosofia de desenvolvimento cuja o principal objetivo é aplicar técnicas simples que visam facilitar a escrita e leitura de um código.
  • 13.
    Livro Clean Code “Aprender a criar códigos limpos é uma tarefa árdua e requer mais do que o simples conhecimento dos princípios e padrões. Você deve suar a camisa; praticar sozinho e ver que cometeu erros; assistir os outros praticarem e errarem; vê-los tropeçar e refazer seus passos; Vê-los agonizar para tomar decisões e o preço que pagarão por as terem tomado da maneira errada. ” - Robert C. Martin
  • 14.
    Ser responsável pelocódigo que produz Os gerentes e marqueteiros buscam em nós programadores as informações que precisam para fazer promessas e firmarem compromissos. Os usuários esperam que validemos as maneiras pelas quais os requisitos se encaixarão no sistema. Nossa cumplicidade no planejamento do projeto é tamanha que compartilhamos uma grande parcela da responsabilidade em caso de falhas; especialmente se estas forem em relação a um código ruim. A maioria dos gerentes querem a verdade, mesmo que demonstrem o contrário, eles podem proteger com paixão o prazo e os requisitos, essa é a função deles. A sua é proteger o código com essa mesma paixão!
  • 15.
    Conceitos SOLID paraum código limpo Fácil manutenção, entendimento e organização; Arquitetura aberta a receber atualizações, melhorias e novos recursos sem danos colaterais; Aplicação de testes de forma fácil e de simples entendimento; Fácil reaproveitamento de código; Fácil adaptação a mudanças no escopo do projeto.
  • 16.
    Como eu desenvolvedoraplico estes princípios Produzir um código legível, reutilizável e manutenível. Para criarmos novas features precisamos ler código antigo. Para desenvolvermos de forma produtiva e eficiente, precisamos entender o código antigo, entender o impacto dessa nova funcionalidade na estrutura atual de código. Garantir que uma classe tenha responsabilidade única(a classe ou função precisa ser ESPECIALISTA na responsabilidade que lhe foi atribuída) Garantir a fácil identificação de bugs e continuidade do desenvolvimento por outros membros do time.
  • 17.
    Recomendações Pessoais Livro CleanCode - Também em português como Código Limpo Post Tiago Aragão no Medium sobre Clean Code: http://bit.ly/2VdqgcB Conversar e pedir conselhos a profissionais mais experientes, e já passaram pelas dificuldades que estamos enfrentando.
  • 18.
  • 19.
    Desejo a todosque busquem evoluir sempre. “Como desenvolvedor, cada dia que passo percebo o quanto ainda preciso aprender”