![Dev News: Python AI Tool, uma alternativa de copiloto e RSC News](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706144405_Dev-News-Python-AI-Tool-uma-alternativa-de-copiloto-e-150x150.png)
Dev News: Python AI Tool, uma alternativa de copiloto e RSC News
24 de janeiro de 2024![Netlify lança plataforma Web combinável para desenvolvedores corporativos](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706145724_Netlify-lanca-plataforma-Web-combinavel-para-desenvolvedores-corporativos-150x150.png)
Netlify lança plataforma Web combinável para desenvolvedores corporativos
24 de janeiro de 2024Todo mundo quer manter o software atualizado, mas existe o medo de que mudar uma coisa prejudique outra, então esses projetos se acumulam. Depois, há esse acúmulo esmagador e só piora.
Esse é um problema que a Infield, com sede em Nova York, está enfrentando com IA e dados.
“Queremos ajudar as equipes de engenharia de software a manter todas as suas dependências de código aberto atualizadas, e estamos fazendo isso fornecendo-lhes todas as informações necessárias para evitar a interrupção da produção quando atualizarem, porque o software nº. Uma razão pela qual os desenvolvedores deixam todas essas atualizações persistirem é que eles estão com medo de que algo dê errado… Vou interromper a produção fazendo essa atualização… Mas se eu simplesmente deixar isso como está, não vai quebrar”, disse cofundador e CEO Steve Pike.
A solução da Infield envolve monitoramento contínuo de atualizações recomendadas de componentes de código aberto e uma ferramenta que fornece um guia passo a passo para chegar ao status ideal, o que pode envolver a atualização de vários subcomponentes em uma ordem específica para evitar problemas.
Rede Complexa de Interconexões
Um aplicativo de software médio incorpora mais de 500 componentes de código aberto, de acordo com o fornecedor de segurança de aplicativos Synopsys. Embora as empresas maiores possam ter uma equipe dedicada a manter os componentes atualizados, a maioria não o faz, e a manutenção do software afasta os engenheiros do trabalho no produto principal e nos novos recursos.
A Foundation Capital, investidora da rodada inicial de US$ 3 milhões anunciada recentemente pela Infield, colocou desta forma:
“O software de sistema operacional compreende de 70 a 90% de qualquer solução de software atual e cada componente requer atualização regular para segurança, desempenho e confiabilidade. No entanto, 85% das bases de código contêm componentes desatualizados há mais de quatro anos. Além disso, muitas dependências dependem de pacotes adicionais, resultando em dependências transitivas ou encadeadas. A atualização de uma dependência às vezes pode quebrar toda a cadeia se não for gerenciada com cuidado. O termo técnico para esta complexa rede de interconexões é ‘inferno da dependência’.”
Infield aborda isso como um problema de dados.
“Sabemos que estas atualizações já foram feitas antes, mas quando as pessoas vão fazê-las, estão realmente a fazê-las pela primeira vez”, disse Steve Pike, acrescentando que as empresas, isoladamente, estão a reinventar a roda.
“Eles são um pequeno universo e nunca mais pensam neles. E então o que estamos fazendo é reunir todas as informações não estruturadas que existem sobre dependências de código aberto e suas atualizações.”
Pode ser um changelog, notas de um mantenedor sobre o que está mudando no próprio código ou outro conteúdo gerado pela comunidade no GitHub ou em outro lugar na Internet, bem como dados das experiências dos usuários do Infield. Eles reverteram com frequência? É necessário fazer alterações no código para fazer essa atualização com segurança? E a Infield mantém seu próprio banco de dados de incompatibilidades não documentadas.
“Portanto, todos esses dados sobre essas atualizações, estamos armazenando, estruturando e, em seguida, trazendo à tona proativamente para você quando (você decidir fazer a atualização)”, disse Steve Pike.
Adotando uma visão centrada em dados
Os cofundadores Steve e Allison Pike se conheceram na SevenFifty, uma startup de tecnologia que integra dados de mais de 1.000 atacadistas de bebidas alcoólicas para produzir um conjunto de dados de produtos e preços para restaurantes. Steve escreveu o código original e tornou-se CTO enquanto Allison era COO, vendendo um produto de dados e trabalhando com engenheiros de dados. A partir daí, eles criaram o Syndetic, que descreveram como um “Shopify para conjuntos de dados” e passaram pelo Y Combinator. Mas a COVID-19 interveio com bloqueios.
![Andrew Lenehan](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706144601_975_Atualizacoes-de-dependencia-assistidas-por-IA-sem-quebrar-as-coisas.png)
Andrew Lenehan
![Allison Pike](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706144601_876_Atualizacoes-de-dependencia-assistidas-por-IA-sem-quebrar-as-coisas.png)
Allison Pike
![Steve Pike](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706144602_44_Atualizacoes-de-dependencia-assistidas-por-IA-sem-quebrar-as-coisas.png)
Steve Pike
Como diz Allison Pike: “Nunca tivemos o dia de demonstração que a maioria das empresas YC consegue ter. Estávamos presos em Mountain View.”
Mas a equipe formada por marido e mulher levantou dinheiro suficiente para manter a Syndetic funcionando, e Steve assumiu trabalho de consultoria, principalmente mantendo software atualizado para empresas com dívidas técnicas. A ideia de ter uma visão centrada em dados da manutenção de dependências de código aberto surgiu dessa experiência.
Seu terceiro cofundador, Andrew Lenehan, foi anteriormente gerente de produto na AppNexus, agora parte da Microsoft, e cofundou a Roster, que se tornou a Punchcard, uma ferramenta de exploração de dados para equipes de receita.
Allison Pike disse que usar dados para melhorar o gerenciamento de atualizações só faz sentido.
“É um uso interessante da IA porque muito do que foi escrito sobre IA recentemente, ou desde o lançamento do ChatGPT, tem a ver com a aplicação da IA ao próprio código. Os changelogs são realmente interessantes porque são um documento escrito por um ser humano, o mantenedor que mantém o projeto de código aberto, mas é um código. Está no repositório GitHub, mas é um documento de texto escrito por uma pessoa. E assim você pode entrar em mais detalhes.”
Todas essas informações vão para um grande modelo de linguagem (LLM) usado para definir a estratégia ideal, que a empresa chama de Upgrade Path, para ir do Ponto A ao Ponto B em uma estratégia de atualização. Isso pode economizar meses de tempo em um projeto grande, como manter tudo atualizado em Ruby on Rails, de acordo com a empresa.
Primeiro, você conecta o aplicativo da web Infield à sua base de código no GitHub, ele verifica seu código para determinar as dependências subjacentes e, em seguida, a tecnologia recomenda as etapas necessárias para atualizar sua base de código com segurança. Isso pode envolver a atualização de um subcomponente para uma versão intermediária em vez da versão mais recente, para evitar quebras no downstream.
“Quando você tiver esse backlog de 100, digamos, atualizações de candidatos que você poderia fazer, você poderá usar nossos dados para priorizá-las”, disse Steve Pike. “Portanto, mostramos informações sobre ambos os riscos – a que você está exposto ao não atualizar essa dependência? – e esforço. Quanto trabalho será necessário para fazer a atualização? Existem alterações significativas ou existem outros pacotes em seu projeto que precisam ser atualizados primeiro e que estão bloqueando essa atualização?
“Então você pode executar filtros para dividir essas duas coisas uma contra a outra e descobrir que posso limpar uma dúzia de dependências obsoletas sem atingir nenhuma alteração significativa. Então, talvez eu possa fazer isso em uma solicitação pull, desde que meus testes sejam aprovados. Mas aqui estão outras coisas de alto risco onde, na verdade, existem grandes mudanças significativas. Então isso precisa ser mais um projeto.”
Allison Pike afirma que soluções existentes como o Snyk tendem a se concentrar na descoberta de vulnerabilidades de segurança ou, como o Dependabot, deixam aos usuários uma lista de tarefas, mas sem informações contextuais personalizadas para seu sistema específico. Escrevi sobre uma empresa europeia, Depfu, há alguns anos, que usa automação e não envia mais do que sete tarefas por vez para evitar que os usuários fiquem sobrecarregados.
O gerenciamento de dependências totalmente automatizado tem seus detratores, incluindo o consultor Gerald Benischke, que o defende nesta postagem do blog. Infield adota uma abordagem mais assistida por humanos.
Embora o Infield detecte alterações significativas automaticamente, contando com os linters e gerenciadores de pacotes de cada linguagem ou estrutura, ele não automatiza as atualizações reais. Se for necessária uma alteração de código, o usuário pode fazê-lo ou contar com o serviço gerenciado da Infield para fazê-lo. Originalmente voltado para Ruby on Rails, recentemente adicionou suporte para JavaScript/TypeScript e Python. TypeScript e JavaScript compartilham o mesmo gerenciador de pacotes.
A postagem Atualizações de dependência assistidas por IA sem quebrar as coisas apareceu pela primeira vez em The New Stack.