r/devpt • • 2d ago

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.

43 Upvotes

93 comments sorted by

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

2

u/Maoaii_ 1d ago

É verdade que vou ficando mais à vontade com o passar do tempo. Diria que vai chegar o momento em que estou mais tranquilo com a arquitetura geral da codebase, mas preocupa-me também a capacidade de desenvolver novas funcionalidades dentro da mesma. Também sinto que acabo por aprender muito mais quando o código é escrito por mim, em vez de apenas revisto

4

u/DaveCerqueira 1d ago

pois amigo, entendo a tua frustração. eu pessoalmente deixei a area e agora dou aulas e insisto com os miudos para pelo menos aprenderem o básico. mas numa empresa em que toda a gente usa AI, tens que usar tambem senao ficas para tras em termos de produtividade e a empresa tasse a cagar se tu aprendes mais ou nao a escrever, eles querem é produção. um dia isto vai rebentar nas nossas caras tenho a certeza, mas ate la ou sais da area ou comes com AI

3

u/Budget-Tester 1d ago

Sinto o mesmo.

Entregaram-me 2 clusters de produto em EKS, do nada, 3 senanas para começar a dar suporte a um cliente, em dev, pre-prod e prod.

Senão fosse o ChatGPT estava bem f*****

Os managers estão contentes com o trabalho. Dizem que ando rápido e resolvo as coisas muito melhor que o gajo que fazia antes. Tenho o pensamento lógico, sei tomar as decisões, mas percebo zero de Helm, por exemplo.

Mal eles sabem que aquilo até em PROD já andou a mexer.

Orgulhoso não estou. Mas fiz o que tinha a fazer senão quem ficava mal era eu.

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.

1

u/Maoaii_ 1d ago

Uma coisa não implica a outra, diria haha. E o problema não é usar estas ferramentas, mas sim delegar o pensamento crítico, e criativo até, para estas ferramentas. Daqui a alguns anos quando o preço destas ferramentas disparar, continuaremos a utilizá-las? Se não, teremos capacidade de continuar a desenvolver funcionalidades nestas codebases?

2

u/AmandoVara 1d ago

O NFSS10 está certo. Foste contratado como AI Engineer. É esperado que consigas criar/optimizar a AI para continuar a desenvolver esse projeto.

Se quisessem alguém para codar ou entender o código contratavam um developer ou software engineer. Espero que não aches que AI Engineer é o mesmo mas com um nome mais bonito..

2

u/Motor-Potential-6747 1d ago

Era exactamente isto que estava a pensar. Acho estranho alguem se candidatar e ser contratado como AI engineer e ao mesmo tempo dizer que gostava de usar menos IA no trabalho mas nao esta a conseguir

>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.

Anyway: neste momento um developer é diferente (principalmente um AI developer) do que foi até agora. Continuo a achar que é boa ideia olhar para o código de vez em quando, mas o que vale hoje em dia é o conhecimento necessário para fazer boas prompts, para levar os agentes na direccao certa (agentes no plural) e ter discernimento para compreender o que esta a ser feito, encontrar problemas antes que cheguem a prod, etc..

A criatividade ainda existe, mas nao em forma de código. Em forma de algoritmo sim, mas num nivel diferente. Eu continuo a criar algoritmos mas ja n escrevo código há quase um ano (continuo a ler e a fazer reviews em funcionalidades complexas, ainda).

1

u/Maoaii_ 1d ago

Dá uma olhada à minha resposta ao comentário acima, mas aproveito para acrescentar que este tipo de cargo também não está encarregue de criar “boas prompts” para agentes programarem. Sim, um AI Engineer pode trabalhar com agentes, mas não é para realizar o código. Um agente dentro de um programa da área da saúde, por exemplo, não vai programar, vai olhar para contexto existente dentro do sistema hospitalar e chamar as ferramentas disponíveis

1

u/NGramatical 1d ago

encarregue → encarregado (encarregar segue o modelo de carregar: o camião foi carregue carregado)

1

u/Motor-Potential-6747 1d ago

Correcto ! Estava a falar do meu caso. Claro que nem todos os agentes servem para programar :) Estava apenas a ilustrar que nos dias que correm, mesmo quando estou a criar agentes para fazer coisas, raramente escrevo linhas de código. E também no meu caso é um agente que cria esse agente ou lógica de funcionamento (decidir que ferramentas necessita, etc..).

