A nova edição do Radar Tecnológico da ThoughtWorks, assim como nas edições anteriores, cobre tecnologias em quatro áreas: Linguagens e Frameworks, Plataformas, Técnicas e Ferramentas. Os itens são categorizados em quatro anéis de recomendação dos quadrantes: Adote (Adopt), Experimente (Trial), Avalie (Assess) e Espere (Hold). Nesta notícia é mencionado somente os itens que, na visão do editor, são novidades e merecem destaque.
Linguagens e Frameworks
Adote: o Ember.js é recomendado para Single-Page Applications (SPA) devido sua produtividade, e o Redux, que foi removido de Trial onde estava há 6 meses, provando ser uma ferramenta importante em diversos projetos da ThoughtWorks.
Experimente: o Enzyme para rápidos testes de interface gráfica, o Phoenix por facilidade de uso e velocidade, e o Quick e Nimble para escrever testes unitários muito legíveis (com blocos de descrição) para Swift e Objective-C.
Avalie: uma série de frameworks e linguagens são recomendados para avaliação, incluindo ECMAScript 2017, JuMP, Physical Web, Rapidoid, ReSwift, Three.js, Vue.js and WebRTC; apareceram pela primeira vez no radar.
Espere: O AngularJS v1.x que está no radar desde julho de 2014 foi colocado em "Espere" para novos projetos, o que significa "proceda com cautela", os autores do radar preferem Ember, React ou Redux por velocidade e manutenibilidade do código. O curioso é que não é mencionado nada sobre Angular 2.0.
Plataformas
Adote: o uso do HTTP Strict Transport Security (HSTS) é recomendado para páginas evitarem o ataque de downgrade, e o Linux security modules é útil para evitar algumas vulnerabilidades de segurança.
Experimente: o Auth0 é sugerido pela facilidade de integração, e pelo número de protocolos e conectores suportados e por possuir um rica API de gerenciamento, já o Unity é visto como uma boa plataforma para criação de experiências VR e AR.
Avalie: a ThoughtWorks recomenda as seguintes plataformas para serem avaliadas: AWS Application Load Balancer, Electron, Ethereum, HoloLens, IndiaStack, Nuance, OpenVR, Tarantool e wit.ai. Cassandra é recomendado com moderação.
Espere: utilizar somente o CMS como plataforma não é recomendado para grandes aplicações. E API gateways ambiciosos incentivam projetos que são "difíceis de testar e implantar", gateways podem fornecer authentication e rate-limiting, mas qualquer regra de negócio não deveria estar presente no gateway.
Técnicas
Adote: Mesmo sendo uma nova aparição no radar, "Pipelines as code" fez sua estréia no topo porque é “a definição da pipeline de deployment através de código ao invés de configurar sua ferramenta CI/CD”. As ferramentas existentes são LambdaCD, Drone, GoCD, GoMatic e Concourse.
Experimente: a técnica de APIs as a product é interessante porque trata as APIs como um produto, mesmo quando o consumidor é um sistema interno. As equipes que constroem APIs devem entender as necessidades de seus clientes e construir um produto atraente e não um simples serviço de integração. O Lightweight Architecture Decision Records é a técnica para armazenar importantes decisões arquiteturais, juntamente com seu contexto e consequências, e embora seja comum armazenar este tipo de informação em Wiki, a ThoughtWorks recomenda o armazenamento diretamente no repositório do projeto.
Avalie: As poucas técnicas sugeridas para avaliação são: Client-directed Query, Container Security Scanning, Differential Privacy, Micro Front-ends. Esta última técnica é o desenvolvimento front-end análogo à arquitetura de microserviços. Páginas ou funcionalidades de um website são delegadas para pequenas equipes de desenvolvedores do início ao fim.
Espere: Nesta categoria é encontrado o "Anemic REST" que significa o desenvolvimento ingênuo de serviços que simplesmente somente expõem modelos de dados estáticos e hierárquicos via URLs.
Ferramentas
Como esperado, este é o quadrante mais dinâmico do radar, tendo diversas adições e mudanças nas recomendações.
Adote: Babel (um compilador JavaScript) e Graphana (ferramenta para criar dashboards) já estão no topo em suas primeiras aparições no radar.
Experimente: Fastlane, Galen, JSONassert, Pa11y, Talisman, e tmate também são novas adições que são recomendadas para experimentar em projeto que seja capaz de gerenciar o risco no caso dessas tecnologias não irem bem ao longo do tempo.
Avalie: Android-x86, Axios, Bottled Water (um ferramenta de streaming), Clojure.spec, FBSnapshotTestcase (testes com uso de screenshot em aplicativos iOS) e Scikit-learn (uma biblioteca Python de machine learning) são as novas adições nesta categoria.
Espere: a ThoughtWorks recomenda parar com uso do Jenkins para "deployment pipeline" porque a ferramenta não foi desenvolvida para isso. Outras opções mais adequadas são ConcourseCI, LambdaCD, Spinnaker, Drone ou GoCD.
Para mais detalhes, acesse a página do Radar ThoughtWorks.