Como vocês sabem que estão escrevendo o código mais robusto possível sem o excesso de engenharia?
O que você considera código robusto? Código que já é à prova do futuro e tão poderoso que pode lidar com qualquer situação? Errado, ninguém pode prever o futuro! E errado de novo, porque será uma bagunça complicada e inatingível.
Sigo vários princípios: Primeiro e acima de tudo YAGNI (ainda) e KISS , para não escrever código desnecessário. Isso também evita efetivamente a superengenharia. Refatoro o aplicativo quando são necessárias extensões. As modernas ferramentas de refatoração permitem criar interfaces com facilidade e trocar implementações posteriormente, quando você precisar delas.
Então tento tornar o código que escrevo o mais robusto possível, que inclui a eliminação de quantos caminhos o programa seguir (e também declara) quanto possível e um pouco de programação espartana . Uma grande ajuda são as funções / métodos "atômicos" que não dependem de estados externos ou, pelo menos, não deixam o programa em um estado inconsistente quando falham. Se você fizer isso bem, também é muito improvável que você acabe com um código de espaguete, e também é uma benção para a manutenção. Além disso, no design orientado a objetos, os princípios do SOLID são um ótimo guia para código robusto.
Eu realmente descobri que muitas vezes você pode reduzir a complexidade, por exemplo, explosões combinatórias de caminhos ou estados de programas, pensando profundamente em como você pode projetá-lo como o caminho mais reto possível. Tente manter no mínimo as combinações possíveis, escolhendo a melhor ordem de suas sub-rotinas e projetando-as para esse fim.
Código robusto é quase sempre código simples e limpo, mas a simplicidade é uma característica que nem sempre é alcançada com facilidade. No entanto, você deve lutar por isso. Sempre basta escrever o código mais simples possível e adicionar complexidade apenas quando você não tiver outra escolha.
A simplicidade é robusta, a complexidade é frágil.
Complexidade mata.