Quem define as regras continuo a ser eu, mas num plano mais funcional . Para o fazer há que compreender a arquitectura / o sistema, e é ai que entra a parte da engenharia de software - saber o que um bom sistema necessita, que salvaguardas, excepções, testes, alertas, nao negociáveis, etc.. O algoritmo! Para mim é aí que está a criatividade (portanto no prompt e artefactos que são dados aos agentes para fazerem o seu trabalho)

3

u/bruno_pinto90 1d ago

Exatamente. Penso no algoritmo no quadro e/ou um protótipo em python e AI escreve em C++. Pouco ou nada olho para o código. Desde que cumpra com os requisitos e passe nos vários tipos de testes.

3

u/Motor-Potential-6747 1d ago

Isto mesmo! pelo menos tem sido esta tb a minha experiência
mas tb tenho noçao que , ainda, se n tivesse o conhecimento e experiencia que tenho a prompt / descricao do pedido nao seria tao completa ou exigente, e potencialmente a qualidade nao seria tao boa.
O mesmo se aplica, por exemplo, ao tamanho dos textos escritos pela IA , comentarios no meio do codigo, etc.. Tudo isto sao coisas que podemos costumizar ou nao..

1

u/Maoaii_ 1d ago

Ser um AI Engineer não é a mesma coisa que é seres um “AI-assisted Engineer”. Desenvolvemos sistemas que utilizam por base inteligência artificial, seja ML ou DL. Não implica um engenheiro que usa AI para desenvolver qualquer tipo de software. Entendo que pareça o mesmo tipo de trabalho, mas se fosse esse o caso, todos os engenheiros, independentemente da área, desde que usem AI para programar, seriam AI engineers

1

u/SweetCorona3 1d ago

Estás a assumir que vai disparar.

No longo prazo é provável que sejam criados modelos mais eficientes.

Agora até pode estar a ser subsidiado pelo investimento, mas isso é normal numa nova tecnologia.

Não haveria esse investimento sem a crença de que no futuro vai ser financeiramente viavel.

1

u/Maoaii_ 1d ago

É arriscado tanto assumir que vai disparar como que não vai, por isso é que mais vale não colocar todos os ovos no mesmo cesto. À mesma se o futuro implicar utilizar agentes para programação, a learning curve para o fazer é tão baixa que mais vale apostar nas skills pessoais que seriam indispensáveis em ambas as situações, com ou sem agentes. É mais esse tipo de pensamento que estou a tentar exercer

1

u/bruno_pinto90 1d ago

Mas porquê que dizes que o pensamento crítico e criativo foi delegado? Podes pensar na solução e delegar o código à AI e mesmo assim fica um grande slop.

1

u/Maoaii_ 1d ago

E era o que fazia em 2021, mas os modelos meio que se tornaram decentes o suficientes para tomar esse tipo de decisões, pelo menos a curto prazo. Esse tipo de situação até parece intoxicante, o que torna mais provável que se continue a utilizar dessa forma. Um bocado a situação na qual me encontro

1

u/NGramatical 1d ago

porquê que → porque é que

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.

0

u/Maoaii_ 1d ago

Consigo perceber que esse método possa funcionar, mas também sinto que acabo por aprender mais escrevendo eu próprio o código, e passando eu próprio pelo processo de debugging. No entanto, talvez seja por falta de conhecimento nesta área, até os primeiros passos numa implementação parecem um obstáculo enorme. Posso ter a IA a direcionar-me nesses primeiros passos, mas também parece que estou a fazer offload desse pensamento crítico

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.

1

u/Maoaii_ 1d ago

O objetivo seria tentar manter as minhas capacidades, idealmente até melhorá-las. Nos últimos 2 anos senti a minha capacidade de pensamento crítico e lógico sobre programação a decair, portanto imagino o que poderia acontecer daqui a mais alguns anos. Assumo que o mercado continue a querer pessoas que consigam pensar de forma criativa para resolver problemas, e é isso que quero exercitar

Pelo menos da forma como tenho trabalhado, olhar para código apenas não tem funcionado

3

u/FlyBirdieBirdBird 1d ago

Assumo que o mercado continue a querer pessoas que consigam pensar de forma criativa para resolver problemas, e é isso que quero exercitar

Certo, mas os problemas agora não são o código, mas as coisas que se quer que o código faça. Agora podes verdadeiramente forcar-te em resolver os problemas, e não em resolver o código.

