Enable javascript in your browser for better experience. Need to know to enable it? Go here.
Volume 31 | Outubro 2024

Linguagens & Frameworks

  • Linguagens & Frameworks

    Adote Experimente Avalie Evite Adote Experimente Avalie Evite
  • Novo
  • Modificado
  • Sem alteração

Linguagens & Frameworks

Adote ?

  • 75. dbt

    Continuamos a considerar o dbt como uma opção sólida e sensata para implementar transformações de dados em pipelines de ELT. Gostamos do fato de que ele preza pelo rigor da engenharia e permite práticas como modularidade, capacidade de teste e reutilização de transformações baseadas em SQL. O dbt integra-se bem com muitos data warehouses, lakehouses e bancos de dados em nuvem, incluindo Snowflake, BigQuery, Redshift, Databricks e Postgres, e tem um ecossistema saudável de pacotes comunitários em torno dele. O suporte nativo introduzido recentemente (no dbt core 1.8+ e na recém-introduzida experiência “sem versão” do dbt Cloud) para testes unitários fortalece ainda mais sua posição em nossa caixa de ferramentas. Nossas equipes valorizam o fato de a nova funcionalidade de teste unitário permitir que elas definam facilmente os dados de teste estáticos, configurem as expectativas de saída e testem os modos incremental e de atualização total de seus pipelines. Em muitos casos, isso permitiu que elas descontinuassem os scripts desenvolvidos internamente, mantendo o mesmo nível de qualidade.

  • 76. Testcontainers

    Em nossa experiência, Testcontainers são uma opção padrão útil para criar um ambiente confiável para a execução de testes. Trata-se de uma biblioteca, adaptada para várias linguagens, que Dockeriza dependências de teste comuns – incluindo vários tipos de bancos de dados, tecnologias de fila, serviços de nuvem e dependências de teste de interface de usabilidade, como navegadores da web – com a capacidade de executar Dockerfiles personalizados quando necessário. Recentemente, foi lançada uma versão para desktop que permite o gerenciamento visual de sessões de teste e a capacidade de gerenciar cenários mais complexos, o que nossas equipes consideraram muito útil.

