Paradigma de desenvolvimento através de comentários

Fui solicitado a escrever esse conceito com um problema que encontrei várias vezes ao chegar a um novo projeto: durante 5 anos de desenvolvimento comercial, eu sempre tive a “sorte” de vir a um projeto que o desenvolvedor principal está deixando. E cada vez que herdei uma enorme base de código - as leis de sua operação foram entendidas apenas por seu criador. Eu, por sua vez, já após o primeiro ano, adquiri o hábito de desenvolvimento através do design e design através de comentários. O que eu quero compartilhar com você abaixo do corte:


Paradigma de desenvolvimento através de comentários


Ideia. Design de comentários. Código (IC-DC)


Idéia: projetando através de comentários. Código


  • Idéia
    O iniciador da ideia pode ser você ou outra pessoa - por exemplo, seu PM (TimLead).

exemplo de uma ideia: "Você precisa limpar o número de telefone de caracteres como '+, -, colchetes e espaços', para que a saída seja apenas um conjunto de números. É necessário um recurso para implementar uma pesquisa por número de telefone - digitado de qualquer maneira."


  • Design através de comentários
    Escrever comentários descrevendo a lógica do programa.

exemplo de design por meio de comentários:


Spoiler
<?php namespace App\Services; use App\Entity\Users; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManager; class PhoneService { //  ,   //        //    //  ,    8,     7 //   } 

  • Escrita de código
    Agora precisamos converter nossa projeção de comentários em código:

exemplo:


Spoiler
 <?php namespace App\Services; use App\Entity\Users; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManager; class PhoneService { //  ,   public function clear_phone(string $phone){ //        $symbols_for_delete = ['+','-','(',')', ' ']; //    $phone = str_replace($symbols_for_delete, '', $phone); //  ,    8,     7 if( $phone[0] == '8' ){ $phone[0] = '7'; } //   return $phone; } } 



Para que serve?


Por que preciso de comentários, código e para que fique claro?


Muitos dirão que o código é o texto - e é fácil de ler. E terei de mencionar que o código é um método de expressar seus pensamentos através da sintaxe do idioma que você usa. E quando escrevemos lógica complexa - usamos a nossa própria, de muitas maneiras, um estilo único de usar essa sintaxe. Porém, se estivermos no estágio de design - descreveremos nossa lógica em uma linguagem geralmente aceita; em seguida, retornando ao código após três anos, entenderemos como ela funciona e nosso código. O herdeiro, da mesma maneira que indolor, é capaz de descobrir. Usar o design por meio de comentários - reduz a entropia do seu projeto e torna o código mais bonito.


Por que preciso de design, posso me sentar e escrever tudo de uma vez?


Se você está fazendo esta pergunta, basta ler com urgência o " Código Perfeito ", de Steve McConnell . Lá, esse conceito é mais do que divulgado.
Vou dar uma pequena citação:


No estágio de design do código, 75% dos erros são geralmente encontrados. Se eles não fossem encontrados, eu teria que refatorar.

De fato, no estágio de design, você pode entender que a lógica de negócios concebida não funcionará conforme o planejado ou pode ver uma abordagem melhor para resolver um problema específico. E você não precisará voltar mais tarde e refatorar uma parte da lógica - que não funciona exatamente como pretendido.


Preciso comentar sobre tudo?


Dei exemplos elementares acima. Eles são totalmente compreensíveis e sem comentários, mas eu ainda usei a abordagem do IC-DC para implementá-los. Porque Não quero que meu código cresça entropia. Visitei muitos projetos em que a maioria dos projetos teve que ser reescrita do zero, precisamente por causa da enorme entropia neles. Pense se você deseja que o projeto que passou meses ou anos da sua vida seja simplesmente apagado. Se a resposta for não, acho que vale a pena usar essa abordagem sempre. Porque se você sair do projeto ou, alguns anos depois, aparecer uma nova tecnologia que possa atender melhor às necessidades do que sua solução antiga - o IC-DC o ajudará a implementar as mudanças da melhor maneira possível, atingindo o mínimo de funcionalidade, porque um novo funcionário ou um novo entenderá como e por que funciona.

Source: https://habr.com/ru/post/pt480342/


All Articles