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.