Questão nº 35
Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 35)
Os arquitetos de um projeto estão indecisos entre utilizar a tecnologia JavaScript com Node.js ou Java com o framework J2EE.
Assinale a opção que compara corretamente os dois utilitários de gerenciamento, NPM (Node.js) e Maven(J2EE).
- AA velocidade de build e gerenciamento de dependências do Maven pode variar mas, apesar do NPM se sair melhor em termos de instalação de pacotes ele não tem comandos para disparar os servidores
- BNPM não pode ser usado em todos os tipos de Projetos por outro lado Maven é excelente para lidar com projetos multi-módulo, permitindo uma gestão eficiente de submódulos e dependências entre eles.
- CMaven não tem recursos de instalação de pacotes ou módululos mas o NPM facilita a execução de scripts personalizados definidos em package.json, proporcionando flexibilidade para automatizar tarefas de desenvolvimento e build.
- DNPM tem uma curva de aprendizado menor em comparação com o Maven, tornando-o mais acessível para iniciantes e Maven não pode ser usado para desenvolvimento frontend moderno, ao contrário do NPM que está diretamente ligado ao ecossistema frontend.
- ENPM é integrado de forma nativa ao ecossistema JavaScript, oferecendo acesso imediato a uma vasta gama de pacotes JS e Node.js, por outro lado, Maven permite um controle mais fino sobre as versões de dependências e sua resolução, incluindo o gerenciamento de dependências transitivas. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
NPM (Node Package Manager) é a ferramenta padrão para gerenciar bibliotecas e pacotes no mundo JavaScript e Node.js, como uma "loja de apps" para seu código. Já o Maven é uma ferramenta robusta para projetos Java, que organiza o código, baixa as bibliotecas necessárias e ajuda a construir o projeto.
- (A) Incorreta: A afirmação de que o NPM não tem comandos para disparar servidores é falsa. O NPM é amplamente utilizado para executar scripts definidos no
package.json, que frequentemente incluem comandos para iniciar servidores de desenvolvimento ou produção. - (B) Incorreta: Embora o NPM seja focado no ecossistema JavaScript, ele é extremamente versátil e usado em muitos tipos de projetos (frontend, backend, ferramentas CLI). A afirmação de que "não pode ser usado em todos os tipos de Projetos" é muito generalista e imprecisa.
- (C) Incorreta: A afirmação de que "Maven não tem recursos de instalação de pacotes ou módulos" é falsa e a armadilha da banca. O Maven é, por excelência, um gerenciador de dependências, e sua principal função é justamente baixar e gerenciar pacotes (JARs) e módulos necessários para um projeto Java. A segunda parte sobre NPM está correta, mas a primeira invalida a alternativa.
- (D) Incorreta: A afirmação de que "Maven não pode ser usado para desenvolvimento frontend moderno" é falsa. Embora o Maven não gerencie diretamente dependências JavaScript, ele é frequentemente usado em projetos Java (como Spring Boot) para orquestrar o build do backend e pode integrar ferramentas de frontend (que usam NPM) através de plugins, fazendo parte do fluxo de desenvolvimento frontend moderno.
- (E) Correta: O NPM é de fato o coração do ecossistema JavaScript, dando acesso fácil a uma vasta biblioteca de pacotes. Por outro lado, o Maven é conhecido por seu controle detalhado sobre as dependências, incluindo a resolução de dependências transitivas (dependências das suas dependências) e a capacidade de gerenciar suas versões de forma muito precisa, o que é crucial em projetos Java complexos.
Fonte: FGV ALEP 2024 Analista Legislativo - Desenvolvedor de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.