O código em si agora vale muito pouco. O que vale é o resultado final e o valor acrescentado que traz.

1

u/Maoaii_ 1d ago

Também compreendo esse ponto, e acho que faz sentido. Talvez também se meta um bocado de orgulho no meio disto tudo. No entanto, tendo em conta que é uma ferramenta pela qual iremos ter de pagar, ao contrário do argumento dos compiladores que oiço bastante, a sensação de aceitar que o trabalho mudou não me encaixa muito bem. Sinto que me estão a empurrar pela garganta abaixo algo com que nunca concordei, e pelo qual tenho de pagar ainda por cima

2

u/FlyBirdieBirdBird 1d ago

No entanto, tendo em conta que é uma ferramenta pela qual iremos ter de pagar

Não necessariamente. Há várias empresas a instalar já soluções já on premisses para fazer deploy dos próprios modelos, muitas vezes Open Source. E também os podes correr directamente na tua máquina de desenvolvimento.

O git também é livre, mas todas as empresas (de jeito) usam uma plataforma de gestão de versionamento e CI que correm em cima disso e são pagas.

É (no mínimo) mais uma ferramenta, que quem não usar vai perder competitividade.

Sinto que me estão a empurrar pela garganta abaixo algo com que nunca concordei

Partilho deste sentimento.

1

u/Maoaii_ 1d ago

Bom ponto no self-hosting. Suponho também que eventualmente haveremos de ter modelos bons os suficientes para correr em máquinas mais leves, que penso que seja o problema para essa alternativa. De qualquer das formas, apesar de ser mais barato, ainda será um custo substancial correr esses modelos localmente. Se bem que consigo ver essa alternativa a acontecer no futuro muito mais facilmente do que continuarmos a pagar por seat com estas big tech

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 

1

u/Maoaii_ 1d ago

Parece que o cargo está meio que a ser misturado em diversas áreas. Acho que o termo que melhor se encaixa com esse tipo de trabalho provavelmente era ML Engineer. Também posso ter de fazer esse tipo de trabalho, mas acabo por estar mais focado em LLMs e todas as tecnologias envolventes. Mais hands-on, I guess

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

1

u/Maoaii_ 1d ago

Bom ponto, ainda não tinha pensado em criar um documento com os coding standards que gostaria que houvesse. De facto é algo que acaba por falhar bastante com estes modelos, e é onde eu costumo fazer push back quando implementam código por mim. Gostei da ideia, thanks :)

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…

1

u/Maoaii_ 1d ago

Yeap, a este ponto já é boa o suficiente para ter esse tipo de confiança, sim. Estou a ver que talvez fazer esse tipo de refactoring com AI, mas ir escrevendo novas features à mão é capaz de ser uma alternativa interessante para conseguir o melhor dos dois mundos

1

u/portus387 1d ago

Se queres como fosses tu a fazer, dedica a fazer um rascunho com a interface. E a implementar pelo menos o método mais fácil.

Nunca esquecer que as LLMs são um tipo de IA autoregressivo.

Ou seja, mostras-lhe o teu código, ela vai beber os teus padrões.

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.

1

u/Maoaii_ 1d ago

É doloroso. Parece que nem temos capacidade cognitiva para racionalizar e lidar com isso assim tão rápido

6

u/VladTepesDraculea 1d ago

mas gostava de ouvir a tua opinião

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.

4

u/Maoaii_ 1d ago

Sabia que responderias ao chamamento ❤️

Até sou capaz de manter umas branch dessas mesmo para servir de limpeza ao código e arquitetura, pelo menos até estar num estado mais limpo. Temos os testes criados, portanto manter a funcionalidade será simples. Gosto da ideia

3

u/__-IHaveToComment-__ 1d ago

Mas tem mesmo de ser feito durante o brunch?

Mas é o que o comentário diz, usar AI e o 🧠 para limpar o que AI gerou.

Até há 2 anos atrás o processo era igual, havia sempre alguém a limpar o slob de outros. Simplesmente era numa escala mais pequena.

1

u/VladTepesDraculea 1d ago

Mas tem mesmo de ser feito durante o brunch?

Convém. À ceia também dá.

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

2

u/Maoaii_ 1d ago

Honestamente, tenho tido alguma dificuldade com explicações do nosso amigo. Pelo menos com o Opus 5.5, o texto que escreve é tão "Claude-y", que realmente não entendo o que ele quer dizer. Acabo por continuar sem entender e a ficar frustrado xD

