Jornada do Desenvolvedor - Escodoo/escodoo.github.io GitHub Wiki

Jornada do Desenvolvedor

Linux

Saber instalar pacotes

Exemplo: Instalar o pacote "wget"

sudo apt-get update sudo apt-get install wget

Conhecer para que serve cada pasta no Linux

Exemplo: /etc: Armazena arquivos de configuração do sistema.

Saber usar os comandos sudo, chown e chmod

Exemplo: Mudar a propriedade e permissão de um arquivo

sudo chown usuario:grupo arquivo.txt sudo chmod 755 arquivo.txt

Conectar em uma máquina remota via SSH

Exemplo: Conectar-se a um servidor remoto

ssh usuario@servidor

Remover, criar e listar diretórios

Exemplo: Criar um diretório chamado "exemplo"

mkdir exemplo

Edição básica de arquivos com nano

Exemplo: Editar o arquivo "arquivo.txt"

nano arquivo.txt

Docker

Como instalar Docker

Exemplo: Instalar Docker no Ubuntu

Listar imagens

docker images

Listar containers

docker ps -a

Criar uma imagem através de Dockerfile (hello-world)

FROM alpine:latest CMD ["echo", "Hello, World!"]

Construir a imagem

docker build -t hello-world .

Rodar um container

docker run --name meu-container hello-world

Inspecionar, parar e iniciar o container

docker inspect meu-container docker stop meu-container docker start meu-container

Remover containers e imagens

docker rm meu-container docker rmi hello-world

Objetivo final

Criar uma imagem nova que servirá para os testes posteriores com banco de dados, git, etc.

Postgres

Usar o Docker para instalar o Postgres

docker run --name postgres -e POSTGRES_PASSWORD=senha -d postgres

Saber os diretórios que o Postgres é instalado

Exemplo: /var/lib/postgresql/data

Conectar ao Postgres via psql

docker exec -it postgres psql -U postgres

Trocar senha do usuário postgres, criar usuário novo e banco de dados

ALTER USER postgres WITH PASSWORD 'nova_senha'; CREATE USER novo_usuario WITH PASSWORD 'senha'; CREATE DATABASE novo_banco OWNER novo_usuario;

Criar tabelas e entender primary key, foreign key e index

Exemplo: Criar uma tabela "clientes" e uma tabela "pedidos"

CREATE TABLE clientes ( id SERIAL PRIMARY KEY, nome VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL );

CREATE TABLE pedidos ( id SERIAL PRIMARY KEY, cliente_id INTEGER REFERENCES clientes(id), data DATE NOT NULL, valor DECIMAL(10, NOT NULL );

CREATE INDEX idx_cliente_id ON pedidos(cliente_id);

Fazer inserção, atualização e exclusão de registros nesta tabela

INSERT INTO clientes (nome, email) VALUES ('Fulano', '[email protected]'); UPDATE clientes SET email='[email protected]' WHERE id=1; DELETE FROM clientes WHERE id=1;

Listar tabelas e usuários via psql

\dt \du

Git e Github

Saber clonar repositórios

git clone https://github.com/usuario/repositorio.git

O que é fork?

Um fork é uma cópia de um repositório, permitindo que você faça alterações sem afetar o projeto original.

Comandos básicos (init, add, commit, pull, checkout)

git init git add . git commit -m "Mensagem do commit" git pull origin master git checkout -b nova_branch

Remotes

git remote add origin https://github.com/usuario/repositorio.git git push -u origin master

Criar branches e Pull Request

Crie uma branch e faça alterações no código, depois faça um commit e push

git checkout -b minha_feature git add . git commit -m "Adiciona nova feature" git push origin minha_feature

No GitHub, vá até o repositório e clique em "Compare & pull request" para criar um Pull Request.

Python

Para que serve o comando pip

Pip é um gerenciador de pacotes Python, usado para instalar e gerenciar bibliotecas e dependências.

Criando virtualenv

python3 -m venv myenv source myenv/bin/activate

Criar e rodar scripts básicos

Exemplo: "hello_world.py"

print("Hello, World!")

Rodar o script

python3 hello_world.py

Desafios

  1. Criar um script que faz conexão com um servidor via SSH e instala o Nginx no mesmo.
  2. Criar um script que insere dados no banco de dados instalado dentro do Docker (ex: cadastrar cliente).
  3. Criar um script que lê um arquivo CSV e mostre quantidade de colunas, linhas, e gere um outro CSV apenas com as linhas de número par.

Odoo

- TODO

Ansible

- TODO

Links Importantes: