Pular para o conteúdo

Conceitos

O @aws/nx-plugin é um plugin do Nx que fornece um conjunto de ferramentas para simplificar o processo de construção e implantação de aplicações full-stack na AWS. Ele oferece aos desenvolvedores modelos pré-configurados para códigos de aplicação e IaC, reduzindo significativamente o tempo gasto em configuração inicial. O plugin gerencia a complexidade da integração com serviços AWS mantendo flexibilidade para personalizações.

Os usuários simplesmente escolhem quais componentes desejam na lista de Geradores disponíveis, fornecem opções de configuração e deixam o @aws/nx-plugin gerar o código inicial necessário. Vários geradores existem neste kit, capazes de criar APIs, websites, infraestrutura e até realizar tarefas mais complexas como integrar frontend a backend (incluindo atualizações de arquivos via transformações AST!) com clientes type-safe.

generator

Construído sobre o Nx

O Nx é um framework de build inteligente que gerencia projetos poliglotas complexos através de dois pilares: um sistema de build inteligente e geradores de código.

O sistema de build utiliza cache avançado e análise de grafos de dependência para otimizar a execução de tarefas. Ele reconstrói apenas o necessário com base em alterações de código, reduzindo drasticamente os tempos de build. Tarefas são executadas em paralelo, com o Nx determinando automaticamente a ordem ideal de execução baseada em dependências. Isso torna operações como testes, linting e builds altamente eficientes, especialmente em bases de código grandes.

Geradores funcionam como ferramentas de scaffolding automatizado que criam estruturas de código consistentes. Eles podem produzir desde componentes individuais até aplicações completas, seguindo templates e padrões pré-definidos. Equipes podem personalizar esses geradores para atender requisitos específicos e padrões de codificação.

Juntos, esses recursos tornam o Nx especialmente eficaz para gerenciar monorepos e garantir práticas de desenvolvimento consistentes entre equipes, mantendo alta velocidade de desenvolvimento.

Geradores

Todos os componentes disponíveis neste plugin são implementados como Geradores que automatizam tarefas repetitivas e permitem scaffolding consistente em projetos novos e existentes.

Geradores podem ser invocados via CLI do Nx ou plugin IDE Nx Console.

generators

Aberto para modificações

Todo o código gerado é seu, podendo ser editado livremente. Isso simplifica drasticamente a experiência do desenvolvedor, pois se algo não agradar no código gerado, você pode modificá-lo diretamente.

Dependências mínimas

O @aws/nx-plugin busca manter o número de dependências no mínimo, portanto os requisitos globais dependem apenas dos geradores utilizados.

Por exemplo, geradores baseados em Typescript exigem apenas Node. Para projetos Python, o único requisito é o UV.

Política de versão única

A configuração padrão de monorepo usa uma política de versão única para projetos Node e Python.

Isso significa que todos os projetos no monorepo usam a mesma versão de dependências por padrão, reduzindo problemas de incompatibilidade entre pacotes.

Para Node: um único lockfile na raiz com um único node_modules contendo todas as dependências. Novas dependências são adicionadas no package.json raiz.

Para Python: um único .venv na raiz do monorepo. Cada projeto Python tem seu próprio pyproject.toml, mas as versões são gerenciadas pelo workspace do uv e registradas no arquivo uv.lock raiz.

Type safety

O @aws/nx-plugin emprega type-safety para simplificar a experiência do desenvolvedor via autocompletar do IDE, eliminando erros que só ocorreriam em runtime em implementações não type-safe. Todos os componentes fornecidos são type-safe por padrão.

generators