Pular para conteúdo

Aula 01 - Introdução ao Ecossistema de Ferramentas 🌐

!!! tip "Objetivo" Objetivo: Compreender a importância das ferramentas no ciclo de vida de desenvolvimento de software e identificar as principais categorias de ferramentas utilizadas por equipes profissionais.


1. Por que as Ferramentas Importam? 🛠️

No desenvolvimento moderno, escrever código é apenas uma parte do trabalho. Para entregar software de forma eficiente, segura e colaborativa, utilizamos um conjunto de ferramentas que formam o nosso ecossistema de desenvolvimento.

🧠 Conceito: O Cinto de Utilidades do Dev

=== "Teoria" Assim como um marceneiro precisa de ferramentas especializadas para diferentes cortes e acabamentos, o ciclo de vida do software exige plataformas dedicadas. IDEs, controle de versão e pipelines formam uma cadeia de valor onde a saída de uma ferramenta alimenta a entrada da próxima.

=== "Prática" No seu dia a dia profissional, você não abrirá apenas o VS Code. Seu fluxo será: Ler a Issue no Jira -> Criar branch no Git -> Escrever Código no VS Code -> Testar com Jest -> Subir um Pull Request no GitHub -> Ver o CI/CD (Actions) validar seu código.


2. Categorias de Ferramentas 🗂️

Podemos dividir as ferramentas essenciais em grandes blocos:

  1. Gestão e Organização: Onde planejamos o que será feito (Jira, Trello).
  2. Ambiente de Desenvolvimento: Onde o código nasce (VS Code, Terminal).
  3. Controle de Versão: Onde guardamos o histórico e colaboramos (Git, GitHub).
  4. Bancos de Dados: Onde os dados residem (PostgreSQL, MongoDB).
  5. Qualidade e Testes: Onde garantimos que tudo funciona (Postman, Jest).
  6. Infraestrutura e CI/CD: Onde o código "vai pro mundo" (Docker, GitHub Actions).

Visualização do Fluxo (Mermaid)

graph LR
    Plan([Planejamento]) --> Dev([Desenvolvimento])
    Dev --> Test([Testes])
    Test --> Deploy([Deploy/Produção])
    Deploy --> Monitor([Monitoramento])
    Monitor --> Plan

    subgraph Ferramentas
    Plan -.-> Jira
    Dev -.-> VSCode
    Test -.-> Postman
    Deploy -.-> Docker
    end

3. A Importância da Automação 🤖

Uma das metas deste curso é ensinar você a parar de fazer tarefas repetitivas manualmente.

!!! note "Conceito" Automação é o uso de ferramentas para executar processos que seriam lentos ou propensos a erro se feitos por humanos (ex: rodar todos os testes do sistema a cada alteração no código).


4. O Coração do Desenvolvimento: O Terminal 💻

Quase todas as ferramentas profissionais possuem uma interface de linha de comando (CLI). Dominar o terminal é o primeiro passo para se tornar um desenvolvedor avançado.

$ echo "Bem-vindo ao Guia de Ferramentas!"
Bem-vindo ao Guia de Ferramentas!
$ git --version
git version 2.40.1
$ docker --version
Docker version 24.0.2

5. Mini-Projeto: Diagnóstico do Cinto de Ferramentas 🚀

Sua primeira missão é verificar o que você já tem instalado e o que precisaremos configurar:

  1. Abra seu terminal (CMD, PowerShell ou Terminal do macOS/Linux).
  2. Tente executar os comandos: git --version, code --version, docker --version.
  3. Anote quais ferramentas responderam com a versão e quais não foram encontradas.
  4. Crie uma conta gratuita no GitHub caso ainda não possua.

6. Exercício de Fixação 📝

  1. Básico: Cite três categorias de ferramentas e dê um exemplo de cada.
  2. Básico: Qual a principal vantagem de usar um sistema de gestão de tarefas como o Jira?
  3. Intermediário: Por que o terminal é considerado uma ferramenta mais poderosa que as interfaces visuais para desenvolvedores?
  4. Intermediário: O que acontece quando uma equipe não utiliza controle de versão (Git)?
  5. Desafio: Pesquise o termo "Developer Experience" (DX) e explique como as ferramentas contribuem para isso.

Próxima Aula: Vamos aprender a organizar nosso fluxo de trabalho com o Jira e Trello! 📊