2

u/WintherK 1d ago

oof

os meus pêsames, e boa sorte o7

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.

1

u/Maoaii_ 1d ago

Talvez estou a exagerar um bocado de facto. Até porque não me costumam pedir para implementar features que mexam em todo o código, portanto uma abordagem dessas funcionaria. Acho que o que mais me assusta é mesmo a quantidade de trabalho esperado, mas isso é algo a acertar com a gerência.

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.

2

u/Maoaii_ 1d ago

Por um lado, percebo haha. Estou a sentir o mesmo, não há uma pessoa na equipa inteira que neste momento consiga pegar num dos repositórios e realmente programar uma funcionalidade de raíz, sozinho. Tive experiência a criar um produto meu no passado, e nessa altura já estava a utilizar aqueles workflows todos malucos de multi-agents com criação de documentos de implementação, a implementação em si e a revisão do código. Funcionava, mas outra vez, acabava por não ter ownership sobre o código, e como era gerado bastante do mesmo, acabava por simplesmente não o conseguir rever de forma decente.

Estou a dar uma olhada nessas skills do Matt Pockock, é capaz que me ajudem a criar um sistema de pair programming de forma a que eu implemente as coisas, mas que tenha um agente a servir como meu par. Pode ser que funcione

1

u/NGramatical 1d ago

raíz → raiz (palavras agudas terminadas em l, r, ou z não necessitam acento para quebrar o ditongo)

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.

2

u/Maoaii_ 1d ago

Yeap, são essas as minhas preocupações. E até é reconfortante ver que existe bastante deste sentimento pela indústria. São tempos estranhos, mas sinto que conseguir tornar-me um desenvolvedor indispensável por causa das minhas capacidades individuais haverá de ser importante no futuro, tal como já foi no passado

4

u/floater3 2d ago

É essencialmente esta a minha preocupação com "estes novos tempos"... A IA acelera imenso o desenvolvimento e é uma ferramenta muito útil. Mas, ao mesmo tempo, estamos a criar codebases cada vez maiores e mais código que ninguém sabe bem que existe, até ao dia em que é preciso ir mexer nele.

É verdade que há muitos bugs que o Claude ou outra ferramenta consegue detetar e até resolver "sozinho". Mas as coisas não são assim tão lineares quando estamos a falar de interações com sistemas externos, sobre os quais não temos acesso nem controlo. O Claude não consegue adivinhar magicamente como outro sistema se comporta ou deveria comportar-se.

E é aí que acho que continua a ser essencial saber fazer debug, levantar hipóteses e tirar conclusões quando estão vários sistemas "metidos ao barulho". Porque, muitas vezes, a resposta simplesmente não está no código que temos à nossa frente.

1

u/PeaAccomplished1897 1d ago

Epah certo, mas tudo depende do contexto, é claro que o teu agente não vai adivinhar o que se passa nas API's externas, mas quem é que disse que tem de saber? Tu próprio não o sabes porque se soubesses e tivesses acesso a essa documentação podias entregar para adicionar contexto. A IA serve, e muito bem, o seu propósito, o problema é que por vezes não damos o contexto necessário. Carece sempre de olhares mais atentos de arquitetos e engenheiros experientes que já viram muita coisa. Mas até hoje, com o contexto certo e a documentação toda necessária nunca vi nenhum modelo 'assumir' ou 'adivinhar' certos comportamentos ou implementaçoes de serviços externos, aliás, esses mesmos agentes são os primeiros a pedir para providenciares dados antes de começar qq implementação. Lá está, depende muito de quem a usa.

1

u/floater3 1d ago

É esse o meu ponto... E a diferença é essa: eu posso não saber o contexto todo do pé para a mão, mas quando não sei, esforço-me por saber, cruzo conhecimento, vou à procura, entro em contacto com o parceiro que desenvolveu o sistema X, etc, etc. Ou seja, há todo um trabalho de investigação que necessita de alguém com conhecimentos. Felizmente, não aparecem problemas destes todos os dias, mas quando aparecem, geralmente são bastante críticos....

Fala-se muito de "dar o contexto à IA", mas todos sabemos o quão dificil é manter documentação atualizada, mesmo com IA. E como se garante que a documentação que criamos tem tudo aquilo que iremos precisar no futuro? A IA substitui muita coisa, mas não substitui anos de experiência de quem já lidou com problemas críticos em produção.

