Simples e repetível

@ Aaron 26 de Maio de 2024

Durante o desenvolvimento do CloseOnion, percebi a necessidade de discutir a cultura de engenharia do OpenOnion.

·-- 26

Como garantir a qualidade do código? Como garantir entregas confiáveis a longo prazo?

Os valores do OpenOnion são a simplicidade e a repetibilidade.

O código deve ser simples, o que significa ser legível e fácil de manter. Não devemos complicar nossa mente.

A funcionalidade do código deve ser reutilizável e modular.

A reutilização garante a consistência geral e mantém tanto os desenvolvedores quanto os usuários com o mínimo de surpresas. Para alcançar a reutilização, naturalmente, você escolherá fazer com que os detalhes de implementação dependam de abstrações, e não o contrário.

Além disso, há muitos outros aspectos importantes, como isolamento de interfaces, testes automatizados, integração contínua e refatoração oportuna. Todos eles garantem que nosso código seja simples e repetível. Se você deseja alcançar a simplicidade e repetibilidade, naturalmente começará a prestar atenção a esses aspectos no futuro. Seu objetivo é tornar o código simples e repetível.

Espero que, durante o desenvolvimento futuro, sempre pensemos se essa parte do código é simples o suficiente, se alguém pode entender à primeira vista, sem precisar de explicações ou documentação. Evite o uso excessivo de truques e açúcar sintático, escreva de forma que até um idiota possa entender. Pense se uma função está muito longa e se dividi-la em funções menores tornaria mais claro e preciso. Verifique se o arquivo ou a funcionalidade atual estão excessivamente acoplados e se a abstração depende dos detalhes. Isso será reutilizável no futuro?

Cada desenvolvedor deve se fazer as seguintes perguntas ao escrever código:

  • O código é simples o suficiente? Alguém pode entender à primeira vista?
  • O código é fácil de manter? Modificar uma parte afeta outras partes?
  • O código é reutilizável? Pode ser modularizado e usado em outros lugares?
  • O código está excessivamente acoplado? Foi implementado o princípio de dependência de abstração em detalhes?

Ao fazer essas perguntas constantemente, podemos garantir que o código seja simples, claro e fácil de manter, alcançando nossos valores principais: simplicidade e repetibilidade.

Somente ao aderir a esses princípios podemos manter a competitividade e entregar continuamente software de alta qualidade em um ambiente de constante mudança tecnológica.

>