Thoughtworks Technology Radar, Volume 31 lançado
(thoughtworks.com)Visualiza e explica as tendências mais recentes nas áreas de técnicas/ferramentas/plataformas/linguagens de programação e frameworks em quatro estágios: Hold/Assess/Trial/Adopt
Antipadrões de assistência de programação
- Como não é surpresa, nesta edição do Radar a discussão é dominada por IA generativa e LLMs usados comumente por desenvolvedores
- Padrões inevitavelmente levam a antipadrões, ou seja, situações contextualizadas que os desenvolvedores devem evitar
- No espaço superaquecido de IA, alguns antipadrões já começam a aparecer:
- a falsa ideia de que um humano com IA como parceira pode substituir completamente o pair programming
- dependência excessiva de sugestões de apoio à programação
- problemas de qualidade do código gerado
- taxa de crescimento mais rápida da base de código
- A IA tende a resolver problemas de forma bruta, em vez de usar abstrações
- Ex.: usar dezenas de condicionais em vez do padrão de design Strategy
- Em especial, os problemas de qualidade de código destacam uma área em que desenvolvedores e arquitetos precisam manter atenção contínua para não cair em código “funciona, mas é horrível”
- Portanto, os membros da equipe devem se concentrar ainda mais em boas práticas de engenharia, como testes unitários, funções de adequação arquitetural e outras técnicas comprovadas de governança e validação
- Isso serve para garantir que a IA esteja ajudando o esforço, em vez de criptografar a base de código com complexidade
Rust is anything but rusty - Rust não enferruja
- Rust está gradualmente se tornando a linguagem preferida para programação de sistemas
- Em todas as sessões do Radar, Rust aparece repetidamente no contexto das conversas
- Muitas das ferramentas discutidas são escritas em Rust
- Rust é a linguagem preferida ao substituir utilitários antigos de baixo nível ou ao reescrever partes do ecossistema para melhorar o desempenho
- O adjetivo mais comum para ferramentas baseadas em Rust parece ser “absurdamente rápida”
- Por exemplo, no ecossistema Python há várias ferramentas com alternativas baseadas em Rust para oferecer desempenho consideravelmente melhor
- Os designers da linguagem e a comunidade conseguiram criar um ecossistema muito apreciado de SDK principal, bibliotecas e ferramentas de desenvolvimento, oferecendo excelente velocidade de execução com menos armadilhas do que muitas linguagens anteriores
- Muitas pessoas da equipe são fãs de Rust, e parece que a maioria dos desenvolvedores que usam Rust a avalia muito bem
A ascensão gradual do WASM
- WASM (WebAssembly) é um formato binário de instruções para uma máquina virtual baseada em pilha
- Para a maioria das preocupações dos desenvolvedores, isso soa esotérico e de baixo nível demais, mas as pessoas enxergam seu significado: a capacidade de executar aplicações complexas dentro do sandbox do navegador
- O WASM pode rodar dentro das máquinas virtuais JavaScript existentes, permitindo que desenvolvedores incorporem no navegador aplicações que antes só podiam ser implementadas com frameworks e extensões nativos
- Os quatro principais navegadores (Chrome, Firefox, Safari e Edge) agora suportam WASM 1.0, abrindo possibilidades interessantes para desenvolvimento sofisticado, portável e multiplataforma
- Nos últimos anos acompanhamos esse padrão com muito interesse, e agora é animador vê-lo começar a demonstrar sua capacidade como alvo legítimo de deploy
A explosão cambriana das ferramentas de IA generativa
- Seguindo a trajetória apresentada nas últimas edições do Radar, esperávamos que a IA generativa fosse tratada com destaque em nossas discussões
- Ainda assim, continuamos surpresos com a explosão do ecossistema tecnológico que dá suporte aos modelos de linguagem:
- guardrails, avaliação, ferramentas para construir agentes, frameworks para tarefas de saída estruturada, bancos de dados vetoriais, serviços em nuvem e ferramentas de observabilidade
- Esse crescimento rápido e diverso é, em muitos aspectos, perfeitamente compreensível
- A experiência inicial — a simplicidade de fornecer prompts em texto puro a um modelo de linguagem — levou à engenharia de produtos de software
- Isso talvez não corresponda aos sonhos e ao hype criados quando as pessoas enviaram seu primeiro prompt ao ChatGPT, mas vemos em muitos clientes um uso sensato e produtivo da IA generativa, e todas essas ferramentas, plataformas e frameworks desempenham um papel importante para colocar soluções baseadas em LLM em produção
- Assim como na explosão do ecossistema JavaScript por volta de 2015, esperamos que esse crescimento caótico continue por algum tempo
[Techniques]
Adopt
-
1% canary
- usar deploy canário para incentivar feedback inicial sobre novas versões de software e reduzir riscos
- técnica de liberar novos recursos para 1% dos usuários, permitindo que a equipe capture feedback, observe impactos e reaja se necessário
- importante para implantações em larga escala, como apps móveis, dispositivos de edge computing e veículos definidos por software
-
Component testing
- automação de testes é a pedra fundamental do desenvolvimento de software eficaz
- foco em testes de frontend para garantir estabilidade e velocidade
- uso de
jsdomem testes de componentes executados em memória - uso de ferramentas de navegador para testes end-to-end
-
Continuous deployment
- adotar a prática de deploy contínuo sempre que possível
- implantar automaticamente em produção toda mudança que passar nos testes automatizados
- permite ciclos rápidos de feedback e entrega ágil de valor ao cliente
- consultar o livro "Continuous Deployment", de Valentina Servile, que apresenta um roadmap para alcançar a maturidade necessária
-
Retrieval-augmented generation (RAG)
- padrão preferido para melhorar a qualidade das respostas de grandes modelos de linguagem
- usado com sucesso em projetos como a plataforma Jugalbandi AI
- armazenar em um banco de dados informações sobre documentos relevantes e confiáveis
- recuperar e acrescentar documentos relevantes ao prompt para fornecer contexto rico
- produz melhor qualidade de saída e reduz bastante as alucinações
Trial
-
Domain storytelling
- o domain-driven design (DDD) se tornou a base da nossa abordagem de desenvolvimento de software
- para muitas equipes, começar com DDD é difícil
- domain storytelling é uma alternativa ou complemento ao desenvolvimento inicial do modelo de domínio
- torna mais claro o entendimento compartilhado ao diagramar descrições das atividades de especialistas de negócio
-
Fine-tuning embedding models
- ao construir apps com LLM baseados em retrieval-augmented generation, a qualidade dos embeddings afeta diretamente a busca e as respostas
- é possível melhorar a precisão e a adequação dos embeddings para uma tarefa ou domínio específico
- nossa equipe realiza fine-tuning de embeddings quando a extração precisa de informações é importante em apps com LLM específicos de domínio
- é necessário considerar as vantagens e desvantagens dessa abordagem
-
Function calling with LLMs
- capacidade de o LLM decidir e chamar a função apropriada com base em uma query e em documentos relacionados
- amplia o LLM para que ele possa fazer mais do que apenas gerar texto
- por meio do acionamento de funções ou APIs, o LLM pode executar tarefas antes fora do seu escopo funcional independente
- o LLM também pode se conectar a sistemas internos, bancos de dados ou pesquisar na internet via navegador
- padrão de abstração que deve ser entendido no contexto de retrieval-augmented generation e arquiteturas de agentes
-
LLM as a judge
- construímos sistemas capazes de fornecer respostas com base em grandes conjuntos de dados, mas é difícil rastrear como chegaram a essas respostas
- usar um LLM para avaliar a resposta de outro sistema, que também pode ser baseado em LLM
- usado para avaliar a relevância de resultados de busca em catálogos de produtos e a direção da orientação ao usuário em chatbots baseados em LLM
- exige configuração e calibração cuidadosas do sistema avaliador
- pode levar a ganhos de eficiência e redução de custos
-
Passkeys
- lideradas pela aliança FIDO e apoiadas por Apple, Google e Microsoft, estão se aproximando do uso em massa
- ao configurar um novo login, é gerado um par de chaves — o site recebe a chave pública, e o usuário guarda a chave privada
- o login é processado com criptografia assimétrica
- comprovação da posse da chave privada, que fica armazenada no dispositivo do usuário e não é enviada ao site
- o acesso à passkey é protegido por biometria ou PIN
- para usuários multiplataforma, é possível armazenar a passkey em outro dispositivo que não o usado para gerar a chave ou fazer login, por meio do CTAP
-
Small language models
- Grandes modelos de linguagem (LLMs) são úteis, mas seu tamanho pode causar problemas
- Exigem muitos recursos computacionais para responder a prompts, o que os torna lentos e caros
- Como são modelos proprietários e grandes, precisam ser hospedados na nuvem de terceiros, o que traz problemas para dados sensíveis
- Na maioria dos casos, o treinamento do modelo é excessivamente caro
- O padrão RAG pode resolver a necessidade de treinar e fazer fine-tuning do modelo base, mas os problemas de custo e privacidade ainda permanecem
- Interesse crescente em pequenos modelos de linguagem (SLMs)
- Têm menos pesos e menor precisão numérica (geralmente entre 3,5 bilhões e 10 bilhões de parâmetros)
- Quando configurados corretamente no contexto adequado, podem ter desempenho tão bom quanto ou melhor que LLMs
- Por causa do tamanho, podem ser executados em dispositivos de borda
- Área em rápida evolução, com exemplos como Gemini Nano, do Google, e a série Phi-3, da Microsoft
- Grandes modelos de linguagem (LLMs) são úteis, mas seu tamanho pode causar problemas
-
Synthetic data for testing and training models
- Envolve a geração de dados artificiais capazes de imitar cenários reais sem depender de fontes de dados sensíveis ou com acesso restrito
- Dados sintéticos para conjuntos de dados estruturados já foram amplamente explorados
- A reutilização de dados sintéticos para dados não estruturados está aumentando
- Especialmente entre empresas que enfrentam escassez de dados específicos de domínio e rotulados para treinamento ou fine-tuning de LLMs
- Ferramentas como Bonito e AgentInstruct, da Microsoft, conseguem gerar dados sintéticos para ajuste por instrução a partir de fontes brutas, como documentos de texto e arquivos de código
- Isso acelera o treinamento de modelos ao reduzir custos e a dependência de curadoria manual de dados
- A geração de dados sintéticos para resolver problemas de dados desbalanceados ou escassos também é um caso de uso importante
- Comum em tarefas como detecção de fraude ou segmentação de clientes
- Técnicas como SMOTE equilibram conjuntos de dados ao criar artificialmente instâncias de classes minoritárias
- Em setores como o financeiro, GANs são usadas para simular transações raras, tornando os modelos mais robustos na detecção de casos extremos e melhorando o desempenho geral
-
Using GenAI to understand legacy codebases
- IA generativa (GenAI) e grandes modelos de linguagem (LLMs) ajudam desenvolvedores a escrever e entender código
- São especialmente úteis em codebases legadas com documentação fraca, desatualizada ou enganosa
- Técnicas e produtos que usam GenAI para entender codebases legadas estão evoluindo ainda mais
- Têm sido usados com sucesso especialmente para apoiar trabalhos de engenharia reversa voltados à modernização de mainframes
- Abordagens de geração aumentada por recuperação (RAG), nas quais a recuperação de informação é feita a partir de grafos de conhecimento sobre a codebase, são promissoras
- Grafos de conhecimento podem preservar informações estruturais sobre a codebase além do que um LLM consegue derivar de texto e código
- Isso ajuda especialmente em codebases legadas com pouca capacidade de autoexplicação e baixa coesão
- Também há oportunidade de enriquecer ainda mais esses grafos com documentação existente e gerada por IA, dependências externas e conhecimento do domínio de negócio, entre outros elementos que podem facilitar o trabalho da IA
Assess
-
AI team assistants
- Ferramentas de assistência de código com IA são discutidas principalmente no contexto de apoiar e aprimorar o trabalho de contribuintes individuais
- No entanto, entrega de software sempre foi e continuará sendo trabalho em equipe, então, em vez de buscar um engenheiro 10x, é preciso explorar como criar assistentes de equipe com IA que ajudem a formar times 10x
- O desenvolvimento recente do mercado de ferramentas nos aproximou um pouco mais de tornar isso realidade
- Unblocked é uma plataforma que integra todas as fontes de conhecimento da equipe e se conecta de forma inteligente às ferramentas dos membros do time
- Rovo, da Atlassian, introduz IA em uma das plataformas de colaboração em equipe mais usadas, oferecendo novos tipos de busca e acesso a documentos
- Estamos explorando em primeira mão o potencial da IA para amplificar conhecimento e apoiar práticas de equipe
- Disponibilizamos o assistente de equipe Haiven como open source e começamos a aprender com o suporte de IA para tarefas não relacionadas a código, como análise de requisitos
-
Dynamic few-shot prompting
- Baseia-se em few-shot prompting para incluir dinamicamente exemplos específicos no prompt a fim de orientar as respostas do modelo
- Ao ajustar a quantidade e a relevância desses exemplos, otimiza-se o comprimento e a relevância do contexto, melhorando a eficiência e o desempenho do modelo
- Bibliotecas como scikit-llm implementam essa técnica usando busca por vizinhos mais próximos para recuperar os exemplos mais relevantes que correspondem à consulta do usuário
- Isso aproveita melhor a janela de contexto limitada do modelo e reduz o consumo de tokens
- O gerador SQL open source vanna usa dynamic few-shot prompting para melhorar a precisão das respostas
-
GraphQL for data products
- Técnica de usar GraphQL como porta de saída de produtos de dados para que clientes consumam esses produtos
- Usa GraphQL para abstrair a complexidade dos dados subjacentes e criar uma camada de API unificada que oferece aos clientes uma interface mais consistente e fácil de gerenciar
- Ao usar GraphQL em produtos de dados, consumidores podem descobrir com fluidez os formatos e relacionamentos dos dados por meio do schema GraphQL e usar ferramentas de cliente familiares
- Nossa equipe está explorando essa técnica em um caso de uso específico para explorar e descobrir insights de big data com a ajuda de LLMs
- O LLM constrói consultas GraphQL com base no prompt do usuário e no schema GraphQL fornecido como referência
-
LLM-powered autonomous agents
- Com o surgimento de frameworks como Autogen e CrewAI, a área está evoluindo além de sistemas de agente único e sistemas multiagente estáticos
- Técnica que decompõe atividades complexas em várias tarefas menores e as executa atribuindo papéis específicos a cada agente
- Desenvolvedores usam ferramentas pré-configuradas para executar tarefas, e os agentes podem conversar entre si e orquestrar o fluxo
- Ainda está em estágio inicial de desenvolvimento, e nossa equipe enfrentou problemas como agentes presos em loops contínuos ou comportamentos fora de controle
- Bibliotecas como LangGraph oferecem maior controle sobre as interações entre agentes com a capacidade de definir fluxos como grafos
- Ao usar essa técnica, recomenda-se implementar mecanismos de segurança contra falhas, incluindo timeouts e supervisão humana
-
Observability 2.0
- Mudança de ferramentas de monitoramento tradicionais e heterogêneas para uma abordagem unificada que aproveita dados de eventos estruturados e de alta cardinalidade em um único armazenamento de dados
- Captura eventos ricos e brutos com metadados detalhados para fornecer uma única fonte de verdade para análises abrangentes
- Armazenar eventos em sua forma bruta simplifica correlações, dá suporte a análises em tempo real e forenses e permite insights mais profundos sobre sistemas complexos e distribuídos
- Oferece monitoramento de alta resolução e recursos de investigação dinâmica
- Prioriza a captura de dados de alta cardinalidade e alta dimensionalidade para inspeção detalhada sem gargalos de desempenho
- O armazenamento de dados unificado reduz a complexidade, oferece uma visão consistente do comportamento do sistema e alinha as práticas de observabilidade mais de perto ao ciclo de vida de desenvolvimento de software
-
On-device LLM inference
- Agora é possível executar grandes modelos de linguagem (LLMs) em navegadores web e dispositivos de borda como smartphones e notebooks
- Isso permite processar dados sensíveis com segurança sem enviá-los à nuvem, oferece latência muito baixa para tarefas como edge computing e processamento em tempo real de imagens e vídeo, reduz custos ao realizar o processamento localmente e fornece funcionalidade mesmo quando a conexão com a internet é instável ou indisponível
- É uma área de intensa pesquisa e desenvolvimento, e anteriormente demos destaque ao MLX, framework open source para aprendizado de máquina eficiente em Apple Silicon
- Novas ferramentas como Transformers.js e Chatty estão surgindo
- Transformers.js permite executar transformers no navegador usando ONNX Runtime (com suporte a modelos convertidos de PyTorch, TensorFlow e JAX)
- Chatty aproveita WebGPU para executar LLMs no navegador de forma nativa e privada, oferecendo experiências de IA ricas em recursos
-
Saída estruturada de LLMs
- Refere-se à prática de restringir as respostas de modelos de linguagem a um esquema definido
- Pode ser obtida instruindo um modelo generalista a responder em um formato específico ou ajustando o modelo para uma saída "padrão", como JSON
- A OpenAI agora oferece suporte a saídas estruturadas, permitindo que desenvolvedores forneçam um esquema JSON,
pydanticou objetos Zod para restringir as respostas do modelo - Especialmente útil quando precisão e conformidade de formato são importantes, como em chamadas de função, interações com API e integrações externas
- Dá suporte a uma ampla gama de casos de uso, além de melhorar a forma de interface com código, como a geração de marcação para renderização de gráficos
- Também ajuda a reduzir a possibilidade de alucinações na saída do modelo
Hold
-
Complacência com código gerado por IA
- Assistentes de programação com IA, como GitHub Copilot e Tabnine, são extremamente populares
- Segundo a pesquisa de desenvolvedores de 2024 do StackOverflow, "72% de todos os respondentes têm uma visão favorável ou muito favorável de ferramentas de IA para desenvolvimento"
- Também reconhecemos seus benefícios, mas permanecemos cautelosos quanto aos impactos de médio e longo prazo na qualidade do código e alertamos os desenvolvedores contra a complacência com código gerado por IA
- Depois de algumas experiências positivas, é fácil baixar a guarda ao revisar sugestões de IA
- Segundo uma pesquisa da GitClear, há uma tendência de codebases crescendo mais rapidamente, o que suspeitam estar alinhado com pull requests maiores
- Este estudo do GitHub questiona se o aumento de 15% na taxa de merge de pull requests citado é realmente algo bom, ou se as pessoas estão confiando demais nos resultados da IA e fazendo merge de pull requests maiores com mais rapidez
- Ainda seguimos o conselho básico de "como começar" que demos há um ano, e é preciso ter cuidado com viés de automação, erro do custo afundado, ancoragem e fadiga de revisão
- Também é recomendável que programadores desenvolvam um bom modelo mental sobre onde e quando usar IA — e onde e quando não confiar nela
-
Ambientes de teste de integração em toda a empresa
- São uma prática comum e desperdiçadora que torna tudo mais lento
- Tendem a se tornar recursos preciosos, difíceis de replicar e gargalos do desenvolvimento
- Criam uma falsa sensação de segurança devido às inevitáveis inconsistências de dados entre ambientes e à sobrecarga de configuração
- A razão geralmente apresentada contra alternativas (ambientes efêmeros ou vários ambientes de teste on-premises) é, ironicamente, o custo
- No entanto, isso ignora o custo dos atrasos causados por um ambiente de teste de integração em toda a empresa
- Eles ocorrem enquanto equipes de desenvolvimento esperam que outras equipes concluam seu trabalho ou que novas versões de sistemas dependentes sejam implantadas
- Em vez disso, as equipes devem usar ambientes efêmeros e conjuntos de teste baratos de iniciar e descartar, de propriedade da equipe de desenvolvimento, usando stubs falsos em vez de réplicas reais
- Outras técnicas que dão suporte a essa alternativa incluem testes de contrato, separação entre deployment e release, foco em tempo médio de recuperação e testes em produção
-
Proibições de LLM
- Em vez de impor proibições abrangentes a LLMs no trabalho, o foco deve estar em fornecer acesso a um conjunto aprovado de ferramentas de IA
- Proibições apenas levam funcionários a procurar alternativas não aprovadas e potencialmente inseguras
- Como nos primórdios do computador pessoal, as pessoas realizam seu trabalho com as ferramentas que consideram eficazes, independentemente das barreiras
- Se não fornecerem alternativas seguras e homologadas, as empresas correm o risco de que funcionários usem LLMs não aprovados, gerando riscos de propriedade intelectual, vazamento de dados e responsabilidade
- Em vez disso, oferecer LLMs ou ferramentas de IA seguras e aprovadas pela empresa garante tanto segurança quanto produtividade
- Com uma abordagem bem gerenciada, as organizações podem dar aos funcionários as capacidades oferecidas pelos LLMs enquanto administram questões de privacidade de dados, segurança, conformidade e custos
- No melhor cenário, um acesso bem gerenciado a ferramentas de IA pode acelerar o aprendizado organizacional sobre as melhores formas de usar IA no trabalho
-
Substituir pair programming por IA
- Ao falar sobre assistentes de programação, o tema de pair programming inevitavelmente surge
- Nossa profissão tem uma relação de amor e ódio com pair programming
- Alguns juram por ele, outros não suportam
- Agora, os assistentes de programação levantam a questão de saber se humanos podem fazer par com IA em vez de outra pessoa e obter o mesmo resultado para a equipe
- O GitHub Copilot chega a se chamar de "seu programador parceiro de IA"
- Embora acreditemos que assistentes de programação possam oferecer alguns dos benefícios do pair programming, não recomendamos substituí-lo totalmente por IA
- Considerar assistentes de programação como programadores parceiros faz com que se ignore um dos principais benefícios do pairing: levar a equipe, e não apenas contribuintes individuais, a uma direção melhor
- Assistentes de programação podem ajudar a destravar problemas, aprender novas tecnologias, fazer onboarding ou executar tarefas táticas mais rapidamente para permitir foco em design estratégico
- No entanto, eles não ajudam com os benefícios de colaboração em equipe, como manter o trabalho em andamento baixo, reduzir handoffs e reaprendizado, permitir integração contínua e melhorar a propriedade coletiva do código
[Platforms]
Adopt : Nenhum
Trial
-
Databricks Unity Catalog
- É uma solução de governança de dados para ativos como arquivos, tabelas e modelos de ML em um Lakehouse
- É uma solução open source gerenciada que pode ser usada para gerenciar e consultar dados em armazenamento externo ou sob gestão da Databricks
- Tem a vantagem de oferecer suporte integrado a governança, gerenciamento de metastore e descoberta de dados, reduzindo a necessidade de administrar várias ferramentas
- A ausência de recuperação automática de desastres no Unity Catalog gerenciado pela Databricks foi identificada como uma desvantagem
- A equipe precisou configurar por conta própria recursos de backup e recuperação
- Embora seja uma solução centralizada, é possível delegar permissões para que equipes individuais gerenciem seus próprios ativos
-
FastChat
- É uma plataforma aberta para treinamento, serving e avaliação de grandes modelos de linguagem
- Permite hospedar de forma consistente vários modelos (Llama 3.1, Mistral 7B, Llama-SQL etc.) no formato da API da OpenAI
- Usa uma arquitetura controller-worker para hospedar diferentes modelos em vários workers
- Suporta vários tipos de worker, como vLLM, LiteLLM e MLX
- É possível criar e escalar diferentes tipos de worker do FastChat conforme o caso de uso
- Sugestões de código em IDEs para desenvolvedores exigem baixa latência, então são escaladas para vários workers
- Text-to-SQL tem demanda menor, então múltiplos workers não são necessários
- Pode ser usado para testes A/B
- É possível definir valores diferentes de hiperparâmetros para o mesmo modelo para identificar os valores ideais
- Também é possível validar migrações sem interrupção ao trocar modelos em um serviço em produção
-
GCP Vertex AI Agent Builder
- É uma plataforma flexível para criar agentes de IA por meio de uma abordagem em linguagem natural ou code-first
- Integra-se de forma fluida com dados corporativos por meio de conectores de terceiros
- Fornece todas as ferramentas necessárias para construir, prototipar e implantar agentes de IA
- Permite que desenvolvedores prototipem rapidamente agentes com configuração mínima e lidem com tarefas de dados complexas
- É útil para construir bases de conhecimento ou sistemas automatizados de suporte que gerenciem dados estruturados e não estruturados com eficiência
-
Langfuse
- É uma ferramenta para observabilidade, monitoramento e avaliação de aplicações baseadas em LLM
- Com recursos de tracing, análise e avaliação, permite analisar desempenho e precisão de completions
- Possibilita melhorias orientadas por dados ao gerenciar custo e latência e entender padrões de uso em produção
- Aproveita dados de instrumentação que oferecem rastreabilidade completa do fluxo de requisição-resposta e das etapas intermediárias
- Pode ser usado com RAG e agentes autônomos baseados em LLM
- Ao analisar rastros de conversas com baixa pontuação, é possível identificar onde a arquitetura precisa de melhorias
-
Qdrant
- É um mecanismo de busca por similaridade vetorial e banco de dados open source escrito em Rust
- Suporta vários modelos de embedding denso para texto e multimodal
- Embeddings open source como MiniLM-v6 e BGE podem ser aproveitados em várias bases de conhecimento de produtos
- É usado como vector store corporativo com suporte a multitenancy
- Embeddings vetoriais são armazenados em coleções separadas para isolar a base de conhecimento de cada produto
- Políticas de acesso de usuários são gerenciadas na camada da aplicação
-
Vespa
- É um mecanismo de busca open source e plataforma de processamento de big data
- Adequado para aplicações que exigem baixa latência e alta taxa de processamento
- Permite implementar busca híbrida usando várias técnicas de busca
- Suporta filtragem e ordenação eficientes de diversos metadados
- Permite implementar ranking em múltiplos estágios
- Pode indexar vários vetores por documento sem duplicação
- Permite buscar dados de vários campos indexados de uma só vez
Assess
-
Azure AI Search
- É um serviço de busca em nuvem para processamento de dados estruturados e não estruturados em aplicações como bases de conhecimento
- Suporta vários tipos de busca, como por palavra-chave, vetorial e híbrida
- Pode ingerir automaticamente formatos comuns de dados não estruturados, como PDF, DOC e PPT, para gerar conteúdo pesquisável
- Integra-se com outros serviços do Azure, como Azure OpenAI, permitindo criar aplicações com integração manual mínima
- É adequado para projetos hospedados no ambiente Azure e apresenta desempenho estável
- Permite definir etapas específicas de processamento de dados por meio de skills personalizadas
-
Databricks Delta Live Tables
- É um framework declarativo para construir pipelines de processamento de dados confiáveis, fáceis de manter e testáveis
- Define transformações de dados com uma abordagem declarativa e gerencia automaticamente a infraestrutura subjacente e o fluxo de dados
- Oferece recursos robustos de monitoramento e representa visualmente o DAG de todo o pipeline de dados
- É útil para rastreamento de linhagem e dependências de dados
- Por ser profundamente integrado ao ecossistema Databricks, pode haver limitações na personalização da interface
-
Elastisys Compliant Kubernetes
- É uma distribuição especializada de Kubernetes para setores altamente regulados, como saúde, finanças e governo
- Oferece processos de segurança automatizados
- Suporta ambientes multicloud e on-premises
- Foi construído com base em uma arquitetura de segurança zero trust
- Já inclui conformidade com leis como GDPR e HIPAA e controles como ISO27001
-
FoundationDB
- É um banco de dados multimodelo adquirido pela Apple em 2015 e tornado open source em 2018
- Seu núcleo é um armazenamento distribuído de chave-valor que oferece transações com serialização estrita
- Recebeu melhorias importantes, como distribuição inteligente de dados para evitar hotspots de escrita e novos mecanismos de armazenamento
- Sua arquitetura desacoplada permite escalar independentemente diferentes partes do cluster
- Apesar do amplo conjunto de recursos, é fácil de operar em clusters de grande escala
-
Golem
- É uma plataforma de computação distribuída que usa uma arquitetura explícita de máquina de estados para computação durável
- É adequada para workflows de sagas de microsserviços de longa execução ou orquestração de agentes de IA
- Permite escrever componentes WebAssembly em qualquer linguagem suportada
- É determinística e oferece tempos de inicialização rápidos
-
Iggy
- É uma plataforma de streaming de mensagens persistentes escrita em Rust
- Suporta múltiplos streams, tópicos e partições
- Oferece entrega no máximo uma vez, expiração de mensagens e suporte a TLS para os protocolos QUIC/TCP/HTTP
- Alcança alta taxa de leitura e escrita com um único servidor
- Clustering e suporte a io_uring estão planejados, o que pode torná-la uma alternativa ao Kafka
-
Iroh
- É um sistema distribuído de armazenamento de arquivos e entrega de conteúdo que expande o IPFS
- Não tem limite máximo de tamanho de bloco e oferece um mecanismo de sincronização de dados por ajuste de conjunto baseado em intervalos
- O suporte a navegador via WASM faz parte do roadmap
- Serviços em nuvem estão disponíveis por meio do iroh.network
- Oferece SDKs para várias linguagens e é mais amigável ao usuário do que o IPFS
-
Large vision model (LVM) platforms
- São plataformas de modelos de visão em larga escala capazes de segmentar, sintetizar, reconstruir e analisar streams de vídeo e imagens
- Podem ser usadas em conjunto com modelos de difusão ou CNNs padrão
- Existem desafios relacionados à aplicação em ambientes de produção
- como coleta de dados de treinamento, segmentação e rotulagem de objetos e fine-tuning de modelos
- Ferramentas como V7, Nvidia Deepstream SDK e Roboflow surgiram para resolver esses desafios
- Deepstream e Roboflow oferecem integração de GUI e API para gerenciamento de streams de vídeo
-
OpenBCI Galea
- É uma plataforma tecnológica não invasiva para interface cérebro-computador (BCI)
- Usa sinais eletrofisiológicos, como EEG, para oferecer uma alternativa menos arriscada do que implantes cerebrais
- É o produto mais recente da OpenBCI, combinando recursos de headset de VR com BCI
- Oferece streams de dados fisiológicos sincronizados no tempo, sensores de posição espacial e rastreamento ocular
- Os dados dos sensores podem ser usados no Unity ou Unreal
- É oferecida como plataforma open source, apoiando a inovação de pesquisadores
-
PGLite
- É uma build WASM do banco de dados PostgreSQL
- Pode ser executada diretamente no navegador sem uma máquina virtual Linux
- Permite criar bancos de dados temporários em memória ou persistência em disco via indexedDB
- Junto com Electric, permite construir aplicações reativas local-first baseadas em PostgreSQL
-
SpinKube
- É um runtime serverless open source para WebAssembly sobre Kubernetes
- Com o tempo de inicialização em milissegundos do WebAssembly, oferece uma solução serverless mais dinâmica e flexível para workloads sob demanda
- Simplifica o desenvolvimento e a implantação de workloads baseados em WebAssembly
-
Unblocked
- É uma ferramenta de busca de ativos e artefatos de SDLC
- Integra-se a ferramentas de ALM e colaboração para ajudar a compreender a base de código e os recursos relacionados
- Fornece contexto imediato e relevante sobre o código, facilitando a navegação e o entendimento de sistemas complexos
- Permite que equipes de engenharia acessem com segurança discussões, ativos e documentação relacionados ao trabalho
- Captura e compartilha o conhecimento de membros experientes da equipe para que todos possam aproveitá-lo
Hold : nenhum
[Tools]
Adopt
-
Bruno
- Bruno é uma alternativa desktop open source ao Postman e ao Insomnia para testes, desenvolvimento e depuração de APIs
- Seu design simples e totalmente offline tem como objetivo oferecer excelente colaboração, privacidade e segurança
- As coleções são escritas em Bru Lang, uma linguagem de marcação em texto puro personalizada, armazenadas diretamente no sistema de arquivos e podem ser compartilhadas via Git ou pela ferramenta de controle de versão de sua escolha para colaboração
- Pode ser usado como aplicativo desktop e ferramenta de CLI, oferece uma extensão oficial para VS Code e planeja suporte adicional a outros IDEs
- Tornou-se a escolha padrão de várias equipes da Thoughtworks, mas é preciso cautela, pois foram relatadas falhas inesperadas em requisições ao trabalhar em ambientes com VPN e proxy
-
K9s
- O K9s melhorou os recursos de visualização ao integrar gráficos e visões mais detalhados
- Agora representa melhor logs e métricas e exibe recursos personalizados (CRD) com mais flexibilidade
- As operações sobre pods foram ampliadas, a integração com ferramentas de depuração (por exemplo,
kubectl debug) foi reforçada e o suporte a ambientes multicluster foi aprimorado - O suporte a CRDs foi significativamente melhorado, permitindo agora explorar e gerenciar melhor esses recursos, além de tornar mais fluida a interação com recursos personalizados
- O painel de atalhos também foi aprimorado, tornando-o mais acessível para desenvolvedores menos familiarizados com o
kubectl - Como o K9s inicialmente era focado principalmente em equipes de DevOps, essa é uma melhoria importante
-
SOPS
- SOPS é um editor de arquivos criptografados que oferece suporte a vários formatos de arquivo com criptografia via KMS
- Nossa recomendação para gerenciamento de segredos sempre foi mantê-los separados do código-fonte
- No entanto, no espírito de infraestrutura como código, quando é preciso escolher entre automação completa e algumas etapas manuais para gerenciar, inicializar e rotacionar segredos-semente (usando ferramentas como cofres), as equipes muitas vezes se deparam com concessões
- Por exemplo, nossa equipe usa o SOPS para gerenciar credenciais-semente para bootstrap de infraestrutura
- Porém, em algumas situações, não é possível remover segredos de repositórios de código legados
- Nesses casos, usamos o SOPS para criptografar segredos em arquivos de texto
- O SOPS se integra a armazenamentos de chaves gerenciados em nuvem, como os serviços de gerenciamento de chaves (KMS) da AWS e do GCP ou o Azure Key Vault, como fonte das chaves de criptografia
- Ele também funciona em múltiplas plataformas e oferece suporte a chaves PGP
- Quando é necessário gerenciar segredos em repositórios de código, várias das nossas equipes usam o SOPS por padrão
-
Visual regression testing tools
- Já destacamos anteriormente ferramentas de teste de regressão visual e observamos a evolução dos algoritmos, de comparações brutas em nível de pixel para correspondência sofisticada de padrões e reconhecimento óptico de caracteres (OCR)
- As primeiras ferramentas de teste de regressão visual geravam muitos falsos positivos e só eram úteis nas fases mais tardias do desenvolvimento, quando a interface já estava estabilizada
- O BackstopJS evita esse problema ao permitir testes visuais precisos em elementos específicos da página por meio da configuração de seletores e viewports
- No entanto, o machine learning tornou mais fácil detectar e comparar elementos visuais com mais precisão, mesmo quando eles mudaram de posição ou incluem conteúdo dinâmico
- Essas ferramentas têm se tornado cada vez mais úteis e estão bem posicionadas para aproveitar os desenvolvimentos mais recentes em IA e machine learning
- Várias ferramentas comerciais, como Applitools e Percy, agora afirmam usar IA em testes de regressão visual
- Uma das nossas equipes vem usando amplamente o Applitools Eyes e está satisfeita com os resultados
- Testes de regressão visual não substituem testes funcionais end-to-end bem escritos, mas são uma adição valiosa à caixa de ferramentas de teste
- Estamos adotando essas ferramentas porque elas se tornaram uma opção padrão segura como parte de uma estratégia abrangente de testes de UI
-
Wiz
- O Wiz foi escolhido como plataforma de segurança em nuvem em muitos projetos
- Nossas equipes valorizam o fato de ele inspecionar mudanças continuamente, permitindo detectar riscos e ameaças mais rapidamente do que ferramentas semelhantes
- O Wiz pode detectar e alertar sobre configurações incorretas, vulnerabilidades e segredos expostos tanto em artefatos ainda não implantados em ambientes ativos (imagens de contêiner, infraestrutura como código) quanto em workloads em execução (contêineres, VMs e serviços de nuvem)
- Também valorizamos seus recursos robustos de relatórios tanto para equipes de desenvolvimento quanto para a liderança
- Essa análise ajuda a entender como vulnerabilidades podem afetar um serviço específico, permitindo corrigir o problema naquele contexto
Trial
-
AWS Control Tower
- O AWS Control Tower continua sendo a melhor opção para gerenciar contas AWS em ambientes com múltiplas equipes
- Ele fornece um mecanismo conveniente para pré-configurar controles de segurança e conformidade que serão aplicados automaticamente a novas landing zones
- Este é um exemplo de "conformidade no momento da mudança", em que os controles são aplicados e validados sempre que uma nova infraestrutura é criada, eliminando a necessidade de verificações manuais de conformidade posteriormente
- O AWS Control Tower Account Factory for Terraform (AFT) continuou evoluindo desde o volume anterior e agora está disponível em mais regiões da AWS
- Com o AFT, é possível provisionar contas do Control Tower por meio de pipelines de infraestrutura como código
- Gostamos do fato de que o AFT pode ser personalizado para enviar webhooks ou executar ações específicas para integração segura e confiável com ferramentas externas, como GitHub Actions
- Nossas equipes obtiveram ótimos resultados ao usar o AWS Control Tower para gerenciar contas, mas esperamos que a AWS aceite contribuições da comunidade para o projeto quando houver oportunidades de melhoria
-
CCMenu
- Para equipes que praticam integração contínua, é importante acompanhar a situação da build central no sistema de integração contínua (CI)
- Antes da pandemia, dashboards em telas grandes nas salas das equipes forneciam essas informações de relance
- Com a continuidade do trabalho remoto, surgiu a necessidade de uma solução que funcionasse nas estações de trabalho individuais dos desenvolvedores
- No Mac, esse espaço é coberto por um pequeno aplicativo chamado CCMenu, criado por um Thoughtworker
- Originalmente parte do CruiseControl, o aplicativo funciona com qualquer servidor que possa fornecer informações no formato cctray, incluindo Jenkins e TeamCity
- Recentemente ele foi reescrito, com suporte adicionado ao GitHub Actions, abrindo caminho para integrações mais profundas com mais servidores de CI e diferentes estilos de autenticação
-
ClickHouse
- ClickHouse é um banco de dados OLAP (processamento analítico online) colunar e de código aberto para análises em tempo real
- Iniciado como um projeto experimental em 2009, amadureceu e se tornou um banco de dados analítico de alto desempenho e escalável linearmente
- Com seu mecanismo eficiente de processamento de consultas e recursos de compressão de dados, ele é adequado para executar consultas interativas sem pré-agregação
- O ClickHouse é uma boa escolha para armazenar dados do OpenTelemetry
- Sua integração com o Jaeger permite armazenar grandes volumes de dados de rastreamento e analisá-los com eficiência
-
Devbox
- Apesar da evolução das ferramentas de desenvolvimento, manter ambientes locais de desenvolvimento consistentes ainda é um desafio para muitas equipes
- Integrar novos engenheiros frequentemente exige executar comandos ou scripts personalizados que podem falhar de forma imprevisível em diferentes sistemas, o que pode causar inconsistências
- Para resolver esse problema, nossas equipes estão recorrendo cada vez mais ao Devbox
- O Devbox é uma ferramenta de linha de comando que oferece uma interface acessível para criar ambientes locais de desenvolvimento reproduzíveis e específicos por projeto usando o gerenciador de pacotes Nix, sem recorrer a máquinas virtuais ou contêineres
- Depois de configurado uma vez para um codebase, basta um único comando de CLI (
devbox shell) para reproduzir o ambiente definido em um novo dispositivo, simplificando muito o fluxo de onboarding - O Devbox oferece suporte a shell hooks, scripts personalizados e geração de
devcontainer.jsonpara integração com o VSCode
-
Difftastic
- Difftastic é uma ferramenta que destaca diferenças entre arquivos de código de uma forma sensível à sintaxe
- Isso é bastante diferente de ferramentas de diff textual, como o comando Unix diff
- Por exemplo, o Difftastic ignora quebras de linha inseridas para dividir instruções longas em linguagens delimitadas por ponto e vírgula, como Java ou TypeScript
- A ferramenta destaca apenas mudanças que afetam a sintaxe do programa
- Para isso, ela primeiro analisa os arquivos em árvores sintáticas abstratas e depois usa o algoritmo de Dijkstra para calcular a distância entre as árvores
- Descobrimos que o Difftastic é especialmente útil para entender mudanças ao revisar grandes codebases
- O Difftastic pode ser usado com qualquer linguagem de programação para a qual exista um parser e oferece suporte nativo a mais de 50 linguagens de programação, além de formatos de texto estruturado como CSS e HTML
- Esta não é uma ferramenta nova, mas achamos que vale a pena dar atenção a ela na era dos assistentes de programação com LLM, em que a revisão com humanos no loop está se tornando cada vez mais importante
-
LinearB
- O LinearB, uma plataforma de inteligência para engenharia de software, fornece aos líderes de engenharia insights baseados em dados para apoiar a melhoria contínua
- Alinha áreas-chave como benchmarking, automação de fluxo de trabalho e investimentos direcionados para melhorar a experiência e a produtividade dos desenvolvedores
- A experiência de uso do LinearB destaca sua capacidade de promover uma cultura de melhoria e eficiência dentro das equipes de engenharia
- Nossa equipe usou a plataforma para acompanhar métricas centrais de engenharia, identificar áreas que precisavam de melhoria e implementar ações baseadas em evidências
- Esses recursos se alinham bem com a principal proposta de valor do LinearB: benchmarking, automação da coleta de métricas e viabilização de melhorias orientadas por dados
- O LinearB se integra a código-fonte, ciclo de vida de aplicações, CI/CD e ferramentas de comunicação, e fornece insights quantitativos abrangentes sobre experiência do desenvolvedor, produtividade e desempenho da equipe usando métricas de engenharia pré-configuradas e personalizadas
- Como defensores do DORA, valorizamos o fato de o LinearB destacar essas métricas específicas e aumentar a capacidade de medir aspectos-chave do desempenho de entrega de software, essenciais para melhorar a eficiência
- Historicamente, as equipes tiveram dificuldade para coletar métricas específicas do DORA, muitas vezes dependendo de dashboards personalizados complexos ou de processos manuais
- O LinearB continua oferecendo uma solução atraente ao automatizar o acompanhamento dessas métricas e fornecer dados em tempo real que apoiam decisões proativas sobre experiência do desenvolvedor, produtividade e previsibilidade
-
pgvector
- O pgvector é uma extensão open source de busca por similaridade vetorial para PostgreSQL, que permite armazenar vetores junto com dados estruturados em um único banco de dados bem estabelecido
- Embora não tenha alguns recursos avançados de bancos de dados vetoriais especializados, ele se beneficia de conformidade com ACID, recuperação point-in-time e outros recursos robustos do PostgreSQL
- Com o aumento de aplicações baseadas em IA generativa, vemos crescer o padrão de armazenar vetores de embeddings e recuperá-los de forma eficiente por similaridade, algo que o pgvector resolve de forma eficaz
- Dado o aumento do uso do pgvector em produção, especialmente por equipes que já usam provedores de nuvem com PostgreSQL gerenciado, e sua capacidade comprovada de atender necessidades comuns de busca vetorial sem exigir um armazenamento vetorial separado, temos confiança no potencial do pgvector
- Nossa equipe o utilizou com sucesso em projetos que comparam dados estruturados e não estruturados, o que demonstra potencial para adoção mais ampla
- Por isso, estamos movendo o pgvector para a fase de teste
-
Snapcraft build tool
- O Snapcraft é uma ferramenta open source de linha de comando para construir e empacotar aplicações autocontidas chamadas snaps para Ubuntu, outras distribuições Linux e macOS
- Os snaps podem ser implantados e mantidos com facilidade em diferentes plataformas de hardware, incluindo computadores Linux, ambientes virtuais e sistemas de computador embarcados em veículos
- O Snapcraft oferece uma app store pública para publicar snaps, mas nossa equipe usa a ferramenta de build para empacotar sistemas autônomos como snaps sem publicá-los na app store pública
- Isso permite construir, testar e depurar sistemas de software embarcado localmente, ao mesmo tempo em que os publica em um repositório interno de artefatos
-
Spinnaker
- O Spinnaker é uma plataforma open source de entrega contínua criada pela Netflix
- Ele implementa como recursos de primeira classe o gerenciamento de clusters e a implantação de imagens baked na nuvem
- Gostamos da abordagem opinativa do Spinnaker para implantar microsserviços
- Em versões anteriores, apontamos que não era possível configurar pipelines como código, mas a adição da CLI spin resolveu esse problema
- Não recomendamos o Spinnaker para cenários simples de CD, mas em situações complexas ele se tornou a ferramenta preferida de muita gente, junto com pipelines de implantação igualmente complexos
-
TypeScript OpenAPI
- TypeScript OpenAPI (ou tsoa) é uma alternativa ao Swagger para gerar especificações OpenAPI a partir do código
- Ele segue a abordagem code-first, usando controladores e modelos TypeScript como fonte única da verdade, e utiliza anotações ou decorators em TypeScript em vez de exigir arquivos e configurações mais complexos ao usar ferramentas OpenAPI com TypeScript
- Gera especificações de API 2.0 e 3.0 e pode gerar rotas para Express, Hapi e Koa
- Se você escreve APIs em TypeScript, vale a pena conhecer esse projeto
-
Unleash
- Embora nossa abordagem recomendada continue sendo usar o feature toggle mais simples possível, o crescimento das equipes e o desenvolvimento mais rápido tornaram o gerenciamento manual de toggles mais complexo
- O Unleash é uma opção amplamente usada por nossas equipes para lidar com essa complexidade e viabilizar CI/CD
- Ele pode ser usado como serviço ou em self-hosting
- Oferece SDKs para várias linguagens e tem uma UI familiar para experiência e gerenciamento de desenvolvedores
- Ainda não há suporte oficial à especificação OpenFeature, mas é possível encontrar providers mantidos pela comunidade para Go e Java
- O Unleash pode ser usado não só para feature toggles simples, mas também para segmentação e lançamentos graduais, sendo uma boa opção para gerenciamento de funcionalidades em escala
Assess
-
Astronomer Cosmos
- O Astronomer Cosmos é um plugin do Airflow projetado para oferecer suporte mais nativo a workflows do dbt core no Airflow
- Depois que o plugin é instalado, o DbtDag converte nós do dbt em tarefas/grupos de tarefas do Airflow ao encapsular workflows do dbt, permitindo que engenheiros visualizem diretamente no UI do Airflow o grafo de dependências do dbt e o progresso da execução
- Ele também permite usar conexões do Airflow em vez de perfis do dbt, o que ajuda a reduzir a proliferação de configurações
- Estamos experimentando essa ferramenta por seu potencial de tornar o trabalho com dbt no Airflow mais fluido
-
ColPali
- ColPali é uma nova ferramenta para buscar documentos PDF usando modelos de visão e linguagem, enfrentando a dificuldade de construir aplicações robustas de retrieval-augmented generation (RAG) capazes de extrair dados de documentos multimídia com imagens, diagramas e tabelas
- Ao contrário de métodos existentes que dependem de embeddings baseados em texto ou de tecnologias de reconhecimento óptico de caracteres (OCR), o ColPali processa páginas inteiras de PDF e usa transformadores visuais para gerar embeddings que consideram tanto o texto quanto o conteúdo visual
- Essa abordagem holística permite não só uma busca melhor, mas também raciocinar sobre por que um documento específico foi recuperado, melhorando significativamente o desempenho de RAG em PDFs ricos em dados
- Testamos o ColPali com vários clientes e ele mostrou resultados promissores, mas essa tecnologia ainda está em estágio inicial
- Vale a pena avaliá-lo, especialmente para organizações que lidam com dados visuais complexos em documentos
-
Cursor
- A competição entre ferramentas de programação assistidas por IA continua, e a que mais se destaca é o Cursor
- O Cursor é um editor de código AI-first projetado para aumentar a produtividade dos desenvolvedores por meio de integração profunda de IA ao fluxo de trabalho de programação
- Já havíamos observado o Cursor em avaliações anteriores do Radar, mas está claro que as melhorias contínuas recentes do Cursor trouxeram uma mudança qualitativa
- Em nosso uso, o Cursor demonstrou forte capacidade de inferência contextual com base em codebases existentes
- Enquanto outras ferramentas de código com IA, como o GitHub Copilot, tendem a gerar trechos de código e colaborar, os recursos do Cursor para edição de múltiplas linhas e múltiplos arquivos o destacam
- O Cursor é um fork do VSCode e foi desenvolvido sobre ele, oferecendo uma forma de interação rápida e intuitiva que combina com a intuição dos desenvolvedores
- Tarefas poderosas podem ser executadas com ctrl/cmd+K e ctrl/cmd+L
- O Cursor está liderando uma nova disputa entre ferramentas de programação com IA no que diz respeito à interação com desenvolvedores e à compreensão da codebase
-
Data Mesh Manager
- O Data Mesh Manager fornece a camada de metadados de uma plataforma típica de data mesh
- Em especial, ele se concentra na definição de produtos de dados e nas especificações de contratos de dados usando a iniciativa OpenContract, podendo ser integrado aos pipelines de build com a CLI associada, DataContract
- O aplicativo também oferece um catálogo de dados para pesquisar e explorar produtos de dados e seus metadados, além de permitir governança federada, incluindo definição de métricas de qualidade de dados e gerenciamento de regras de qualidade de dados
- É uma das primeiras ferramentas nativas a surgir nesse espaço, sem tentar adaptar plataformas existentes ao paradigma de data mesh
-
GitButler
- A interface de linha de comando do Git é poderosa e útil, mas é notoriamente complexa quando se trata de gerenciar várias branches e fazer staging de commits dentro delas
- O GitButler é um cliente Git que oferece uma interface gráfica com o objetivo de simplificar esse processo
- Ele faz isso rastreando alterações de arquivos ainda não commitadas independentemente do Git e, em seguida, colocando essas alterações em staging em branches virtuais
- É possível argumentar que esta é uma solução para um problema que nem deveria existir em primeiro lugar. Se você fizer pequenas mudanças com frequência e enviar para a trunk, não precisará de várias branches
- No entanto, quando o fluxo de trabalho inclui pull requests, especialmente se houver ciclos longos de revisão antes de mesclar um PR, a estrutura de branches pode se tornar complexa
- Para resolver isso, o GitButler se integra ao GitHub para agrupar alterações seletivamente em pull requests e publicá-las diretamente pela ferramenta
- O GitButler é mais um item na crescente categoria de blips para gerenciar a complexidade inerente ao processo de PR
-
JetBrains AI Assistant
- O JetBrains AI Assistant é um assistente de programação projetado para se integrar perfeitamente a todos os IDEs da JetBrains, ajudando com autocompletar código, geração de testes e conformidade com guias de estilo
- Construído com base em modelos como OpenAI e Google Gemini, ele se destaca pela capacidade de lembrar o estilo de programação para sessões futuras, garantindo resultados consistentes
- Nossos desenvolvedores acharam o recurso de geração de testes particularmente útil e destacaram sua capacidade de lidar com saídas mais longas sem problemas de estabilidade
- No entanto, ao contrário de alguns concorrentes, a JetBrains não hospeda seus próprios modelos, então pode não ser adequado para clientes preocupados com o processamento de dados por terceiros
- Ainda assim, o fato de essa ferramenta estar integrada aos IDEs da JetBrains faz dela uma opção promissora para equipes que estão explorando assistentes de programação com IA
-
Mise
- Desenvolvedores que trabalham em ambientes poliglotas frequentemente precisam gerenciar várias versões de diferentes linguagens e ferramentas
- O mise busca resolver esse problema oferecendo uma única ferramenta que pode substituir nvm, pyenv, rbenv, rustup e outros, além de poder substituir o asdf
- O Mise é escrito em Rust para acelerar a interação com o shell e, ao contrário do asdf, que usa shims baseados em shell, o mise modifica antecipadamente a variável de ambiente PATH para que o tempo de execução das ferramentas seja de chamada direta
- Essa é uma das razões pelas quais o mise é mais rápido que o asdf
- Para desenvolvedores que já estão familiarizados com o asdf, o mise oferece a mesma funcionalidade, mas com algumas diferenças importantes
- Por ser escrito em Rust, é mais rápido e traz alguns recursos que o asdf não tem. Por exemplo, permite instalar várias versões da mesma ferramenta ao mesmo tempo e oferece comandos mais tolerantes, incluindo fuzzy matching
- Também fornece um executor de tarefas integrado, útil para executar linters, testes, builders, servidores e outras tarefas específicas do projeto
- Se você já está um pouco cansado de precisar usar várias ferramentas para gerenciar o ambiente de desenvolvimento e da sintaxe às vezes estranha de outras ferramentas, definitivamente vale a pena dar uma olhada no mise
-
Mockoon
- O Mockoon é uma ferramenta open source de mocking de APIs
- Ele oferece uma interface intuitiva, rotas personalizáveis e respostas dinâmicas, além da capacidade de automatizar a geração de conjuntos de dados simulados
- O Mockoon é compatível com OpenAPI e pode criar diversos cenários para testes locais e integração com pipelines de desenvolvimento
- Também é possível interceptar requisições e simular apenas as chamadas definidas no Mockoon para criar um "mock parcial"
- O mock parcial ajuda a simular caminhos ou endpoints específicos de API, enquanto encaminha outras requisições para o servidor real
- O mock parcial pode ser útil em determinados cenários, mas seu uso excessivo traz o risco de levar a uma complexidade desnecessária
- Fora isso, o Mockoon continua sendo uma ferramenta útil para configurar rapidamente APIs simuladas, melhorar o fluxo de desenvolvimento e automatizar processos
-
Raycast
- O Raycast é um launcher premium para macOS que permite iniciar aplicativos rapidamente, executar comandos, buscar arquivos e automatizar tarefas pelo teclado
- Nossa equipe valorizou bastante os recursos nativos voltados para desenvolvedores e a facilidade de extensão para interagir com apps e serviços de terceiros como VSCode, Slack, Jira e Google
- O Raycast é voltado para produtividade e é uma ferramenta útil para quem quer simplificar tarefas cotidianas minimizando a troca de contexto
- Usuários Pro podem acessar o Raycast AI, um assistente de busca especializado com IA
-
ReadySet
- O ReadySet é um cache de consultas para MySQL e PostgreSQL
- Diferentemente das soluções tradicionais de cache que dependem de invalidação manual, o ReadySet aproveita o stream de replicação do banco de dados para atualizar o cache de forma incremental
- Com materialização parcial de views, o ReadySet alcança latência de cauda menor do que réplicas de leitura convencionais
- O ReadySet é compatível no nível de protocolo com MySQL e PostgreSQL, então pode ser implantado na frente do banco de dados sem alterações na aplicação para escalar horizontalmente cargas de trabalho de leitura
-
Rspack
- Muitas das nossas equipes que trabalham com front-end web migraram de ferramentas de empacotamento mais antigas, como Webpack, para o Vite
- Um novo entrante nessa área é o Rspack, que chegou à versão 1.0 após 18 meses de desenvolvimento
- Ele foi projetado como substituto do Webpack e é compatível com plugins e loaders do ecossistema Webpack
- Isso pode ser uma vantagem em relação ao Vite ao migrar configurações complexas de Webpack
- O principal motivo para nossas equipes migrarem para ferramentas mais modernas como Vite e Rspack é a experiência do desenvolvedor, especialmente a velocidade
- Nada quebra mais o fluxo de desenvolvimento do que ter que esperar 1 ou 2 minutos para receber feedback sobre a última alteração de código
- Escrito em Rust, o Rspack oferece desempenho muito superior ao do Webpack e, em muitos casos, é ainda mais rápido que o Vite
-
Semantic Router
- Ao criar aplicações baseadas em LLM, é importante determinar a intenção do usuário antes de encaminhar uma solicitação a um agente específico ou acionar um fluxo específico
- O Semantic Router atua como uma camada de decisão ultrarrápida para LLMs e agentes, permitindo rotear solicitações com eficiência e confiabilidade com base no significado semântico
- Ao inferir a intenção com embeddings vetoriais, o Semantic Router reduz chamadas desnecessárias a LLMs, oferecendo uma abordagem mais simples e econômica para entender a intenção
- Seu potencial vai além da inferência de intenção, expandindo-se como um componente versátil para várias tarefas semânticas
- Graças à velocidade e flexibilidade que oferece, ele se posiciona como um forte concorrente em ambientes que exigem tomada de decisão rápida e em tempo real sem o overhead de LLMs
-
Agentes de engenharia de software
- Atualmente, um dos temas mais quentes no espaço de GenAI é o conceito de agentes de engenharia de software
- Essas ferramentas de apoio à codificação fazem mais do que ajudar engenheiros a escrever trechos de código aqui e ali. Elas ampliam o tamanho dos problemas que podem resolver e, idealmente, executam tarefas de forma autônoma, com o mínimo de interferência humana
- A ideia é que essas ferramentas possam pegar issues do GitHub ou tickets do Jira, propor planos e alterações de código, ou até mesmo gerar pull requests para revisão humana
- Este é o próximo passo lógico para ampliar o impacto do suporte de IA à codificação, mas o objetivo de agentes gerais capazes de lidar com a ampla variedade de tarefas de programação frequentemente anunciada é muito ambicioso, e o estado atual das ferramentas não demonstra isso de forma convincente
- No entanto, vemos que isso pode funcionar em breve para tarefas mais simples e de escopo mais limitado, liberando tempo dos desenvolvedores para problemas mais complexos
- Entre as ferramentas com versões beta de agentes estão GitHub Copilot Workspace, qodo flow, agente Tabnine para JIRA e Amazon Q Developer
- O benchmark SWE Bench lista mais ferramentas desse espaço, mas alertamos que benchmarks no espaço de IA devem ser encarados com certa cautela
-
uv
- Rust é uma boa opção para escrever ferramentas de linha de comando por causa do rápido desempenho na inicialização, e temos visto pessoas reescrevendo algumas toolchains em Rust
- Em um Radar anterior, mencionamos o Ruff, um linter de Python escrito em Rust
- Neste volume, avaliamos o uv, uma ferramenta de gerenciamento de pacotes Python escrita em Rust
- A proposta de valor do uv é ser “absurdamente rápido”, e nos benchmarks ele supera com folga outras ferramentas de gerenciamento de pacotes Python
- No entanto, durante a avaliação do Radar, discutimos se otimizar uma ferramenta de build em questão de segundos representa uma melhoria marginal
- Mais importante do que desempenho em um sistema de gerenciamento de pacotes são ecossistema, comunidade madura e suporte de longo prazo
- Ainda assim, o feedback das equipes de projeto mostrou que esse pequeno ganho de desempenho pode ajudar muito a melhorar o ciclo de feedback e a experiência geral do desenvolvedor — tendemos a tornar manualmente o cache de CI/CD muito complexo para alcançar esse pequeno ganho de desempenho; o uv simplifica o gerenciamento de ambientes Python
- Considerando que ainda há muito espaço para melhorias no gerenciamento de pacotes e de env para desenvolvimento Python, achamos que o uv é uma opção que vale a pena avaliar
-
Warp
- Warp é um terminal para macOS e Linux
- Ele divide a saída dos comandos em blocos para melhorar a legibilidade
- O Warp inclui recursos baseados em IA, como sugestões inteligentes de comandos e processamento de linguagem natural
- Também inclui recursos de notebook, permitindo que os usuários organizem comandos e saídas, além de adicionar anotações e explicações
- Com esses recursos, é possível criar arquivos README ou materiais de onboarding e apresentar e gerenciar fluxos de trabalho de terminal de forma estruturada e interativa
- O Warp integra-se facilmente ao Starship, um prompt flexível e cross-shell, permitindo personalizar a experiência no terminal ao buscar informações sobre processos em execução, versões específicas de ferramentas em uso, detalhes do Git ou até o usuário atual do Git
-
Zed
- Após o encerramento do projeto do editor de texto Atom, seus criadores desenvolveram um novo editor chamado Zed
- Escrito em Rust e otimizado para aproveitar hardware moderno, o Zed transmite sensação de rapidez
- Ele tem todos os recursos esperados de um editor moderno, incluindo suporte a muitas linguagens de programação, terminal embutido e edição multibuffer
- A codificação assistida por IA pode ser usada por meio de integrações com vários provedores de LLM
- Como entusiastas de programação em par, ficamos fascinados com os recursos de colaboração remota embutidos no Zed
- Desenvolvedores podem encontrar uns aos outros por meio do ID do GitHub e então colaborar em tempo real no mesmo workspace
- Ainda é cedo para dizer se as equipes de desenvolvimento podem — e querem — se afastar da atração do ecossistema do Visual Studio Code
- No entanto, o Zed é uma alternativa que vale a pena explorar
Hold
- CocoaPods
- CocoaPods é uma ferramenta de gerenciamento de dependências há muito querida em projetos Cocoa com Swift e Objective-C
- Há mais de 10 anos, ela vem sendo uma ferramenta importante para desenvolvedores de iOS e macOS
- A equipe do CocoaPods anunciou agora que o projeto entrará em modo de manutenção e o desenvolvimento ativo será interrompido
- A ferramenta CocoaPods e os recursos relacionados continuarão disponíveis, mas não haverá desenvolvimento de novos recursos nem melhorias
- Os desenvolvedores estão sendo incentivados a migrar para o Swift Package Manager
- O Swift Package Manager oferece integração nativa com o Xcode e pode contar com o suporte de longo prazo da Apple
[Language and Frameworks]
Adopt
-
dbt
- continua sendo considerado uma opção forte e inteligente para implementar transformações de dados em pipelines ELT
- Gostamos do fato de que ele possibilita rigor de engenharia e práticas como modularidade, testabilidade e reutilização de transformações baseadas em SQL
- Integra-se bem com muitos data warehouses, lakehouses e bancos de dados em nuvem, como Snowflake, BigQuery, Redshift, Databricks e Postgres, e conta com um ecossistema saudável de pacotes da comunidade ao seu redor
- O suporte nativo recentemente introduzido para testes unitários (dbt core 1.8+ e a experiência “versionless” do dbt Cloud introduzida recentemente) reforça ainda mais sua posição na caixa de ferramentas
- Com o novo recurso de testes unitários, é possível definir facilmente dados de teste estáticos, configurar expectativas de saída e testar tanto o modo incremental quanto o de full refresh do pipeline, algo muito valorizado pelas equipes
- Em muitos casos, isso permitiu descartar scripts internos sem perder o mesmo nível de qualidade
-
Testcontainers
- O Testcontainers tem se mostrado uma opção padrão útil para criar ambientes confiáveis para execução de testes
- É uma biblioteca portada para várias linguagens que dockeriza dependências comuns de teste, incluindo vários tipos de bancos de dados, tecnologias de filas, serviços de nuvem e dependências de testes de UI, como navegadores web, além de permitir a execução de Dockerfiles personalizados quando necessário
- Recentemente, foi lançada uma versão desktop que oferece gerenciamento visual das sessões de teste e recursos para administrar cenários mais complexos, o que as equipes têm considerado muito útil
Trial
-
CAP
- Biblioteca .NET que implementa o padrão Outbox para realizar de forma atômica atualizações no banco de dados e publicação de eventos em sistemas de mensageria distribuída
- Resolve o problema ao registrar a intenção de publicar eventos na mesma transação do banco de dados
- É útil por oferecer suporte a alguns bancos de dados e plataformas de mensageria e garantir entrega pelo menos uma vez
-
CARLA
- Simulador open source de pesquisa em direção autônoma usado para testar sistemas autônomos antes da implantação em produção
- Permite criar e reutilizar com flexibilidade modelos 3D de veículos, terrenos, humanos, animais etc., possibilitando a simulação de vários cenários
- Sistemas autônomos precisam reconhecer esses objetos dinâmicos e tomar medidas adequadas, como frear
- É usado no desenvolvimento contínuo e nos testes de sistemas autônomos
-
Databricks Asset Bundles
- Lançado como GA em abril de 2024, o DABs vem se consolidando como uma ferramenta de empacotamento e implantação de ativos do Databricks que incentiva a adoção de práticas de engenharia de software por equipes de dados
- Ele empacota em bundles configurações de workflows e jobs, junto com o código que será executado nesses jobs, permitindo implantação em múltiplos ambientes por meio de pipelines de CI/CD
- Oferece suporte a templates para tipos de ativos comuns e a templates personalizados, possibilitando criar templates de serviço sob medida para projetos de engenharia de dados e ML
- Está sendo adotado cada vez mais como parte importante dos workflows de engenharia
- Embora inclua templates de notebook e ofereça suporte à implantação em produção, não recomendamos levar notebooks para produção
- Em vez disso, ele incentiva intencionalmente a escrita de código de produção com práticas de engenharia que deem suporte a requisitos de manutenibilidade, resiliência e escalabilidade
-
Instructor
- Biblioteca útil ao solicitar respostas estruturadas (JSON, YAML etc.) usando LLMs, fazer o parsing delas e utilizá-las na aplicação
- Como LLMs são não determinísticos, eles podem não se comportar sempre da forma solicitada
- É possível definir a estrutura de saída desejada e configurar novas tentativas caso o LLM não retorne a estrutura solicitada
- Também oferece a capacidade de fazer parsing de estruturas parciais em stream, permitindo transmitir os resultados sem esperar a resposta completa
-
Kedro
- Ferramenta de MLOps que melhorou bastante, mantendo o foco em modularidade e práticas de engenharia
- Enfatiza a modularidade, como na introdução do pacote independente
kedro-datasets, separando código e dados - Melhorias em CLI, templates iniciais de projeto e recursos de telemetria
- Lançamento recente de uma extensão para VS Code melhora a experiência do desenvolvedor
-
LiteLLM
- Biblioteca que se integra de forma transparente com APIs de diversos provedores de LLM, padronizando a interação por meio do formato de API da OpenAI
- Suporta uma ampla gama de provedores e modelos e fornece uma interface unificada para completions, embeddings e geração de imagens
- Simplifica a integração ao transformar entradas para corresponder aos requisitos específicos de endpoint de cada provedor
- Fornece um framework para implementar recursos operacionais necessários em aplicações de produção, como cache, logging, limitação de taxa e balanceamento de carga
- Permite trocar facilmente entre diferentes modelos, algo necessário no cenário atual em que os modelos evoluem rapidamente
- É preciso reconhecer que, como as respostas dos modelos ao mesmo prompt variam, apenas um método de chamada consistente pode não ser suficiente para otimizar o desempenho dos completions
- Como cada modelo implementa recursos adicionais de forma própria, pode ser difícil atender a todas as funcionalidades com uma única interface
-
LlamaIndex
- Inclui um mecanismo para projetar aplicações de LLM especializadas por domínio e baseadas em contexto, com suporte a tarefas como ingestão de dados, indexação vetorial e perguntas e respostas em linguagem natural sobre documentos
- Com LlamaIndex, é possível automatizar a ingestão de documentos, indexar embeddings de documentos e construir pipelines de RAG (Retrieval-Augmented Generation) que consultam esses embeddings com base na entrada do usuário
- Com LlamaHub, é possível expandir ou personalizar módulos do LlamaIndex e criar aplicações de LLM com o provedor de LLM, embeddings e armazenamento vetorial de sua preferência
-
LLM Guardrails
- Conjunto de diretrizes, políticas ou filtros para evitar que LLMs gerem conteúdo nocivo, enganoso ou irrelevante
- Também pode ser usado para proteger aplicações de LLM contra usuários mal-intencionados que tentam abusar do sistema com técnicas como manipulação de entrada
- Atua como uma rede de segurança ao estabelecer limites para como o modelo processa e gera conteúdo
- Frameworks emergentes nessa área, como NeMo Guardrails, Guardrails AI e Aporia Guardrails, são úteis
- Recomenda-se colocar guardrails em todas as aplicações de LLM e melhorar continuamente regras e políticas
- É importante para construir apps de chat com LLM responsáveis e confiáveis
-
Medusa
- Soluções de e-commerce para construir a maioria dos sites de compras tendem a cair na armadilha do 80/20
- Medusa é uma plataforma de comércio open source altamente customizável e bem equilibrada, que permite aos desenvolvedores criar experiências de compra únicas e sob medida
- Construída com base em Next.js e PostgreSQL, acelera o processo de desenvolvimento com uma gama abrangente de módulos, de carrinho de compras e gerenciamento de pedidos a recursos avançados como módulo de gift card e cálculo regional de impostos
- Foi aplicada em alguns projetos e avaliada como um framework valioso
-
Pkl
- Linguagem e ferramenta open source de configuração criada inicialmente para uso interno na Apple
- Seu principal recurso é um sistema de tipos e validação capaz de detectar erros de configuração antes da implantação
- Reduz a duplicação de código (como em casos de sobrescrita por ambiente) e permite validar alterações de configuração antes de aplicá-las ao ambiente em produção
- Oferece ampla integração com IDEs e linguagens, incluindo geração de arquivos JSON, PLIST, YAML e
.properties, além de geração de código
-
ROS 2
- Framework open source para desenvolvimento de sistemas robóticos
- Fornece bibliotecas e ferramentas que permitem a implementação modular de aplicações que lidam com recursos como comunicação entre processos, execução multithread e qualidade de serviço
- Em comparação com a versão anterior, traz melhorias em recursos de tempo real, maior modularidade, suporte ampliado a diversas plataformas e padrões razoáveis por padrão
- Para fabricantes com aplicações automotivas complexas e em evolução, como recursos de direção autônoma, sua arquitetura baseada em nós e seu modelo de comunicação baseado em tópicos são especialmente atraentes
- Está sendo cada vez mais usado na indústria automotiva
-
seL4
- Em SDV e outros cenários críticos para a segurança, a confiabilidade em tempo real do sistema operacional é essencial
- Como poucas empresas dominam essa área devido à alta barreira de entrada, soluções open source como seL4 são valiosas
- seL4 é um microkernel de sistema operacional de alta garantia e alto desempenho
- Usa métodos de verificação formal para confirmar que o comportamento do sistema operacional está em conformidade “matemática” com a especificação
- A arquitetura de microkernel minimiza as responsabilidades centrais para garantir a estabilidade do sistema
- Empresas de veículos elétricos como a NIO estão colaborando com o ecossistema do seL4, e pode haver mais avanços nessa área no futuro
-
SetFit
- Atualmente, a maioria das ferramentas baseadas em IA é generativa, criando texto e imagens e usando GPT
- Para tarefas tradicionais de texto, como classificação de texto ou determinação de intenção, transformadores de sentenças são preferidos
- SetFit é um framework para ajuste fino de transformadores de sentenças
- Usa aprendizado contrastivo para, muitas vezes, alcançar separação clara entre diferentes classes de intenção mesmo com pouquíssimos exemplos
- Transformadores de sentenças também podem desempenhar um papel em sistemas de IA generativa
- Em sistemas de chatbot voltados ao cliente que usam LLM, o uso do SetFit para detecção de intenção foi bem-sucedido, e um classificador baseado em SetFit foi escolhido para filtragem mais rigorosa
-
vLLM
- Motor de inferência para LLMs de alta vazão e eficiência de memória, que pode ser executado na nuvem ou on-premises
- Dá suporte de forma transparente a várias arquiteturas de modelo e modelos open source populares
- Ao implantar workers conteinerizados do vLLM em plataformas de GPU como NVIDIA DGX e Intel HPC, é possível hospedar modelos como Llama 3.1 (8B e 70B), Mistral 7B e Llama-SQL para assistência de programação, busca de conhecimento, interação com bancos de dados em linguagem natural e mais
- É compatível com o padrão do OpenAI SDK, facilitando um serving de modelos consistente
- O AI Model Catalog da Azure melhora o desempenho de serving de modelos usando contêineres de inferência personalizados e adota o vLLM como motor de inferência padrão devido à sua alta vazão e gerenciamento eficiente de memória
- O framework vLLM está surgindo como padrão para implantação de modelos em larga escala
Assess
-
Apache XTable™
- Ainda não surgiu um vencedor claro entre os formatos de tabela aberta disponíveis
- Ferramentas como Delta UniForm tornam possível a interoperabilidade entre esses formatos
- Apache XTable™ é um projeto incubado da Apache que promove interoperabilidade bidirecional entre Hudi, Delta e Iceberg
- Devido às diferenças de funcionalidade entre esses formatos, depender fortemente dessa interoperabilidade bidirecional no longo prazo pode levar as equipes a usarem apenas recursos do “menor denominador comum”
-
dbldatagen
- Preparar dados de teste para engenharia de dados é um desafio considerável
- Transferir dados da produção para ambientes de teste pode ser arriscado, por isso as equipes frequentemente dependem de dados falsos ou sintéticos
- dbldatagen (Databricks Labs Data Generator) é uma biblioteca Python que gera dados sintéticos em ambientes Databricks para testes, benchmarking, demos e mais
- O dbldatagen pode gerar bilhões de linhas em minutos, permitindo criar dados sintéticos em grande escala enquanto oferece suporte a diversos cenários, como múltiplas tabelas, captura de dados de alteração e operações de merge/join
-
DeepEval
- DeepEval é um framework de avaliação open source baseado em Python para avaliar o desempenho de LLMs
- Pode ser usado para avaliar RAG (retrieval-augmented generation) e outros tipos de aplicativos construídos com frameworks populares como LlamaIndex ou LangChain, além de definir baselines e benchmarks ao comparar diferentes modelos conforme necessário
- O DeepEval oferece métricas e recursos abrangentes para avaliar o desempenho de LLMs, incluindo detecção de alucinações, relevância das respostas e otimização de hiperparâmetros
- Fornece integração com
pytest, permitindo integrar facilmente conjuntos de testes a pipelines de CI (continuous integration) junto com assertions
-
DSPy
- Hoje, a maioria dos aplicativos baseados em modelos de linguagem depende de templates de prompt ajustados manualmente para tarefas específicas
- O DSPy é um framework para desenvolver esses aplicativos e adota uma abordagem diferente que elimina a engenharia direta de prompts
- Em vez disso, introduz abstrações de alto nível relacionadas ao fluxo do programa (por meio de módulos que podem ser empilhados uns sobre os outros), às métricas a serem otimizadas e aos dados a serem treinados ou testados
- Em seguida, otimiza os prompts ou os pesos do modelo de linguagem subjacente com base nas métricas definidas
- A base de código resultante é muito semelhante ao treinamento de redes neurais com PyTorch
-
Flutter for Web
- O Flutter é conhecido pelo suporte multiplataforma para aplicativos iOS e Android
- Agora ele se expandiu para ainda mais plataformas
- É possível criar aplicativos para iOS, Android e navegadores a partir da mesma base de código
- Nem todo aplicativo web faz sentido em Flutter, mas ele é especialmente adequado para progressive web apps, single-page apps e para converter aplicativos móveis Flutter existentes para a web
- O Flutter já oferecia suporte a WebAssembly (WASM) como alvo de compilação no canal experimental, o que significava que ainda estava em desenvolvimento ativo, com possíveis bugs e problemas de desempenho
- Em lançamentos recentes, isso foi estabilizado
- O desempenho de aplicativos web Flutter compilados para o alvo WASM é muito superior ao do alvo de compilação JavaScript
- O desempenho próximo ao nativo em diversas plataformas também é um dos motivos pelos quais muitos desenvolvedores escolheram o Flutter inicialmente
-
kotaemon
- kotaemon é uma ferramenta e framework open source baseado em RAG para criar aplicativos de perguntas e respostas para documentos de bases de conhecimento
- Consegue entender vários tipos de documentos, incluindo formatos PDF e DOC, e oferece uma interface web baseada em Gradio para que os usuários organizem a base de conhecimento e interajam por meio de uma interface de chat
- Possui um pipeline RAG integrado com vector store e pode ser expandido via SDK
- Também cita documentos-fonte nas respostas, com pré-visualização inline baseada na web e pontuações de relevância
- Para quem deseja um aplicativo de perguntas e respostas sobre documentos baseado em RAG, esse framework personalizável é um ótimo ponto de partida
-
Lenis
- Lenis é uma biblioteca de smooth scroll leve, mas poderosa, projetada para navegadores modernos
- Ela possibilita experiências de rolagem suave como sincronização de scroll com WebGL e efeitos de paralaxe, sendo ideal para equipes que constroem páginas com interações de rolagem flexíveis e fluidas
- Desenvolvedores descobriram que o Lenis é simples, fácil de usar e oferece uma abordagem enxuta para criar smooth scroll
- No entanto, a biblioteca pode apresentar problemas de acessibilidade, especialmente porque interações de rolagem vertical e horizontal podem confundir usuários com deficiência
- Embora seja visualmente atraente, sua implementação exige cuidado para preservar a acessibilidade
-
LLMLingua
- LLMLingua aumenta a eficiência de LLMs ao comprimir prompts e remover tokens não essenciais com o uso de modelos de linguagem menores, minimizando a perda de desempenho
- Essa abordagem permite que LLMs processem prompts mais longos com eficiência, mantendo capacidades de raciocínio e aprendizado em contexto, resolvendo desafios como custo-benefício, latência de inferência e processamento de contexto
- Compatível com vários LLMs sem necessidade de treinamento adicional e com suporte a frameworks como o LlamaIndex, o LLMLingua é adequado para otimizar o desempenho de inferência de LLMs
-
Microsoft Autogen
- Microsoft Autogen é um framework open source que simplifica a criação e a orquestração de agentes de IA, possibilitando colaboração multiagente para resolver tarefas complexas
- Ele oferece suporte tanto a fluxos de trabalho autônomos quanto human-in-the-loop, além de compatibilidade com vários LLMs e ferramentas para interações entre agentes
- Uma equipe usou o Autogen para um cliente a fim de construir uma plataforma baseada em IA em que cada agente representa uma habilidade específica, como geração de código, revisão de código ou resumo de documentação
- Ao definir modelos e fluxos de trabalho adequados com o framework, a equipe consegue criar novos agentes de forma fluida e consistente
- Ao aproveitar o LlamaIndex para orquestrar fluxos de trabalho, os agentes podem gerenciar com eficiência tarefas como busca de produtos e sugestões de código
- O Autogen mostrou potencial especialmente em ambientes de produção, mas permanecem preocupações sobre escalabilidade e gerenciamento de complexidade à medida que mais agentes são adicionados
- São necessárias avaliações adicionais para medir a viabilidade de longo prazo na expansão de sistemas baseados em agentes
-
Pingora
- Pingora é um framework em Rust para construir serviços de rede rápidos, estáveis e programáveis
- Desenvolvido originalmente pela Cloudflare para resolver limitações do Nginx, o Pingora já demonstra grande potencial, com novos proxies como o River sendo construídos sobre sua base
- Embora a maioria das pessoas não enfrente uma escala no nível da Cloudflare, elas se deparam com cenários em que roteamento flexível na camada de aplicação é essencial para serviços de rede
- A arquitetura do Pingora permite aproveitar todos os recursos do Rust nessas situações sem sacrificar segurança nem desempenho
-
Ragas
- Ragas é um framework projetado para avaliar o desempenho de pipelines de retrieval-augmented generation (RAG), enfrentando o desafio de avaliar tanto os componentes de recuperação quanto os de geração
- Ele fornece métricas estruturadas, como fidelidade, relevância da resposta e uso do contexto, ajudando a avaliar a eficácia de sistemas baseados em RAG
- Desenvolvedores consideraram útil executá-lo regularmente para ajustar parâmetros como top-k retrieval e modelos de embedding
- Algumas equipes integraram o Ragas a pipelines executados diariamente sempre que templates de prompt ou modelos são alterados
- Embora as métricas ofereçam insights sólidos, há preocupações de que o framework possa não capturar todas as nuances e interações complexas de pipelines RAG complexos, sendo recomendável considerar frameworks de avaliação adicionais
- Ainda assim, o Ragas se destaca por sua capacidade de simplificar a avaliação de RAG em ambientes de produção e oferecer melhorias orientadas por dados
-
Score
- Muitas organizações que implementam plataformas internas de desenvolvimento tendem a criar seus próprios sistemas de orquestração de plataforma para aplicar padrões organizacionais entre os desenvolvedores e as equipes responsáveis pela hospedagem da plataforma
- No entanto, as funcionalidades básicas de uma plataforma de implantação com caminho pavimentado para hospedar workloads em contêineres de forma segura, consistente e em conformidade com regulamentações são semelhantes entre diferentes organizações
- Não seria bom se houvesse uma linguagem compartilhada para especificar esses requisitos?
- O Score está mostrando potencial para se tornar um padrão nessa área
- Trata-se de uma linguagem declarativa em formato YAML, que descreve como implantar workloads conteinerizados e quais serviços e parâmetros específicos são necessários para executá-los
- O Score foi desenvolvido originalmente como uma linguagem de configuração para o produto Platform Orchestrator da Humanitec, mas agora é um projeto open source sob governança da CNCF (Cloud Native Computing Foundation)
- Com o apoio da CNCF, o Score pode vir a ser usado mais amplamente para além dos produtos da Humanitec
- Foi lançado com duas implementações de referência: Kubernetes e Docker Compose
- Espera-se que a extensibilidade do Score leve a contribuições da comunidade para outras plataformas
- O Score tem semelhanças com a especificação Open Application Model (OAM) do Kubevela, mas está mais focado na implantação de workloads em contêineres do que na aplicação inteira
- Também há alguma sobreposição com o SST, mas o SST está mais interessado em implantar diretamente na infraestrutura de nuvem do que em plataformas internas de engenharia
- Estamos acompanhando o Score com interesse à medida que evolui
-
shadcn
- O shadcn desafia o conceito tradicional de biblioteca de componentes ao fornecer componentes reutilizáveis que podem ser copiados e colados
- Essa abordagem dá às equipes propriedade e controle completos, permitindo personalização e extensão mais fáceis, algo em que bibliotecas tradicionais mais genéricas como MUI e Chakra UI muitas vezes deixam a desejar
- Construído com Radix UI e Tailwind CSS, o shadcn se integra sem atritos a qualquer aplicação baseada em React, sendo adequado para projetos que priorizam controle e extensibilidade
- Inclui uma CLI que dá suporte ao processo de copiar e colar componentes no projeto
- Como também reduz dependências ocultas e evita implementações fortemente acopladas, o shadcn vem chamando atenção como uma alternativa atraente para equipes que buscam uma abordagem mais prática e adaptável para o desenvolvimento frontend
-
Slint
- Slint é um framework declarativo de GUI para construir interfaces de usuário nativas para aplicações em Rust, C++ ou JavaScript
- É um framework de UI multiplataforma com recursos importantes como visualização ao vivo, design de UI responsivo, integração com VS Code e experiência de usuário nativa, mas queremos destacar especialmente sua utilidade para sistemas embarcados
- Equipes que desenvolvem aplicações embarcadas tradicionalmente tinham opções limitadas para desenvolvimento de UI, cada uma com seus próprios prós e contras
- O Slint usa uma linguagem de marcação semelhante a HTML e fácil de usar, além de compilar diretamente para código de máquina, oferecendo um equilíbrio excelente entre experiência do desenvolvedor e desempenho
- Em tempo de execução, também apresenta baixo consumo de recursos, algo importante para sistemas embarcados
- Em resumo, gostamos do Slint porque ele traz práticas comprovadas do desenvolvimento web e mobile para o ecossistema embarcado
-
SST
- SST é um framework para implantar aplicações em ambientes de nuvem junto com todos os serviços necessários para executá-las
- O SST não é apenas uma ferramenta de IaC, mas um framework com uma API em TypeScript para definir o ambiente da aplicação, um serviço que implanta a aplicação quando acionado por um Git push e um console GUI para gerenciar a aplicação resultante e chamar os recursos de gerenciamento do SST
- O SST foi originalmente baseado em AWS CloudFormation e CDK, mas as versões mais recentes foram implementadas sobre Terraform e Pulumi, tornando-o teoricamente agnóstico de nuvem
- O SST oferece suporte nativo à implantação de vários frameworks padrão de aplicações web, incluindo Next.js e Remix, além de também oferecer suporte a aplicações de API headless
- O SST parece pertencer a uma categoria própria
- Embora tenha semelhanças com ferramentas de orquestração de plataforma como Kubevela, também oferece recursos voltados à conveniência do desenvolvedor, como um modo live que faz proxy de chamadas do AWS Lambda para funções executadas na máquina local do desenvolvedor
- No momento, o SST ainda permanece como uma curiosidade, mas é um projeto digno de atenção e parte de uma categoria de ferramentas que vale acompanhar à medida que evolui
10 comentários
Obrigado. É interessante.
Você fez um ótimo trabalho... muito obrigado!
Pensando no Lenis, uma biblioteca de rolagem que aparece ali no meio do caminho... essas animações de rolagem fluidas, tipo as do site da Apple, acabam sendo meio desconfortáveis para mim.
Ao tentar acompanhar usando a roda do mouse, dá a sensação de que a animação fica travando o tempo todo; e, se eu uso a seta para baixo para navegar, vai rápido demais e fica difícil ler o conteúdo.
No fim, no Windows, clicar na roda de rolagem e descer bem devagarzinho, com um movimento mínimo, acaba sendo a única forma de "aproveitar" esse tipo de site — e não sei se isso realmente vale tudo isso. Em resumo, não sei se é uma técnica tão boa assim.
A Databricks aparece numa quantidade assustadora de vezes.
Fiquei exausto só de ler. T_T
Organizei os produtos/serviços que já apareceram no GeekNews.
Platforms - Assess
Platforms - Trial
Language and Frameworks - Adopt
Language and Frameworks - Assess
Language and Frameworks - Trial
Tools - Adopt
Tools - Assess
Tools - Trial
Obrigado. É bem interessante~
Gostei muito. Obrigado.
Achei a leitura muito interessante. Obrigado.
Thoughtworks Technology Radar, Volume 30
Thoughtworks Technology Radar, Volume 29
Thoughtworks Technology Radar, Volume 28
Thoughtworks Technology Radar, Volume 27
Thoughtworks Technology Radar, Volume 26
ThoughtWorks Technology Radar, Volume 23
ThoughtWorks Technology Radar, Volume 22
Notícias de tecnologia publicadas pela ThoughtWorks a cada 6 meses - Radar Vol.21