Experimente ?

  • 77. CAP

    CAP é uma biblioteca .NET que implementa o Outbox pattern. Ao trabalhar com sistemas de mensageria distribuída como RabbitMQ ou Kafka, frequentemente enfrentamos o desafio de garantir que as atualizações no banco de dados e as publicações de eventos sejam realizadas de forma atômica. A biblioteca CAP resolve esse desafio registrando a intenção de publicar o evento na mesma transação de banco de dados que o gerou. Consideramos a CAP bastante útil, pois oferece suporte a vários bancos de dados e plataformas de mensageria, garantindo a entrega pelo menos uma vez.

  • 78. CARLA

    CARLA é um simulador para pesquisas de direção autônoma de código aberto utilizado para testar sistemas de condução autônoma antes de seu lançamento em produção. Ele oferece flexibilidade na criação e reutilização de modelos tridimensionais de veículos, terrenos, pessoas, animais e mais, tornando possível simular cenários, como os de um pedestre atravessando a rua ou o encontro com um veículo vindo em uma velocidade específica. O sistema de condução autônoma em testes deve reconhecer estes atores dinâmicos e tomar a ação apropriada, como frear. Nossos times usam CARLA para o desenvolvimento contínuo e testes de sistemas de direção autônoma.

  • 79. Pacotes de ativos do Databricks

    Os pacotes de ativos do Databricks (DABs), que atingiram disponibilidade geral em abril de 2024, estão se tornando a ferramenta preferida para empacotamento e implantação de ativos no Databricks, facilitando a adoção de práticas de engenharia de software em nossos times de dados. Os DABs permitem englobar a configuração de fluxos de trabalho e tarefas, além do código a ser executado nessas tarefas, em um pacote que pode ser implantado em diversos ambientes por meio de pipelines de CI/CD. A ferramenta oferece templates para tipos comuns de ativos e também suporta templates personalizados, o que possibilita a criação de modelos de serviços personalizados para projetos de engenharia de dados e aprendizado de máquina. Nossos times têm adotado cada vez mais essa ferramenta como parte essencial de seus fluxos de trabalho de engenharia. Embora os DABs incluam templates para notebooks e suportem sua implantação em produção, não recomendamos a produção de notebooks. Em vez disso, incentivamos a escrita intencional de código de produção utilizando práticas de engenharia que garantam a manutenção, resiliência e escalabilidade dessas cargas de trabalho.

  • 80. Instructor

    Quando usamos chatbots baseados em modelos de linguagem de grande porte (LLM) como usuários finais, eles geralmente nos retornam uma resposta em linguagem natural não estruturada. Ao construir aplicações de GenAI que vão além de chatbots, pode ser útil solicitar ao LLM uma resposta estruturada em JSON, YAML ou outros formatos, para então analisar e usar essa resposta na aplicação. No entanto, como os LLMs não são determinísticos, eles nem sempre fazem exatamente o que pedimos. A biblioteca Instructor pode ser usada para nos ajudar a solicitar saídas estruturadas de LLMs. Você pode definir a estrutura de saída desejada e configurar tentativas adicionais se o LLM não retornar a estrutura que você solicitou. Como a melhor experiência da usuária ao trabalhar com LLMs muitas vezes envolve o streaming dos resultados em vez de esperar pela resposta completa, o Instructor também cuida de analisar estruturas parciais de um fluxo.

  • 81. Kedro

    Kedro melhorou significativamente como uma ferramenta para MLOps e manteve seu foco em modularidade e práticas de engenharia, pontos que gostamos desde o início. Um exemplo que destaca sua modularidade é a introdução do package independente kedro-datasets, que separa o código dos dados. O Kedro adicionou melhorias na CLI, nos templates de projetos iniciais e nas capacidades de telemetria. Além disso, o lançamento recente de uma extensão para VS Code é um ótimo reforço para a experiência das pessoas desenvolvedoras.

  • 82. LiteLLM

    LiteLLM é uma biblioteca para perfeita integração com várias APIs de provedores de modelos de linguagem de grande porte (LLM) que padroniza as interações através de um formato da OpenAI API. Ela suporta uma extensa variedade de modelos e provedores, e oferece uma interface unificada para preenchimento, incorporação e geração de imagens. O LiteLLM simplifica a integração traduzindo as entradas para corresponder aos requisitos específicos de endpoint de cada provedor. Também fornece uma estrutura necessária para implementar muitos dos recursos operacionais necessários em uma aplicação de produção, como cache, registro de logs, limitação de taxa de request e balanceamento de carga. Isso garante uma operação uniforme em diferentes LLMs. Nossas equipes estão usando o LiteLLM para facilitar a troca de vários modelos; um recurso necessário no cenário atual, onde os modelos estão evoluindo rapidamente. É crucial reconhecer que as respostas do modelo a prompts idênticos variam, indicando que um método de invocação consistente por si só pode não otimizar totalmente o desempenho da geração de respostas completas. Além disso, cada modelo implementa recursos adicionais de forma única e uma única interface pode não ser suficiente para todos. Por exemplo, uma de nossas equipes teve dificuldade em identificar vantagens na chamada de função em um modelo AWS Bedrock ao fazer proxy através do LiteLLM.

  • 83. LlamaIndex

    LLamaIndex traz mecanismos que lhe permite definir aplicações específicas para um domínio conectadas a LLMs, além de dar suporte a tarefas como ingestão de dados, indexação vetorial e busca de respostas a perguntas em linguagem natural. Nossos times usaram LlamaIndex para construir uma pipeline de geração aumentada por recuperação (RAG) que automatiza a ingestão de documentos, indexando seus embeddings e permitindo sua busca com base nas informações fornecidas pela usuária. Usando LlamaHub, você pode estender e customizar módulos do LLamaIndex para melhor atender suas necessidades e construir, por exemplo, aplicações LLM com seus LLMs preferidos, embeddings e provedores de armazenamento de vetores.

  • 84. LLM Guardrails

    LLM Guardrails é um conjunto de diretrizes, políticas ou filtros projetados para evitar que modelos de linguagem de grande porte (LLMs) gerem conteúdo prejudicial, enganoso ou irrelevante. Os guardrails também podem ser usados para proteger aplicações de LLMs contra usuárias mal-intencionadas que tentem manipular o sistema com técnicas como a manipulação de entrada. Elas atuam como uma rede de segurança, estabelecendo limites para o modelo ao processar e gerar conteúdo. Existem alguns frameworks emergentes nesse espaço, como o NeMo Guardrails, Guardrails AI e Aporia Guardrails, que nossas equipes têm achado úteis. Recomendamos que toda aplicação que utilize LLMs tenha guardrails implementados e que suas regras e políticas sejam continuamente aprimoradas. Eles são cruciais para construir aplicações de chat com LLMs que sejam responsáveis e confiáveis.

  • 85. Medusa

    Em nossa experiência, a maioria das soluções de e-commerce para construção de sites de compras geralmente caem na armadilha 80/20: podemos facilmente construir 80% do que queremos, mas não podemos fazer nada sobre os 20% restantes. Medusa oferece um bom equilíbrio. É uma plataforma de e-commerce de código aberto altamente customizável que permite às pessoas desenvolvedoras criarem experiências de compras únicas e personalizadas que podem ser auto-hospedadas ou executadas na plataforma da Medusa. Construído em Next.js e PostgreSQL, Medusa acelera o processo de desenvolvimento com sua gama abrangente de módulos — desde o carrinho de compras básico e gerenciamento de pedidos até recursos avançados como módulos de vale-presente e cálculo de impostos para diferentes regiões. Descobrimos que a Medusa é uma estrutura valiosa e a aplicamos a alguns projetos.

  • 86. Pkl

    Pkl é uma ferramenta de código aberto para configuração de linguagem criada inicialmente para uso interno na Apple. Sua funcionalidade principal é o sistema de validação e tipos, que permite que os erros de configuração sejam detectados antes da implementação. O Pkl permitiu que nossas equipes reduzissem a duplicação de código (para casos como sobreposições de ambiente) e realizassem a validação antes que as alterações de configuração fossem aplicadas a ambientes de produção. Ele gera arquivos JSON, PLIST, YAML e .properties e tem ampla integração de IDE e linguagem, incluindo geração de código.

  • 87. ROS 2

    ROS 2 é um framework de código aberto projetado para o desenvolvimento de sistemas robóticos. Ele oferece um conjunto de bibliotecas e ferramentas que possibilitam a implementação modular de aplicações, abrangendo funções como comunicação entre processos, execução multi-thread e qualidade de serviço. O ROS 2 se baseia em seu predecessor ao oferecer capacidades aprimoradas em tempo real, melhor modularidade, maior suporte a diversas plataformas e padrões sensatos. O ROS 2 está ganhando força na indústria automotiva; sua arquitetura baseada em nós e o modelo de comunicação baseado em tópicos são especialmente atraentes para fabricantes com aplicações veiculares complexas e em constante evolução, como funcionalidades de condução autônoma.

  • 88. seL4

    Em veículos definidos por software (SDV) ou outros cenários críticos para a segurança, a estabilidade em tempo real do sistema operacional é crucial. Algumas empresas monopolizam esse campo devido às altas barreiras de entrada, por isso soluções de código aberto, como seL4, são preciosas. O seL4 é um micronúcleo de sistema operacional de alto desempenho e alta confiabilidade. Ele utiliza métodos de verificação formal para garantir, de forma matemática, que o comportamento do sistema operacional esteja em conformidade com a especificação. Sua arquitetura de micronúcleo também minimiza as responsabilidades principais para garantir a estabilidade do sistema. Temos acompanhado empresas de veículos elétricos como a NIO se envolverem com o ecossistema seL4, e pode haver mais desenvolvimentos nessa área no futuro.

  • 89. SetFit

    A maioria das ferramentas atuais baseadas em IA são generativas — elas geram textos e imagens utilizando transformadores pré-treinados generativos (GPTs) para esse fim. Para casos de uso que exigem trabalhar com textos existentes, como classificar trechos de texto ou determinar a intenção, os transformadores de sentença são a ferramenta de escolha. Nesse campo, SetFit é uma estrutura para o ajuste fino de transformadores de sentença. Gostamos do SetFit porque ele utiliza aprendizado contrastivo para separar diferentes classes de intenção umas das outras, frequentemente alcançando uma separação nítida com um número muito pequeno de exemplos, até mesmo 25 ou menos. Transformadores de sentença também podem desempenhar um papel em um sistema de IA generativa. Utilizamos com sucesso o SetFit para detecção de intenção em um sistema de chatbot voltado para a cliente que utiliza um LLM, e mesmo estando cientes da API de moderação da OpenAI, optamos por um classificador baseado no SetFit para realizar um ajuste fino adicional visando alcançar um filtro mais rigoroso.

  • 90. vLLM

    vLLM é um motor de inferência de alto rendimento e eficiente em termos de memória para LLMs que pode rodar na nuvem ou localmente. Suporta perfeitamente múltiplas arquiteturas de modelos e modelos populares de código aberto. Nossos times implementam agentes vLLM em contêineres Docker em plataformas GPU como NVIDIA DGX e Intel HPC, hospedando modelos como Llama 3.1(8B e 70B), Mistral 7B e Llama-SQL para assistência de desenvolvimento de código, busca de conhecimento e interação com banco de dados de linguagem natural. O vLLM é compatível com o padrão SDK da OpenAI, facilitando uma consistente entrega de modelos. O catálogo de modelos de IA da Azure usa um contêiner de inferência personalizado para aprimorar a performance na entrega de modelos, com o vLLM como motor de inferência padrão devido a sua alta taxa de transferência e eficiente gerenciamento de memória. O framework vLLM está se consolidando como padrão para implantações de modelos em larga escala.

