Notas sobre codestyle

Muitas vezes me deparo com uma dúvida sobre a qualidade do código: "Por que está escrito assim e não assim?". E eu explico todas as vezes. Por isso resolvi escrever uma espécie de nota explicativa.





A segunda pergunta que surge é: "Onde você aprendeu a escrever tão bem?" A resposta estará no final do artigo.






Um problema bastante comum ao escrever código é que ele se parece com um texto sólido e contém áreas problemáticas que complicam não apenas a leitura, mas também a manutenção posterior. Nesses casos, você não deve negligenciar o uso de quebras de linha e caracteres de "espaço" adicionais.





Lembrei-me de uma anedota barbada sobre eventos reais:





O desenvolvedor lê seu código escrito:





- hoje: ótimo código moderno e legal! Eu sempre escreveria assim!





- ontem: então, parei aqui. Aha!





- semana passada: o que eu estava fazendo lá? ..





- mês passado: então onde está o problema com a descrição?





- ano passado: quebrar as pernas de quem escreveu este código!






Recentemente conheci um código assim (vou inseri-lo com uma imagem para não atrapalhar sua aparência):





- , , ...





. . - .





. . , , ? , .






, .





- , - .





:





$salaryFirstBaseEmployer = $employer->salaryBases->first()->salary_base;
$salaryLastBaseEmployer = $employer->salaryBases->last()->salary_base;
$begin = Carbon::parse('2020-05-01')->startOfMonth()->startOfDay();
$end = $begin->clone()->endOfMonth()->endOfDay();
$endMonth = $begin->clone()->endOfMonth();
$startPeriod = new CarbonPeriod($begin, $end);
$endPeriod = new CarbonPeriod($begin, $end);
      
      



, , , :





$salaryFirstBaseEmployer = $employer->salaryBases->first()->salary_base;
$salaryLastBaseEmployer  = $employer->salaryBases->last()->salary_base;

$begin = Carbon::parse('2020-05-01')->startOfMonth()->startOfDay();

$end      = $begin->clone()->endOfMonth()->endOfDay();
$endMonth = $begin->clone()->endOfMonth();

$startPeriod = new CarbonPeriod($begin, $end);
$endPeriod   = new CarbonPeriod($begin, $end);
      
      



:





, -, .





, .





PS: Várias pessoas, incluindo mensagens fora do Habr, já escreveram que existem coisas como PSR, preenchimento automático de código, formatação de código no IDE, cs-fixer e assim por diante. Você realmente acha que não estou ciente de sua existência? O problema, revelado no artigo, não é que eles não sejam usados, mas o que impede de inicialmente escrever códigos lindos sem incendiar outros desenvolvedores? ..





PS2: Acontece que a esmagadora maioria dos comentaristas pegou os exemplos do artigo, pontuando em sua mensagem principal. A este respeito, removi todos os exemplos que não carregam uma carga semântica e importância para o artigo como tal.








All Articles