Tabela de conteúdos

Guia de arquitetura

Nesta página serão listadas sugestões para arquitetura de sistemas, incluindo ferramentas de desenvolvimento, frameworks, bibliotecas, serviços e ferramentas de deploy, e qualquer outra coisa pertinente ao tópico. Também serão listadas páginas com documentação interna sobre estes serviços.

Sistema operacional e ferramentas

Para desenvolver os sistemas da TCS é recomendável utilizar Linux, seja com uma instalação nativa ou através do Windows Subsystem for Linux (WSL) dentro do Windows. Para instruções de instalação do WSL, acesse esta página de ajuda da Microsoft. A distribuição Linux recomendada é a Ubuntu 20.04 ou a versão LTS mais recente, pela sua estabilidade e compatibilidade.

As seguintes ferramentas também são necessárias ou recomendadas:

Dentro do Visual Studio Code é recomendado instalar as seguintes extensões:

Front-end

Back-end

Logo do Node.js

Projetos em JavaScript

Também é possível usar o typeorm (Manual) como ORM, pois ele agora oferece suporte a JavaScript. Pode ser uma boa alternativa para projetos novos com tempo o suficiente disponível.

Projetos em TypeScript

Banco de dados

O banco de dados recomendado para uso na maioria dos projetos é o PostgreSQL ou suas variações, como o TimeScaleDB. O PostgreSQL é um banco de dados relacional open-source, completo e muito sólido, sendo uma ótima opção para uso geral.

Infraestrutura de nuvem

Para hospedar projetos na nuvem é necessário escolher um provedor de hospedagem. Esta escolha deve ser feita ponderando o orçamento e o tempo disponível para o projeto, pois quanto menor a quantidade de intervenção manual necessária na configuração e manutenção da nuvem, maior o seu custo. Isto é, um serviço gerenciado é bem mais caro do que uma máquina de uso geral, porém evita o trabalho de gerenciamento do serviço. As seguintes plataformas em nuvem são recomendadas:

Para registrar os domínios, qualquer provedor é suficiente, porém é extremamente recomendado utilizar o Cloudflare (Site) para gerenciar o DNS destes domínios. O Cloudflare é um serviço gratuito, com ferramentas muito poderosas e rápidas, como DNS, CDN, serviço de redirecionamento de e-mails, entre outros.

Lista de projetos

Um bom jeito de começar é checar alguns projetos de referência disponíveis nos repositórios da empresa. Como por exemplo, o SGS da BAMIN ou o Utilities da Usiminas. A lista de todos os projetos documentados nesta wiki pode ser visto na página de projetos.