14 pontos por GN⁺ 7 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • Uncle Bob, famoso por "Clean Code", declara que chegou a era em que a IA escreve código muito mais rápido do que os desenvolvedores e pede uma mudança no papel dos desenvolvedores
  • Como a IA consegue concluir em 5 minutos um trabalho que antes levava um dia, a era em que desenvolvedores escreviam código diretamente acabou
  • Mas isso também dá aos desenvolvedores um poder enorme, permitindo fazer coisas que antes eram inimagináveis
  • Cobertura de testes sempre foi dolorosa, mas agora os desenvolvedores podem instruir a IA a garantir cobertura de testes e usar um mutation tester para verificar a eficácia real dos testes
  • Em combinação com ferramentas de análise de complexidade ciclomática (cyclomatic complexity), é possível instruir a IA a elevar a qualidade do código a um nível muito superior ao de antes

Transcrição do vídeo anexado

Vamos encarar a realidade. A IA escreve código várias vezes mais rápido do que vocês. O que levaria um dia para vocês, a IA termina em 5 minutos. Acabou. A era em que vocês escrevem código diretamente acabou. Eu sei. Aceitem isso.

Mas aqui está a questão. Isso, na verdade, dá a vocês um poder enorme. Porque agora vocês podem fazer coisas que antes nem sonhavam ser possíveis.

Pensem, por exemplo, em cobertura de testes. Eu sei o quanto isso era doloroso. Era preciso escrever todos aqueles testes irritantes. E, ainda assim, ter testes não significava que o código realmente funcionava. Vocês rodavam a cobertura de código, sorriam de lado e diziam: "É, tudo bem, mas isso não quer dizer que o código funciona... só quer dizer que ele foi executado".

Agora dá para corrigir isso. Porque vocês ganharam horsepower. Mandem a IA cobrir o código e, depois, executem um mutation tester. Sim, isso é uma ferramenta. E essa ferramenta também pode ser pedida à IA para criar. Ela faz isso em 5 minutos. Depois, façam a IA executar a ferramenta. Essa ferramenta altera o código-fonte e roda todos os testes. Se os testes não falharem? Então ela escreve testes que façam esses casos falhar. Aí, sim, vocês passam a ter cobertura de testes de verdade.

Eu juro, vocês passam a ter cobertura de testes de verdade.

E sabem mais o que vocês podem fazer? Podem analisar a qualidade do código. Dá para escrever uma ferramenta que examine a complexidade ciclomática do código. Na verdade, já existe uma excelente ferramenta. É uma ferramenta de 20 anos. O nome dela é CRAP. É um bom nome. Não sei do que é sigla. Nem quero saber. É a combinação de cobertura de testes com complexidade ciclomática. Vocês podem mandar a IA reduzir a pontuação de CRAP para 5 ou menos, 4 ou menos. Aí a IA vai dividir funções grandes em partes menores e cobrir tudo com testes.

Pensem no poder que vocês têm. Vocês podem elevar a qualidade do código a um nível nunca visto antes.

Eu sei. Eu sou aquele velho cara do Clean Code. Mas vou ser honesto. Se vocês colocarem a IA para trabalhar pesado, vão conseguir tornar o código muito, muito mais limpo.

