Menu

ADOTE?

    EXPERIMENTE?

    • Arrow é uma biblioteca de programação funcional para Kotlin, criada a partir da fusão de duas bibliotecas populares já existentes (kategory e funKTionale). Enquanto Kotlin fornece peças para a programação funcional, Arrow entrega para pessoas desenvolvedoras de aplicações um pacote de abstrações de alto nível pronto para uso. Ele fornece tipos de dados, tyope classes, effects, optics e outros padrões de programação funcional, assim como integração com bibliotecas populares. Nossas impressões positivas iniciais do Arrow foram confirmadas quando o usamos para construir aplicações que estão agora em produção.

      Histórico
    • Muitos de nossos times usam Flutter e realmente gostam. É um framework multiplataforma que permite que você escreva aplicativos mobile nativos em Dart. Ele se beneficia do Dart, pode ser compilado para código nativo e se comunica com a plataforma-alvo sem bridge e mudança de contexto. A funcionalidade de hot reload é impressionante e fornece feedback visual super-rápido quando editamos código. Estamos confiantes em recomendar que você experimente o Flutter em algum de seus projetos.

      Histórico
    • jest-when é uma biblioteca leve em JavaScript que complementa a Jest combinando argumentos na chamada de funções mock. Jest é uma ótima ferramenta para testar a stack, e jest-when permite que você espere argumentos específicos para funções mock. Dessa forma, permite que você escreva teste unitários de módulos com muitas dependências mais robustos.

      Histórico
    • Micronaut é um framework JVM para criação de serviços usando Java, Kotlin ou Groovy. Ele se distingue por seu consumo pequeno de memória e sua rápida inicialização. Ele consegue essas melhorias ao evitar o uso de reflexão em tempo de execução para injeção de dependência (DI) e geração de proxy, o que é comum em frameworks tradicionais. Em vez disso, usa um contêiner DI/AOP, que executa a injeção de dependência no momento da compilação. Isso o torna atrativo não apenas para microsserviços tradicionais implantados em servidores, como também no contexto de, por exemplo, Internet das Coisas (IoT), aplicativos Android e funções sem servidor. O Micronaut é uma opção de entrada muito promissora para o espaço dos frameworks full-stack para a plataforma JVM, e o estamos vendo em cada vez mais projetos em produção, o que nos leva a movê-lo para o anel Experimente.

      Histórico
    • No começo deste ano, o React Hooks foi introduzido ao popular framework JavaScript. Eles tornaram possível usar estado e outras funcionalidades do React sem escrever uma classe, oferecendo uma abordagem mais limpa do que componentes de ordem superior ou render-props para casos de uso. Bibliotecas, tais como Material UI e Apollo já mudaram para o Hooks. Há alguns problemas com testes Hooks, principalmente com Enzyme, que contribuíram para nossa reavaliação da Enzyme como escolha de ferramenta.

      Histórico
    • O mundo do JavaScript se move muito rápido e, à medida que ganhamos mais experiência usando um framework, nossas recomendações mudam. A Biblioteca de Testes para React é um bom exemplo de um framework que, com profundo uso, ocultou as alternativas para se tornar o padrão mais razoável para testes de frontend baseados em React. Nossos times gostam do fato de que teste escritos com esse framework são menos frágeis do que com frameworks alternativos, como o Enzyme, porque ele te encoraja a testar relações de componentes individualmente, em vez de testar todos os detalhes de implementação.

      Histórico
    • Usar componentes estilizados torna possível adicionar o CSS necessário para estilizar um componente React diretamente no código JavaScript que cria o componente. Isso reduz enormemente o sofrimento com gerenciamento de CSS e evita a necessidade de convenções de nomenclatura ou outro meio de evitar conflitos de nomenclatura em CSS. Pessoas desenvolvedoras podem ver a estilização ao olharem para a definição do componente e não é necessário memorizar vários megabytes de CSS. Claro, colocar o CSS dentro do código JavaScript pode dificultar a obtenção de uma visão consistente da estilização de diferentes componentes, por isso recomendamos entender as vantagens e desvantagens dessa abordagem.

      Histórico
    • Com seu lançamento 2.0, o TensorFlow mantém sua proeminência como o framework de aprendizado de máquina líder da indústria. O TensorFlow começou como um pacote de processamento numérico que gradualmente se expandiu para incluir bibliotecas que suportavam uma variedade de abordagens de aprendizado de máquina e ambientes de execução, variando de CPU mobile para grandes clusters de GPU. Ao longo do caminho, uma grande quantidade de frameworks ficou disponível para simplificar as tarefas de criação de redes e treinamento. Ao mesmo tempo, outros frameworks, notadamente o PyTorch, ofereciam um modelo de programação crucial que deixavam o debugging e execução mais simples e mais fáceis. O TensorFlow 2.0 agora tem como padrão o fluxo imperativo (execução eager) e adota a Keras como única API de alto nível. Embora essas mudanças modernizem a usabilidade do TensorFlow e o deixem mais competitivo com o PyTorch, é uma reescrita significativa que muitas vezes tem problemas de compatibilidade – muitas ferramentas e frameworks auxiliares no ecossistema do TensorFlow não funcionarão imediatamente com a nova versão. Por enquanto, considere se você quer projetar e experimentar no TensorFlow 2.0, mas reverta para a versão 1 para executar seus modelos em produção.

      Histórico

    AVALIE?

    • Fairseq é um conjunto de ferramentas de modelagem Seq2Seq do time de Pesquisa de IA do Facebook, que permite que pesquisadores e desenvolvedores treinem modelos personalizados para tradução, sumarização, modelagem de linguagem e outras tarefas de NLP (processamento de linguagem natural). Para usuários de PyTorch, é uma boa escolha. Ele fornece implementações de referência de vários modelos Seq2Seq, suporta treinamento distribuído por múltiplos GPUs e máquinas, é bastante extensível e tem vários modelos pré-treinados, incluindo RoBERTa, que é uma otimização em cima do BERT.

      Histórico
    • Flair é um framework simples baseado em Python para processamento de NLP. Permite aos usuários executarem tarefas de NLP padrão, tais como reconhecimento de entidade mencionada (NER), marcação de parte do discurso (PoS), classificação e desambiguação do sentido da palavra, e tem um bom desempenho com uma gama de tarefas NLP. O Flair apresenta uma interface simples e unificada para uma variedade de palavras e documentos incorporados, incluindo BERT, Elmo e suas próprias incorporações Flair. Também tem suporte multi-idioma. O framework em si é construído em cima do PyTorch. Estamos usando em alguns de nossos projetos e gostamos da sua facilidade de uso e abstrações poderosas.

      Histórico
    • Gatsby.js é um framework para escrever aplicações para web em um estilo de arquitetura conhecido como JAMstack. Parte da aplicação é gerada em tempo de build e implantada como um site estático, enquanto o restante da funcionalidade é implementado como uma aplicação web progressiva (PWP) rodando no navegador. Tais aplicações trabalham sem o código rodando no lado do servidor. Normalmente, no entanto, a aplicação web progressiva faz chamadas para APIs e soluções SaaS de terceiros para gerenciamento de conteúdo, por exemplo. No caso do Gatsby.js, todo o código do cliente e do tempo de compilação é escrito usando React. O framework inclui algumas otimizações pra deixar a aplicação web mais rápida. Fornece código e divisão de dados out-of-the-box para minimizar tempo de carregamento e acelera a performance quando navegando na aplicação utilizando pré-carregamento. APIs são requisitadas via GraphQL e vários plugins simplificam a integração com serviços existentes.

      Histórico
    • Temos visto muitas implementações bem-sucedidas com GraphQL em nossos projetos. Temos vistos também alguns padrões de uso interessantes, incluindo GraphQL para agregação de recursos do lado do servidor. Dito isso, nos preocupamos com o uso equivocado desse framework e alguns dos problemas que podem ocorrer. Exemplos incluem problemas de performance com consultas N+1 e um excesso de código necessário quando adicionamos novos modelos, levando à complexidade. Há maneiras de se contornar esses problemas, como por exemplo o uso de cache de consulta. Mesmo que GraphQL não seja uma solução mágica, ainda achamos que é válido avaliar como parte de sua arquitetura.

      Histórico
    • KotlinTest é uma ferramenta autônoma de testes para o ecossistema Kotlin, da qual nossos times gostaram. Ela permite testes baseados em propriedade, uma técnica que destacamos no Radar anterior. As principais vantagens são sua oferta variada de estilos de teste para estruturar as suítes de teste e seu conjunto abrangente de matchers, o que permite testes expressivos em uma elegante DSL interna.

      Histórico
    • NestJS é um framework Node.js do lado do servidor escrito em TypeScript. Ao integrar a rica ecologia da comunidade Node.js, o NestJS fornece uma arquitetura de aplicação out-of-the-box. O modelo mental para desenvolver em NestJS é similar à versão do lado do servidor do Angular ou da versão TypeScript do Spring Boot, então a curva de aprendizado para pessoas desenvolvedoras é baixa. O NestJS suporta protocolos como GraphQL, Websocket e bibliotecas ORM.

      Histórico
    • Ao usar HTML e tecnologias relacionadas para produzir livros e outros impressos, a questão da paginação deve ser considerada. Isso inclui contadores de páginas, elementos repetidos no cabeçalho e rodapé, assim como mecanismos para evitar quebras de página estranhas. Paged.js é uma biblioteca de código aberto que implementa uma série de polyfills para módulos de CSS para mídia paginada e conteúdo gerado para mídia paginada. É ainda experimental, mas preenche um espaço importante na história “escreva uma vez, publique em todos os lugares” para HTML.

      Histórico
    • Quarkus é um framework com foco em contêineres, nativo de nuvem, criado pela Red Hat para aplicações escritas em Java. Tem um tempo de inicialização muito rápido (dezenas de milissegundos) e utiliza pouca memória, o que o torna um bom candidato para FaaS ou frequente escalonamento para cima ou para baixo em um orquestrador de contêiner. Assim como o Micronaut, o Quarkus consegue isso usando técnicas de compilação à frente do tempo para fazer injeção de dependência no momento da compilação e evitar os custos de execução de reflexão. Ele também funciona bem com o Native Image do GraalVM, que reduz ainda mais o tempo de inicialização. O Quarkus suporta tanto modelos imperativos como reativos. Junto com o Micronaut e o Helidon, Quarkus está liderando a nova geração de frameworks Java, que tentam resolver a performance de inicialização e memória sem sacrificar a eficácia de desenvolvimento. Ganhou muita atenção da comunidade e vale a pena observar de perto.

      Histórico
    • A Apple deu um passo enorme em direção ao seu novo framework SwiftUI para implementar interfaces de usuário em plataformas macOS e iOS. Gostamos do fato de que SwiftUI vai além da relação um tanto quanto deselegante entre Interface Builder e XCode e adota uma abordagem coerente, declarativa e centrada no código. Você agora pode ver seu código e a interface visual resultante lado a lado no XCode 11, tornando a experiência de desenvolvimento muito melhor. O framework SwiftUI também traz inspiração do mundo do React.js, que tem dominado o desenvolvimento web nos últimos anos. Valores imutáveis em modelos de visualização e um mecanismo de atualização assíncrono criam um modelo de programação reativo unificado. Isso dá às pessoas desenvolvedoras uma alternativa totalmente nativa para frameworks reativos similares, tais como React Native ou Flutter. Apesar de SwiftUI definitivamente representar o futuro do desenvolvimento UI da Apple, é bem novo e levará tempo para lapidar as arestas. Esperamos por uma documentação melhorada e uma comunidade de pessoas desenvolvedoras que possa estabelecer um conjunto de práticas para testes e abordar outras preocupações de engenharia.

      Histórico
    • Criar ambientes confiáveis para executar testes automatizados é um problema perene, particularmente porque o número de componentes de que os sistemas modernos dependem continuam aumentando. Testcontainers é uma biblioteca Java que ajuda a mitigar esse desafio ao gerenciar dependências ‘dockerizadas’ para seus testes. Isso é particularmente útil para gerar instâncias de base de dados repetíveis ou infraestrutura similar, mas também pode ser usada em navegadores web para testes UI. Nossos times consideram essa biblioteca útil para deixar testes de integração mais confiáveis com esses contêineres programáveis, leves e descartáveis.

      Histórico

    EVITE?

    • Nós nem sempre movemos ferramentas descontinuadas para Evite no Radar, mas nossos times sentem que a Enzyme foi substituída na construção de testes de unidade de componentes UI React pela Biblioteca de Teste React. Times usando Enzyme acham que seu foco nos testes de componentes internos leva a testes frágeis e insustentáveis.

      Histórico
    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 estar faltando um tópico específico porque o radar reflete nossa experiência, não se baseando em uma análise abrangente do mercado.

    Novo ou modificado,Sem modificação