Avalie ?

  • 91. Apache XTable™

    Entre os formatos de tabela abertos disponíveis que possibilitam lakehouses — como Apache Iceberg, Delta e Hudi — ainda não surgiu um vencedor. Em vez disso, identificamos ferramentas que possibilitam a interoperabilidade entre esses formatos. Delta UniForm, por exemplo, permite interoperabilidade unidirecional, possibilitando que clientes Hudi e Iceberg leiam tabelas Delta. Outro novo participante nesse espaço é o Apache XTable™, um projeto incubado pela Apache que facilita a interoperabilidade omnidirecional entre Hudi, Delta e Iceberg. Assim como o UniForm, ele converte metadados entre esses formatos sem criar uma cópia dos dados subjacentes. O XTable pode ser útil para equipes que estão experimentando com múltiplos formatos de tabela. No entanto, para uso a longo prazo, dadas as diferenças nas funcionalidades desses formatos, depender fortemente da interoperabilidade omnidirecional pode fazer com que as equipes acabem utilizando apenas o denominador comum de funcionalidades.

  • 92. dbldatagen

    Preparar dados de teste para engenharia de dados é um desafio significativo. Transferir dados do ambiente de produção para ambientes de teste pode ser arriscado, então as equipes muitas vezes dependem de dados falsos ou sintéticos. Neste Radar, exploramos abordagens inovadoras como dados sintéticos para teste e treinamento de modelos. Mas, na maioria das vezes, a geração procedural de baixo custo é suficiente. O dbldatagen (Databricks Labs Data Generator) é uma dessas ferramentas; é uma biblioteca Python para gerar dados sintéticos no ambiente Databricks para testes, benchmarks, demonstrações e outros usos. dbldatagen pode gerar dados sintéticos em grande escala, até bilhões de linhas em minutos, suportando vários cenários como múltiplas tabelas, captura de dados alterados e operações de mesclagem/junção. Ele lida bem com os tipos primitivos do Spark SQL, gera intervalos e valores discretos, além de aplicar distribuições específicas. Ao criar dados sintéticos usando o ecossistema Databricks, o dbldatagen é uma opção que vale a pena avaliar.

  • 93. DeepEval

    DeepEval é um framework de código aberto, baseado em Python, de avaliação do desempenho de LLMs. Você pode utilizar para avaliar a geração aumentada por recuperação (RAG) e outros tipos de aplicativos feitos com frameworks populares como LlamaIndex ou LangChain, bem como para estabelecer uma linha de base e benchmark quando você está comparando diferentes modelos para as suas necessidades. DeepEval oferece um conjunto abrangente de métricas e recursos para avaliar o desempenho de LLMs, incluindo detecção de alucinação, relevância de respostas e otimização de hiperparâmetros. Ele oferece integração com pytest e, além dessas asserções, você pode facilmente integrar a suíte de testes em uma pipeline de integração contínua. Se você está trabalhando com LLMs, considere experimentar o DeepEval para melhorar seu processo de testes e garantir a confiabilidade de suas aplicações.

  • 94. DSPy

    A maioria das aplicações baseadas em modelos de linguagem hoje depende de modelos de prompt ajustados manualmente para tarefas específicas. DSPy, um framework para desenvolver tais aplicações, adota uma abordagem diferente que dispensa a engenharia direta de prompts. Em vez disso, ele introduz abstrações de alto nível orientadas ao fluxo do programa através de módulos que podem ser sobrepostos, métricas para otimizar e dados para treinar/testar. Em seguida, otimiza os prompts e/ou pesos do modelo de linguagem subjacente com base nessas métricas definidas. O código resultante se assemelha muito ao treinamento de redes neurais com PyTorch. Achamos a abordagem que eles adotam inovadora por sua perspectiva diferente e acreditamos que vale a pena experimentar.

  • 95. Flutter para Web

    O Flutter é conhecido por seu suporte multiplataforma para aplicativos iOS e Android. Agora, ele se expandiu para mais plataformas. Avaliamos anteriormente o Flutter para Web — que nos permite construir aplicativos para iOS, Android e navegadores a partir da mesma base de código. Nem toda aplicação web faz sentido em Flutter, mas acreditamos que ele é particularmente adequado para casos como aplicativos web progressivos, aplicativos de página única e para a conversão de aplicativos móveis Flutter já existentes para a web. O Flutter já oferecia suporte ao WebAssembly (WASM) como um alvo de compilação em seu canal experimental, o que significava que estava em desenvolvimento ativo com possíveis bugs e problemas de performance. As versões mais recentes o tornaram estável. O desempenho das aplicações web em Flutter compiladas para o alvo WASM é muito superior ao de sua compilação para JavaScript. O desempenho quase nativo em diferentes plataformas é também uma das razões pelas quais muitas desenvolvedoras escolhem o Flutter inicialmente.

  • 96. kotaemon

    kotaemon é uma ferramenta e framework de código aberto baseada em RAG para desenvolver aplicativos de perguntas e respostas para documentos de base de conhecimento. Ele pode entender vários tipos de documentos, incluindo formatos PDF e DOC, e oferece uma interface web, baseada no Gradio, que permite às usuárias organizar e interagir com uma base de conhecimento por meio de chat. Ele possui pipelines RAG integradas com armazenamento de vetores e pode ser estendido com SDKs. O kotaemon também referencia os documentos fonte em suas respostas, além de fornecer pré-visualização na web e um pontuação de relevância. Para quem deseja criar uma aplicação de perguntas e respostas baseado em RAG, o framework personalizável é um ótimo ponto de partida.

  • 97. Lenis

    Lenis é uma biblioteca de rolagem suave, leve e poderosa, projetada para navegadores modernos. Ela permite experiências de rolagem suave, como sincronização de rolagem WebGL e efeitos de paralaxe, tornando-a ideal para equipes que criam páginas com interações de rolagem fluidas e contínuas. Nossas desenvolvedoras acharam Lenis simples de usar, oferecendo uma abordagem simplificada para criar rolagens suaves. No entanto, a biblioteca pode ter problemas de acessibilidade, principalmente com interações de rolagem vertical e horizontal, podendo confundir usuárias com deficiências. Embora visualmente atrativa, ela precisa de uma implementação cuidadosa para manter a acessibilidade.

  • 98. LLMLingua

    LLMLingua melhora a eficiência de LLMs ao comprimir prompts usando um pequeno modelo de linguagem para remover tokens não essenciais com perda mínima de desempenho. Essa abordagem permite que LLMs mantenham a capacidade de raciocínio e aprendizado contextual, enquanto processam prompts mais longos de forma eficiente, abordando desafios como eficiência de custos, latência de inferência e manejo de contexto. Compatível com vários LLMs sem necessidade de treinamento adicional e suportando frameworks como LLamaIndex, o LLMLingua é ideal para otimizar o desempenho de inferência de LLMs.

  • 99. Microsoft Autogen

    Microsoft Autogen é um framework de código aberto que simplifica a criação e orquestração de agentes de IA, permitindo a colaboração multi-agentes para resolver tarefas complexas. Ele suporta tanto fluxos autônomos quanto fluxos com interação humana, ao mesmo tempo que oferece compatibilidade com uma variedade de modelos de linguagem de grande escala (LLMs) e ferramentas para interação de agentes. Um de nossos times utilizou Autogen para uma cliente para construir uma plataforma com IA onde cada agente representava uma habilidade específica, como geração de código, revisão de código ou resumo de documentação. O framework permitiu que a equipe criasse novos agentes de forma contínua e consistente, definindo o modelo e o fluxo de trabalho corretos. Eles utilizaram o LlamaIndex para orquestrar o fluxo de trabalho. Embora o Autogen tenha se mostrado promissor, especialmente em ambientes de produção, ainda há preocupações em relação à escalabilidade e ao gerenciamento da complexidade à medida que mais agentes são adicionados. Uma avaliação mais aprofundada é necessária para avaliar sua viabilidade a longo prazo no escalonamento de sistemas baseados em agentes.

  • 100. Pingora

    Pingora é um framework Rust para criar serviços de rede rápidos, confiáveis e programáveis. Originalmente desenvolvido pela Cloudflare para resolver as deficiências do Nginx, o Pingora vem demonstrando um grande potencial, pois proxies mais novos, como o River, estão sendo criados com base nele. Embora a maioria de nós não enfrente um nível de escala como a do Cloudflare, encontramos cenários em que o roteamento flexível da camada de aplicativos é essencial para nossos serviços de rede. A arquitetura do Pingora nos permite aproveitar todo o poder do Rust nessas situações sem abandonar segurança ou desempenho.

  • 101. Ragas

    Ragas é um framework projetado para avaliar o desempenho de pipelines de geração aumentada por recuperação (RAG), que endereça o desafio de avaliar tanto os componentes de recuperação quanto de geração nesses sistemas. Ele fornece métricas estruturadas como fidelidade, relevância das respostas e utilização de contexto, que ajudam a avaliar a eficácia dos sistemas baseados em RAG. Nossas desenvolvedoras acharam o framework útil para realizar avaliações periódicas, com o objetivo de ajustar parâmetros como recuperações top-k e modelos de embedding. Algumas equipes integraram o Ragas em pipelines que são executados diariamente, sempre que o template do prompt ou o modelo muda. Embora suas métricas ofereçam insights sólidos, temos receio de que o framework possa não capturar todas as nuances e interações complexas dos pipelines RAG, e recomendamos considerar frameworks adicionais de avaliação. No entanto, Ragas se destaca por sua capacidade de simplificar a avaliação de RAG em ambientes de produção, oferecendo melhorias valiosas baseadas em dados.

  • 102. Score

    Muitas organizações que implementam suas próprias plataformas de desenvolvimento internas tendem a criar seus próprios sistemas de orquestração de plataforma para impor padrões organizacionais entre desenvolvedoras e suas equipes de hospedagem de plataforma. No entanto, as características básicas de uma plataforma de implantação de caminho pavimentado para hospedar cargas de trabalho em contêineres de maneira segura, consistente e compatível são semelhantes de uma organização para outra. Não seria bom se tivéssemos uma linguagem compartilhada para especificar esses requisitos? Score está demonstrando a promessa de se tornar um padrão neste espaço. É uma linguagem declarativa na forma de YAML que descreve como uma carga de trabalho em contêiner deve ser implantada e quais serviços e parâmetros específicos ela precisará para funcionar. Score foi originalmente desenvolvido pela Humanitec como a linguagem de configuração para seu produto Platform Orchestrator, mas agora está sob custódia da Cloud Native Computing Foundation (CNCF) como um projeto de código aberto. Com o apoio da CNCF, Score tem o potencial de ser mais amplamente utilizado além do produto Humanitec. Foi lançado com duas implementações de referência: Kubernetes e Docker Compose. A extensibilidade do Score esperançosamente levará a contribuições da comunidade para outras plataformas. Score certamente tem uma semelhança com a especificação modelo de aplicação aberto (OAM) para Kubevela, mas está mais focado na implantação de cargas de trabalho em contêineres do que no aplicativo inteiro. Também há uma sobreposição com SST, mas o SSI está mais preocupado com a implantação diretamente em uma infraestrutura de nuvem do que em uma plataforma de engenharia interna. Estamos observando o Score, com interesse, à medida que ele evolui.

  • 103. shadcn

    shadcn desafia o conceito tradicional de bibliotecas de componentes ao oferecer componentes reutilizáveis no estilo "copia-e-cola" que se tornam parte da sua base de códigos. Essa abordagem concede às equipes total propriedade e controle, permitindo uma customização e extensão mais fácil — áreas onde bibliotecas convencionais mais populares como MUI e Chakra UI frequentemente ficam aquém. Construído com Radix UI e Tailwind CSS, o shadcn se integra de forma simples em qualquer aplicação baseada em React, tornando-o uma boa opção para projetos que priorizam controle e extensibilidade. Ele inclui uma ferramenta de linha de comando para ajudar no processo de copiar e colar os componentes em seu projeto. Seus benefícios também incluem a redução de dependências ocultas e a prevenção de implementações fortemente acopladas, razões pelas quais o shadcn está ganhando força como uma alternativa atraente para equipes que buscam uma abordagem mais prática e adaptável para o desenvolvimento frontend.

  • 104. Slint

    Slint é um framework declarativo com interface gráfica para construir interfaces de usuário nativas para aplicativos Rust, C++ ou JavaScript. Embora seja um framework de interface multiplataforma com recursos importantes, como pré-visualização em tempo real, design responsivo de UI, integração com VS Code e uma experiência de usuária nativa, queremos destacar especialmente sua utilidade para sistemas embarcados. Equipes que desenvolvem aplicações embarcadas tradicionalmente enfrentam um número limitado de opções para desenvolvimento de interfaces, cada uma com suas próprias limitações. O Slint oferece o equilíbrio perfeito entre a experiência da pessoa desenvolvedora e o desempenho, utilizando uma linguagem de marcação fácil de usar, semelhante ao HTML, e compilando diretamente para código de máquina. Em tempo de execução, ele também possui um baixo consumo de recursos, o que é fundamental para sistemas embarcados. Em resumo, gostamos do Slint porque ele traz práticas comprovadas do desenvolvimento web e móvel para o ecossistema de sistemas embarcados.

  • 105. SST

    SST é um framework para implantação de aplicações em ambientes de nuvem juntamente com o provisionamento de todos os serviços que a aplicação precisa para ser executada. SST não é só uma ferramenta de IaC; é um framework com com uma API TypeScript que permite que você defina o ambiente de sua aplicação, um serviço que implanta sua aplicação quando acionado através de push do GIT, bem como uma interface gráfica de console para gerenciar a aplicação resultante e invocar os recursos de gerenciamento do SST. Embora o SST tenha sido originalmente baseado no AWS Cloud Formation e no CDK, sua versão mais recente foi implementada sobre o Terraform e o Pulumi. Então, na teoria, é agnóstico em relação à nuvem. O SST tem suporte nativo para a implantação de diversas estruturas de aplicativos da web padrão, incluindo Next.js e Remix, mas também oferece suporte a aplicações de API sem interface. O SST parece estar em uma categoria própria. Embora tenha alguma semelhança com ferramentas de orquestração de plataforma como o Kubevela, ele também fornece conveniências para pessoas desenvolvedoras, como um modo ao vivo que faz proxy de invocações do AWS Lambda de volta para uma função em execução na máquina local da pessoa desenvolvedora. No momento, o SST continua sendo uma curiosidade, mas é um projeto e uma categoria de ferramentas que vale a pena observar à medida que evolui.

Evite ?

Não encontrou algo que você esperava achar?

 

Cada edição do Radar inclui blips que refletem nossas experiências nos seis meses anteriores. Talvez já tenhamos falado sobre o que você procura em um Radar anterior. Às vezes, deixamos coisas de fora simplesmente porque há muitas a serem abordadas. Também pode faltar um tópico específico porque o Radar reflete nossa experiência, não se baseando em uma análise abrangente do mercado.

Baixe o PDF

 

 

 

English | Español | Português | 中文

Inscreva-se para receber o boletim informativo Technology Radar

 

 

Seja assinante

 

 

Visite nosso arquivo para acessar os volumes anteriores