Wiki do Grupo TCS

A central de informações do Grupo TCS, editável por todos.

Ferramentas do usuário

Ferramentas do site


guia_de_arquitetura

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:

  • Git (obrigatório) (Site) - Software de controle de versão
  • Visual Studio Code (recomendado) (Site) - Editor de texto poderoso e extensível.
  • Docker (recomendado) (Manual de instalação no Ubuntu) - Containers multi-propósito para auxiliar na padronização de ambientes de trabalho dentro do time de desenvolvimento.
  • Docker Compose (recomendado) (Manual de instalação no Ubuntu) - Facilita a utilização do docker.

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

  • Vue.js Extension Pack
  • ESLint
  • Prettier - Code formatter
  • EditorConfig for VS Code
  • GitLens — Git supercharged

Front-end

  • Vue.js 3 (Site) - Framework para interfaces web extremamente poderoso e simples de usar.
  • NuxtJS 3 (Site) - Framework para Vue 3 que garante melhor qualidade de vida para o desenvolvedor, simplificando muito operações simples do dia a dia.
  • Vuetify (opcional) (Site) - Biblioteca de componentes para Vue, que segue o material design e deixa o processo de desenvolvimento de sistemas bem mais rápido. Em 11/05/2022 a versão com suporte para o Vue 3 ainda está em beta.

Back-end

  • NodeJS LTS mais recente (Site) - Runtime JavaScript para o backend. Para instalá-lo no Linux (ou WSL) é recomendável usar o nvm. Existem alternativas para Windows, que estão listadas na página do projeto do nvm.

Logo do Node.js

Projetos em JavaScript

  • express - Framework simples para criação de aplicações web.
  • sequelize - ORM com suporte para diversos bancos de dados.

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

  • NestJS - Um framework extremamente poderoso e abrangente.
  • sequelize-typescript (opção mais conservadora) - Adaptação do Sequelize para TypeScript.
  • typeorm (Site) (opção mais arrojada) - ORM muito poderoso escrito em TypeScript, com suporte a diversos bancos de dados, porém ainda não utilizado pela TCS em nenhum projeto.

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:

  • AWS (mais caro), para serviços gerenciados, ou caso o restante da infraestrutura do projeto já esteja lá.
  • Vultr (mais barato), para máquinas de uso geral, armazenamento de blocos e demais serviços não gerenciados.

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.

guia_de_arquitetura.txt · Última modificação: 13/05/2022 10:38 por admin