Eu trabalho em uma base de código bastante grande. Centenas de classes, toneladas de arquivos diferentes, muitas funcionalidades, leva mais de 15 minutos para baixar uma cópia nova, etc.
Um grande problema com uma base de código tão grande é que ela possui muitos métodos utilitários e faz a mesma coisa, ou possui código que não utiliza esses métodos utilitários quando poderia. E também os métodos utilitários não são todos da mesma classe (porque seria uma grande confusão).
Sou bastante novo na base de código, mas o líder da equipe que trabalha nela há anos parece ter o mesmo problema. Isso leva a muito código e duplicação de trabalho e, como tal, quando algo quebra, geralmente é quebrado em 4 cópias basicamente do mesmo código
Como podemos refrear esse padrão? Como na maioria dos projetos grandes, nem todo o código é documentado (embora alguns o sejam) e nem todo o código é ... bem, limpo. Mas, basicamente, seria muito bom se pudéssemos trabalhar para melhorar a qualidade a esse respeito, para que, no futuro, tivéssemos menos duplicação de código e coisas como funções utilitárias fossem mais fáceis de descobrir.
Além disso, as funções utilitárias geralmente estão em alguma classe auxiliar estática, em alguma classe auxiliar não estática que funciona em um único objeto ou é um método estático na classe com a qual ela "ajuda" principalmente.
Eu tive um experimento em adicionar funções utilitárias como métodos de extensão (não precisava de nenhum elemento interno da classe, e isso definitivamente só era necessário em cenários muito específicos). Isso teve o efeito de impedir a bagunça da classe principal e tal, mas não é mais possível descobrir a menos que você já saiba sobre ela