2 comentários

 
GN⁺ 7 시간 전
Opiniões do Reddit
  • Parece a voz de vilão que Mark Hamill costuma fazer

    • Aqui está quase indo para o lado do Joker. Ele sempre falou como um personagem de desenho?
    • Parece a voz do gerente da seguradora do pai em Incredibles
    • Lembra mais o comediante Lewis Black. Fiquei esperando ele explodir numa longa tirada de raiva, mas não aconteceu até o fim
    • Me lembrou mais a cena do interrogatório do Neo em Matrix. Algo tipo “Hello Mr Anderson”
  • Isso realmente parece um desenvolvedor calejado

    • Sim. Acho que agora não vou mais escrever código tipo if (f == -1) { printf("open failed\n"); exit(1); }
      A IA vai escrever isso no meu lugar e ainda vai adicionar tipos de erro separados e mensagens com parâmetros significativos para todos os motivos possíveis de falha. A IA não é preguiçosa como eu, então agora posso focar na lógica de manipulação de arquivos
  • Acho que entramos numa era em que a maior parte do código é boilerplate. O que importa é a capacidade de comunicar bem os requisitos e de continuar verificando a segurança (OWASP) e o desempenho do código gerado

    • Na verdade, o código já não foi quase sempre majoritariamente boilerplate? É legal escrever algoritmos elegantes, mas no fim ainda precisa empacotar isso num produto e adicionar CRUD, permissões, UI, suporte multiplataforma, pagamentos etc.
    • Falam como se modelos de linguagem de grande porte fossem um transpiler que converte DSLs de alto nível em código real com confiabilidade, mas não é nada disso
      É extremamente não determinístico, e até os modelos mais recentes muitas vezes oscilam ao longo do dia entre “isso aqui já serve” e “quase não dá para usar”
      Linguagem natural sempre foi, é e provavelmente continuará sendo ambígua e vaga, então é bem possível que esse problema nunca seja resolvido. É por isso que usamos fórmulas matemáticas, e não “hmm, some X a Y e quando chegar em Z pense bem”
    • Ainda estamos muito longe do ponto em que “basta saber comunicar bem o que você precisa”
      Estou justamente tentando fazer o Claude lidar bem com permissões agora, e a forma como ele implementou novas ações e mudanças de permissão foi um exemplo perfeito de código que “meio que funciona, mas vai quebrar algum dia”
      O Claude escreve bem, mas isso não significa que sempre escreva um bom código
      O que você precisa entender sobre IA é que ela não é melhor que pessoas na parte de “pensar”; ela só é mais rápida. Se você mandar, ela geralmente faz do jeito que a maioria das pessoas faria, e em código isso com frequência não é muito bom
      Sempre foi possível contratar vários desenvolvedores, explicar o que você queria e receber algo cheio de bugs, onde uma mudança nova quebra outras três partes. O Claude faz exatamente a mesma coisa se você largar ele sozinho. Já vi isso na prática, e a resposta sempre é entrar, ler o código escrito e mandar refatorar para algo menos frágil e mais robusto
      Enquanto você usar o Claude para escrever código, ainda vai precisar da capacidade de julgar se aquele código está bom. É igual deixar alguém escrever seu currículo ou seus documentos contábeis: você ainda precisa conferir o resultado
      Talvez não escrevamos código do jeito antigo, mas a capacidade de ler o que foi gerado e revisar à luz da experiência continua sendo necessária
      O problema é que todo mundo acha que, por falar inglês, pode mandar o Claude criar um programa. Mas falar inglês não significa que você consegue mandar o Claude escrever uma tese de doutorado refutando a radiação Hawking. Você não tem nenhuma forma de saber se o resultado está certo
    • Tem mais algumas etapas no meio do caminho
    • Parece logo depois de sair de uma era em que a maior parte do assembly era boilerplate
  • Hoje há mais programadores empregados do que quando a Microsoft introduziu scaffolding. Também havia mais programadores quando linguagens como Basic permitiram que as pessoas digitassem instruções legíveis por humanos em vez de assembler, e mais do que na época anterior, quando se perfurava código em cartões
    Os computadores sempre foram programados com conjuntos de instruções cada vez menos restritivos e mais fáceis de ler e escrever
    Bob Martin é alguém que eu respeito, mas acho que desta vez ele está errado. As pessoas ainda vão escrever instruções para computadores. A diferença é que não será mais um conjunto limitado e específico de comandos, e sim uma linguagem muito menos restritiva e muito mais legível para humanos
    Nada acabou. Está apenas começando. A programação lançou uma nova linguagem, e o nome dela é English

    • O que todo mundo esquece nessa discussão é que o objetivo não é codificar exatamente a mesma coisa que fazíamos no dia anterior à invenção do vibe coding
      Já estamos produzindo uma quantidade recorde de software, e isso vai acelerar ainda mais. Vamos escrever mais código do que antes e, mesmo ficando muito mais rápidos, no fim haverá mais gente trabalhando com software de algum jeito. O custo de produzir caiu demais, o que se aproxima do paradoxo de Jevons
      Achar que “desta vez é diferente” é arrogância, e até gente inteligente tem dificuldade de imaginar o que significa crescimento exponencial multifacetado. Não são só os modelos de linguagem de grande porte que estão melhorando
      Então acho que isso faz sentido
    • Então tenta explicar a fala do mesmo jeito
    • Ele chegou a dizer que só deveríamos revisar testes, não código, e isso me parece quase delírio. Parece alguém lidando apenas com projetos de hobby que nunca vão para produção real
    • O Uncle Bob já postou um tweet sobre o que está falando agora
  • Esse é o pico da bolha, certo? Estou cravando isso aqui agora ☎️

  • A forma como ele fala exige anos de entendimento sobre métricas de qualidade de software, testes profissionais e qualidade de código
    Ainda não temos ferramentas suficientes para isso. Pelo menos, elas ainda não foram amplamente adotadas. Nem tenho certeza de que a indústria vá adotar
    As práticas de CI/CD também não eram tão difíceis de implementar, mas muitas empresas nunca adotaram tudo isso e continuaram trabalhando de forma ineficiente contratando mais gente. Vai continuar assim no futuro, a menos que a IA cuide de tudo isso por padrão. As ferramentas atuais, como Claude Code, Cursor e Codes, não bastam

    • Fui eu literalmente quem criou isso
    • Por que você acha que ele não estava sendo sarcástico ou irônico? As ferramentas ainda estão muito longe de se tornarem úteis da forma descrita
  • Parece Matrix com esse cara como um Agent

    • Você não quis dizer The Architect?
  • Para guiar a IA direito, você precisa de profundidade técnica de altíssimo nível. Se você simplesmente mandar a IA continuar adicionando código, isso não vai ser manutenível
    Além disso, ainda não ouvi falar de um único produto de mercado operado só por IA. Então vamos com calma

  • Daqui a pouco vão querer fazer vibe coding também com o cérebro humano

 
nodelay 5 시간 전

As opiniões no reddit parecem bem negativas ou cheias de sarcasmo.
Na prática, quando graças à IA estamos finalmente avançando de forma concreta em partes que foram adiadas por tanto tempo, como cobertura de testes e testes E2E, essa postura parece até cínica.