ir para o conteúdo
Wiki do Grupo TCS
A central de informações do Grupo TCS, editável por todos.
Ferramentas do usuário
Entrar
Ferramentas do site
Pesquisar
Ferramentas
Mostrar página
Iniciar discussão
Revisões anteriores
Links reversos
Alterações recentes
Gerenciador de mídias
Índice
Entrar
>
Alterações recentes
Gerenciador de mídias
Índice
Visitou:
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 [[https://docs.microsoft.com/pt-br/windows/wsl/install|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) ([[https://git-scm.com|Site]]) - Software de controle de versão * Visual Studio Code (recomendado) ([[https://code.visualstudio.com|Site]]) - Editor de texto poderoso e extensível. * Docker (recomendado) ([[https://docs.docker.com/engine/install/ubuntu|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) ([[https://docs.docker.com/compose/install|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 ([[https://vuejs.org|Site]]) - Framework para interfaces web extremamente poderoso e simples de usar. * NuxtJS 3 ([[https://v3.nuxtjs.org|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) ([[https://vuetifyjs.com|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 ([[https://nodejs.org|Site]]) - Runtime JavaScript para o backend. Para instalá-lo no Linux (ou WSL) é recomendável usar o [[https://github.com/nvm-sh/nvm|nvm]]. Existem alternativas para Windows, que estão listadas na página do projeto do nvm. {{ ::arquivo:node_logo.png?150 |Logo do Node.js}} ==== Projetos em JavaScript ==== * [[npm>express]] - Framework simples para criação de aplicações web. * [[npm>sequelize]] - ORM com suporte para diversos bancos de dados. Também é possível usar o [[npm>typeorm]] ([[https://typeorm.io/?path=usage-with-javascript|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 ==== * [[https://nestjs.com|NestJS]] - Um framework extremamente poderoso e abrangente. * [[npm>sequelize-typescript]] (opção mais conservadora) - Adaptação do Sequelize para TypeScript. * [[npm>typeorm]] ([[https://typeorm.io|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 [[https://www.postgresql.org|PostgreSQL]] ou suas variações, como o [[https://www.timescale.com|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: * [[https://aws.amazon.com|AWS]] (mais caro), para serviços gerenciados, ou caso o restante da infraestrutura do projeto já esteja lá. * [[https://www.vultr.com|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 ([[https://cloudflare.com|Site]]) para gerenciar o DNS destes domínios. O Cloudflare é um serviço gratuito, com ferramentas muito poderosas e rápidas, como [[wp>DNS]], [[wp>Rede de fornecimento de conteúdo|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 [[projeto:bamin|SGS da BAMIN]] ou o [[projeto:utilities|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
Ferramentas da página
Mostrar página
Iniciar discussão
Revisões anteriores
Links reversos
Voltar ao topo