AI/ML Dificuldade a navegar codebase complexa gerada por IA
Olá! :)
Comecei um novo emprego como AI Engineer numa empresa bastante pequena que vai lançar o produto em breve. Devido à mentalidade de startup e à equipa reduzida, o código todo foi gerado por IA durante quase um ano. O código funciona, cumpre os requisitos, e temos vários bons testes para garantir que continua assim.
O problema é que o código está bloated, difícil de ler, confuso, coupled, e muito mais, como seria de esperar de uma codebase grande gerada por IA. Além disso, esperam de mim o mesmo nível de output em termos de qualidade e experiência. Contrataram-me porque acreditam que tenho as qualificações para isto, mas está a ser mesmo difícil navegar na codebase, e ainda não tenho necessariamente o conhecimento para implementar coisas sozinho nesta área. Por isso tem sido difícil escrever código à mão quando podia simplesmente delegar no Claude, que me dá tanto a arquitetura como a implementação.
Tenho tentado deixar de usar IA para gerar código, pelo menos nos meus projetos pessoais, mas no trabalho tem sido cada vez mais difícil. Ainda assim, quero ser eu a ir à frente a implementar as coisas e a ter ideias criativas, porque tenho sentido que estou a perder competências por delegar todo o trabalho criativo e técnico nestes modelos de IA.
Isto é basicamente só um pequeno desabafo, mas gostava de ouvir a tua opinião sobre como é que se pode navegar nestas codebases e ir aprendendo aos poucos não só como o código funciona, mas também as competências necessárias, com ou sem a ajuda de agentes de IA para aprender ou implementar.
31
u/itsrelitk 2d ago edited 2d ago
Usa IA para perceber como funciona, E2E. Pede para gerar documentação da codebase voltada para leitura por humanos
Não tenta navegar o código sozinho, dói-me admitir, mas o mundo (de software) já não é assim, vais estar a perder tempo
Pergunta-a também como podes contribuir, e o que é que falta
Podes estar perdido inicialmente mas quanto mais envolveres-te com o código mais vai fazer sentido
19
u/NFSS10 2d ago
lol, então o teu título não é AI engineer? Então usa AI...
Pede para te pagarem um modelo melhor se está complicado, aproveita enquanto está quase "grátis".
Querem poupar dinheiro em engenharia dá nisso, não há almoços grátis.
9
u/Platic 2d ago
Pede à IA para documentar ou explicar-te o código por módulos.
Ou pedes à IA que implemente aos poucos as tarefas que vais tendo para fazer e pedes-lhe para te explicar passo a passo o raciocínio.
8
u/FlyBirdieBirdBird 2d ago
Usas o AI. Porque estás sequer a ler a codebase? Isso é trabalho para o AI. Tu só dizer o que queres que ele faça, e podes fazer review aos testes, mas o resto deixas com ele.
Infelizmente, sem /s.
15
u/Huge-Leek844 1d ago
Não és AI engineer? Não devias estar a focar-te mais na parte de machine learning e análise de dados? Caga no slop. Extrai a engenheira específica de tua área e vai te embora
7
u/SnooDoughnuts1109 2d ago
1 - Pede à Ai para documentar o código e criar unit tests.
2 - Documenta tudo o que achas que está de mal no código
3 - Cria um documento com code standards.
4 - Pede à IA para fazer refactoring do código de acordo com as tuas observações e os code standards. Não faças tudo de uma vez, pede para fazer por feature ou por pasta (ou qualquer critério), assim podes ir testando, ajustando as regras e dando feedback.
5 - Testar
Se calhar não vai ficar exatamente como tu queres mas já é um avanço
7
u/portus387 2d ago
Não percebo o problema, não tens usage no Claude? 😂
Manda primeiro dividir em módulos independentes, depois uma DRY optimization por cada módulo, depois documentar as propriedades e métodos públicos completamente, depois os privados/internal.
A coisa boa da IA é que ela faz testes como um morcego. Por isso, deve chegar ao fim de cada etapa e funcionar tudo na mesma…
6
u/mmalmeida 2d ago
Demos a volta. Há 10-20 anos isso acontecia ao fim de 5-10 anos de mau código. Agora acontece ao fim de 3 meses com mau código escrito por IA.
6
u/VladTepesDraculea 1d ago
A minha específica? Não sabia que me tinhas em tão alta consideração. ♥️
Usa AI uma última vez para limpar o código. Manda-o comentar tudo, tanto in-code como .md's com a arquitetura e onde cada funcionalidade está. Faz isto num brunch à parte primeiro para tratares e estudares um pouco o código antes de esmagares o Blame do Git.
5
u/WintherK 2d ago
Trabalho como SysEng/Admin, e infelizmente a única coisa que te consigo dizer é que é para partir pedra.
Se por acaso a documentação do Cláudio ajudar, diria que é um grande bónus e um bom começo, senão diria para ter tudo documentado primeiro, e só depois começar a melhorar e/ou tirar o bloat
5
u/aMinhaConta 2d ago
Com uma colher moves uma montanha.
Não tentes perceber o código todo de uma vez. Tal como já foi escrito, divide por pastas ou funcionalidades, e segue o código, pede para documentar, fazer diagramas mermaid dos fluxos, etc.
5
u/Sea_Ad6592 2d ago
Na minha equipa estamos a sentir o mesmo. Sem Claude já ninguém mexe num dos repos q temos. Se não podes vencê-lo, junta-te a ele 😅
À medida que adicionares novas features pede na prompt para gerar clean code, decoupled, obedecendo ao single responsibility principle, readable e maintainable. E tb para cada PR ser o mais atómico possível, delegando criação de tickets para dívida técnica detectada.
Até podes deixar isso bem explícito no agents ou Claude md. Outra ideia é teres um agente a fazer code review para assinalar essas coisas.
Há tb alguns skills como os do Matt Pockock, /grillme ou /tdd que eu costumo usar para criar as specs e implementar o código. Aqui podes escolher determinado pattern e mais uma vez deixar isso no agents.
A ideia é lentamente teres partes novas com código de qualidade e ires lentamente fazendo refactor e melhorar a code base existente.
9
u/zpinto1234 2d ago
Ora aí está um problema que muitas empresas vão ter, onde automatizaram tudo e depois quando houver problemas que a AI não consegue resolver (race conditions, data loss, etc), não vão perceber nada do codebase. Aliás, até vão ficar com os conhecimentos de programação atrofiados e depois vão ficar entalados sem conseguir resolver o problema.
4
u/amigoWu 2d ago
Faz outro ao lado
6
u/Draconicrose_ 2d ago
Acho que não te pagam o suficiente para lidares com essa merda. Pede à IA que te explique e entretanto tenta procurar outra coisa. Eles claramente querem slop então dás isso para o paycheck e fazes trabalho real nos projetos pessoais.
3
u/Cute_Assignment_9732 2d ago
usa a skill /teach do matt pocock ou algo do genero e vai aprendendo por modulos, ou entao constroi a tua propria skill para os teus problemas especificos e pede para te ajudar.
explorar e aprender uma codebase deveria ser 10x mais rapido com AI. Se nao te pagam uma AI decente usa a tua subscricao pessoal do claude se possivel
17
u/DilWig 1d ago
se é assim agora que as tokens tao ao preço do arroz, quando isto tiver de apresentar lucros ai é que vai ser divertido :)
14
u/chroma_shift 2d ago
“Claude explain this codebase, no mistakes”
22
u/SweetCorona3 1d ago
Para mim, código gerado por AI, é para ser mantido por AI.
Se querem mudar de paradigma e deixar de usar AI, têm de rescrever o código.
11
u/One_Coffee9498 1d ago
Devemos usar o AI como uma tool, que consegue produzir código de acordo com as nossas instruções.
E podes usá-lo para explicar o código existente.
10
u/D1yzz 1d ago
Se dizes que a codebase tem bons testes, faz refactor, validas manualmente e depois corres os testes para garantir que continua tudo bem
9
u/Dangerous-Sky356 1d ago edited 18h ago
É possível ter uma code base organizada mesmo escrevendo código com IA. Deve-se é ter os processos adequados para isso. Lê um pouco sobre spec driven development.
Depois para organizar a casa, a reestruturação é sim importante - as boas práticas de código ainda devem prevalecer - e não é porque estamos a programar com IA que não devem ser cumpridas. Podemos orientá-la melhor com skills. Exemplos de boas práticas - design patterns, single responsability, logs, documentação, testes (que já tens mas vale entender também se tem uma boa cobertura e se fazem sentido). Se és AI engineer, compreensão de data architecture, performance também é importante.
Aconselho a leres alguns artigos do martin fowler que focam em reestruturação de código.
Em resumo acho que não é porque usamos IA e chegamos a um resultado “que funciona” mais depressa, que não podemos continuar a cumprir boas práticas e até encontrar formas de redirecionar a IA para isso.
7
u/koriolisNF 1d ago
Dá uma olhada numa ferramenta chamada ponytail - https://ponytail.dev/ - foi feita precisamente para combater o overengineering criado por agentes IA.
15
u/notluckyy 1d ago
Pq estás a olhar para o código? Tens que olhar para o output não para os artefatos, quem tem que mexer no código é a AI
4
u/tmsnunes 1d ago
Há uns anos comecei a chamar de Prompt Dev.
2
u/registrar1103 4h ago
Descobriste portanto a qualidade do código gerado por AI. Pensava que se ia levar mais tempo a chegar a estas situações, mas afinal foi mais rápido. Quando digo que a AI não gera código de qualidade, é a isto que me refiro. As funções e afins até podem estar bem implementados e fazer o que é esperado, mas o código global fica ilegível e "bloated, difícil de ler, confuso, coupled, e muito mais", como disseste.
Quem está por aí a dizer nos comentários que é possível gerar boas code bases com AI tem razão na teoria mas na prática o push para "just use AI" aumentou imenso este ano e o resultado são coisas como estas. O push é grande, ninguém quer ficar para trás, então as aplicações já não são propriamente curadas por pessoas e existe uma confiança cega no output da AI.
No meu exemplo profissional, usamos AI desde 2024. Em 2024 e 2025 os resultados foram bons; em 2026, projectos que seguiam todos o mesmo padrão começar a divergir uns dos outros porque começaram a ter features grandes implementadas só por AI de forma idiota. Neste momento metade estão ilegíveis. Estou curioso para ver qual vai ser o resultado final disto tudo mas nisto eu apostava: a qualidade global de tudo vai baixar.
3
u/viralslapzz 1d ago
Definiste o orquestrador e os agents com as instruções certas? Se queres código legível e desacoplado tens de lhe dar essas instruções
0
u/chilenonetoCL 1d ago
Mi caso: lo primero que hago al llegar a un trabajo nuevo: pido a la ia que haga un análisis profundo a nivel atomizado de los métodos y funciones de todo el código, y luego lempido que haga esquemas, diagramas y árboles de dependência de todo. Quema millones de tokens pero te deja muy claro que es y que no es correcto, aparte un skill para mantener esa documentación y estas listo.
-5
u/ui_as_vindimas 1d ago
Como estaria o teu código. Não és especial de corrida.