Executando verificação de segurança...
2

Já que vc compartilhou uma pequena história, deixa eu contar a minha também :-)

Teve uma vez que eu precisava analisar um arquivo gigante. Era um formato antigo de um software mais antigo ainda, que continha basicamente dependências (similar a um package.json). Ou seja, lá tinha descrito que o módulo A depende do módulo B, e o B depende do C, etc.

Só que o software que processava o arquivo dava erro de dependência circular, mas não dizia onde era. E como o arquivo era gigante, analisar somente "no olho" era inviável. Mesmo lendo o arquivo e gerando uma saída mais "bonitinha" e formatada, ainda era difícil detectar todos os problemas, pois era muita informação pra analisar manualmente.

Então eu acabei usando grafos, que é uma daquelas coisas que eu vi na faculdade e achei que nunca fosse precisar. Basicamente eu li o arquivo, montei um grafo direcionado (se A depende de B, criava uma aresta de A para B) e rodei um dos algoritmos clássicos para detectar os ciclos. Pronto, no fim o programa mostrava somente as dependências circulares.

Pode ser apenas um caso anedótico de uma situação rara, mas foi só pra ilustrar que os fundamentos e a "teoria chata" são importantes sim. Teve gente que não propôs esta solução simplesmente porque nem sequer imaginava que ela podia existir. Sabendo a base - no caso, matemática e a capacidade de abstração que ela nos dá - vc pode vislumbrar as soluções mais adequadas para cada caso. Até porque os fundamentos não mudam há décadas, muita coisa já tem pronta, e se vc não souber que elas existem vai acabar reinventando a roda sem necessidade...

Carregando publicação patrocinada...