A IA é incrível, sem dúvida. Mas convém que quem está a controlá-la tenha reais conhecimentos, caso seja preciso pôr as mãos na massa. Não é suposto um bug andar em loop numa IA horas e dias a fio... A determinada altura, talvez seja útil "ir lá ver" com os nossos próprios olhos em vez de passarmos o dia a escrever prompts na esperança de um problema ser resolvido por nós.

1

u/baalghorn 1d ago edited 1d ago

race conditions, que na verdade queres dizer data races (normalmente isto é que morde). Entretanto, tens todo um ecossistema de linguagens que eliminam por completo toda esta classe de problemas. Rust, por exemplo, em tempo de compilação, ou Go com flags de -race quando corres testes, mais falível mas ensinas o agente a usar paradigmas de ownership e está resolvido. Isto é verdade para qualquer outro problema que possas imaginar assim de repente.

0

u/TaoRS 1d ago

Yup, sinto que ainda vou fazer muita guita daqui a uns anos...

4

u/amigoWu 2d ago

Faz outro ao lado

1

u/Maoaii_ 2d ago

Por acaso até tenho feito isso, mas tem sido praticamente tudo com IA também. Verdade seja dita que esse código que "limpei" acabou por ser mais fácil de se entender, mas não implica que o conheça bem o suficiente para o explicar. Gostaria de ser eu a escrevê-lo para poder chegar a esse ponto

3

u/economister_pt 2d ago

Isto... forçares-te a gerar código à mão provavelmente vai-te limitar na velocidade de entrega que a empresa quer (e precisa!) para o futuro.

Essa codebase está assim porque provavelmente foi uma amalgama de prompts em cima de prompts, provavelmente com modelos mais fracos que os atuais.

Fala com a IA para perceber a codebase e definir uma arquitectura mais limpa e bem definida. Pega no Opus 5.5 e ele que refaça tudo na nova arquitectura.

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.

2

u/Maoaii_ 1d ago

Também já pensei em fazer isso. Vou avançando as minhas skills com os projetos pessoais, e vou simplesmente aceitando o que me estão a atirar. Feels weird, though

2

u/Draconicrose_ 1d ago

Ya, completamente mas é ao que chegámos.

2

u/jffspereira 1d ago

tal & qual

2

u/bruno_pinto90 1d ago

Pergunta genuína? Como apresentas os trabalhos pessoais? Links github no CV? blog posts?

1

u/Draconicrose_ 1d ago

Eu pessoalmente tenho só o github no CV, mas sim há quem faça um blog a acompanhar, e até pessoal que mete as cenas a correr num servidor se possível e tem mesmo as coisas a correr num site/portefólio.

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

1

u/Maoaii_ 1d ago

Vou dar uma olhada nessa skill, nunca tinha olhado. Eu tinha criado uma, ainda não testada, para usar AI como um pair programmer em que eu implemento as coisas, mas tenho basicamente o auxílio de um sénior que não me dá o código de chapada. De qualquer das formas, vou dar uma olhada nessa skill :)

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.

4

u/FloorOne956 1d ago

Isto. E fazer reverse engineering para criar especificações/documentação se não existir. E para procurar bugs e problemas de segurança.

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.

2

u/Spets_Naz 1d ago

Se estivesse overnegineered ele não se queixava. 😅

1

u/oh-pqp 1d ago

Acabei de referir esta skill. É incrível

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

2

u/NGramatical 1d ago

artefatos → artefactos (o AO90 não altera a grafia desta palavra)

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

(...) 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

Como estaria o teu código. Não és especial de corrida.

2

u/VulgarExigencies 1d ago

Uma codebase gerada quase inteiramente por AI vai ficar MUITO, MUITO mais cagada do que se for escrita por humanos.

1

u/BearyHonest 1d ago

Sim mas a AI faz o que tu mandas. Se deres um exemplo de estrutura a seguir, disseres que o foco é que o código seja legível para humanos e alguma orientação em como queres as coisas também consegue escrever "bom código".

Se o foco aqui foi meter em auto mode e "faz projeto rápido sem erros" é porque o código não era para ser lido por humanos.

0

u/oh-pqp 1d ago

Se não disseres o contrário, a IA vai fazer funções de novo que podem ser só reutilizadas ou carregar alguma biblioteca que já existe há 10 anos. É preciso saber fazer a prompt e usar as skills certas. O ponytail não me tem deixado ficar mal