Skip to content

Commit

Permalink
Merge pull request #29 from unb-mds/docs/issue-28/estudo-sobre-ambien…
Browse files Browse the repository at this point in the history
…te-de-desenvolvimento

docs(estudos): cria o estudo sobre ambiente de desenvolvimento
  • Loading branch information
leohssjr authored Nov 18, 2024
2 parents 3030946 + 58b1b7e commit a11f5b6
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions docs/estudos/coelhos/ambiente-de-desenvolvimento.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## O que é um ambiente de desenvolvimento?

O ambiente de desenvolvimento nada mais é do que a criação das pasta onde ficará o nosso código.

**Por exemplo:** Criar uma pasta `front-end`, `back-end` e `scraper` dentro da pasta principal projeto, pois lá que os desenvolvedores irão trabalhar criando as *features* do projeto.

A criação de pastas `front-end`, `back-end` e `scraper` são feitas na mesma pasta, já que nosso projeto deve ser estar inteiro no mesmo repositório do github. Isso facilita na hora de rodar o código inteiro e realizar alterações rápidas.

Além disso, cada pasta deve ter suas dependências necessárias para rodar o código que ela possuí.

**Por exemplo:** Em nosso projeto iremos fazer nosso `back-end` e NodeJs, logo, precisamos criar a pasta `back-end` e dentro dela rodar o comando `npm init -y`. Isso inicia o *npm* na pasta e nos permite adicionar os plugins do Node que serão usados apenas no `back-end`.

Isso é necessário ser feito, pois além de manter organização, as dependências do `back-end` são totalmente deferentes da do `front-end`.

### E onde o docker entra nessa história?

Basicamente o Docker resolve o problema do **"funciona na minha máquina, mas não no servidor"**. No Docker você define o ambiente (sistema operacional, dependências, bibliotecas, etc.), e ele é replicado em qualquer lugar que o contêiner seja executado. Facilitando, por exemplo, o deploy em algum servidor.

Com base em nosso projeto deveríamos criar um contêiner para cada parte do projeto.
- Um contêiner com Node.js para o back-end.
- Um contêiner com Nginx para servir o front-end.
- Um contêiner com PostgreSQL para o banco de dados.

Usando um **docker-compose.yml**, você pode orquestrar esses contêineres para trabalharem juntos com apenas um comando. `docker compose up`

0 comments on commit a11f5b6

Please sign in to comment.