Desenvolvimento de Software
Nesta seção vou descrever conceitos relacionados a engenharia e desenvolvimento de software, expondo minhas próprias opiniões sobre eles, além de práticas que aplico para obter um código de qualidade, que seja fácil de entender, depurar e manter. Muito do que será exposto aqui já é conhecido e descrito em grandes obras da área, como: Engenharia de software, de Ian Sommerville; o livro homônimo de Roger S. Pressman; Código Limpo e Arquitetura Limpa, ambos de Robert C. Martin; Refatoração, de Martin Fowler; entre outras. Outras práticas são oriundas da minha própria experiência como desenvolvedor de software.
A ideia é detalhar e apresentar meu próprio ponto de vista, esmiuçando os problemas apresentados durante o ciclo de vida do software e práticas adotadas para resolver ou mitigar o problema. Em geral, essas práticas serão apresentas na linguagem Java, porém, acredito que podem ser aplicadas a outras linguagens com pouca ou nenhuma adaptação.
Por fim, não é de meu interesse, e nem acredito em ser uma fonte de verdade absoluta. Ou seja, as ideias apresentadas são passíveis discussão, reflexão e revisão. Também acredito que o contexto do projeto (seu tamanho, a organização, o corpo técnico, as nuances do negócio, e necessidades específicas) possam influenciar na adoção, ou adaptação, de certas práticas, sendo de responsabilidade dos desenvolvedores definir essas práticas.