Pular para conteúdo

title = "ADR - 01" date = "2025-09-22T12:20:00-03:00" weight = 50


Escolha de TypeScript para Front-end e Back-end

Status

Aceita

Contexto

O projeto Integralizei UnB envolve desenvolvimento de SPA (Single-Page Application) para front-end e lógica de backend integrando APIs externas e banco de dados.

Duas opções principais foram consideradas para a linguagem de desenvolvimento: 1. Python: excelente para prototipagem, processamento de dados e integrações rápidas. 2. TypeScript (com Next.js e Node.js): oferece tipagem estática, unificação de front-end e back-end e forte suporte para aplicações web modernas.

Decisão

Optamos por TypeScript para todo o projeto, tanto no front-end quanto no back-end. As mudanças necessárias de linguagem serão aplicadas futuramente.

Motivos: - Unificação da stack: front-end e back-end usam a mesma linguagem, facilitando manutenção e aprendizado da equipe. - Tipagem estática: reduz bugs comuns relacionados a tipos de dados, aumentando confiabilidade e segurança do código. - Integração com Next.js: permite desenvolvimento de SPA com SSR (Server-Side Rendering), simplificando roteamento e otimização de performance. - Produtividade e manutenibilidade: maior consistência no código, refatoração segura e melhor suporte a IDEs.

Consequências

  • Prós:
  • Código mais consistente e seguro.
  • Maior produtividade da equipe e facilidade para novos membros.
  • Melhor integração com ferramentas web modernas (Next.js, React, Zustand).

  • Contras:

  • Menor familiaridade da equipe com TypeScript em relação a Python.
  • Algumas bibliotecas de processamento de dados mais avançadas podem estar mais maduras em Python.

Notas

A escolha do TypeScript reflete uma prioridade de unificação da stack, produtividade e manutenção de longo prazo, mesmo que sacrifiquemos algumas facilidades do Python em análise de dados.