O que é um ambiente de desenvolvimento?

Prévia grátis 8 min de leitura

A cozinha antes do restaurante

Você acabou de ser contratado como chef em um novo restaurante. No primeiro dia, você entra e a cozinha está completamente vazia: sem fogão, sem facas, sem geladeira, sem ingredientes. Você não consegue preparar um único prato até que essa cozinha esteja montada.

Desenvolver software funciona da mesma forma. Antes de escrever uma única linha de código Ruby, antes de rodar rails server, antes de ver sua aplicação no navegador: você precisa de um ambiente de desenvolvimento. Essa é a cozinha onde toda a sua programação acontece.

Pular a configuração significa encontrar erros confusos mais tarde. Fazer certo significa que suas ferramentas funcionam juntas de forma fluida todos os dias.

O que um ambiente de desenvolvimento contém

Um ambiente de desenvolvimento é o conjunto completo de ferramentas instaladas e configuradas no seu computador para que você possa escrever, rodar, testar e depurar código. Para um desenvolvedor Rails no macOS, estas são as peças essenciais:

+-------------------------------------------+
|       SEU AMBIENTE DE DESENVOLVIMENTO     |
|                                           |
|  +-------------+  +-------------------+   |
|  | Editor de   |  | Terminal / Shell  |   |
|  | Código      |  | (Terminal + Zsh)  |   |
|  | (VS Code)   |  +-------------------+   |
|  +-------------+                          |
|                   +-------------------+   |
|  +-------------+  | Gerenciador de    |   |
|  | Runtime da  |  | Pacotes           |   |
|  | Linguagem   |  | (Homebrew)        |   |
|  | (Ruby)      |  +-------------------+   |
|  +-------------+                          |
|                   +-------------------+   |
|  +-------------+  | Gerenciador de    |   |
|  | Banco de    |  | Versões (rbenv)   |   |
|  | Dados       |  +-------------------+   |
|  | (PostgreSQL)|                          |
|  +-------------+  +-------------------+   |
|                   | Framework Web     |   |
|  +-------------+  | (Rails)           |   |
|  | Git (VCS)   |  +-------------------+   |
|  +-------------+                          |
+-------------------------------------------+

Cada peça tem uma função específica:

Ferramenta O que Faz Exemplo no Rails
Editor de Código Onde você escreve e lê código Editar app/models/user.rb no VS Code
Terminal + Shell Onde você executa comandos Rodar rails server
Runtime da Linguagem Executa seu código Ruby interpreta seus arquivos .rb
Gerenciador de Pacotes Instala ferramentas de desenvolvimento Homebrew instala PostgreSQL, Ruby
Gerenciador de Versões Alterna entre versões da linguagem rbenv permite usar Ruby 4.0 em um projeto, 3.2 em outro
Banco de Dados Armazena os dados da aplicação PostgreSQL guarda usuários, posts, pedidos
Git Rastreia alterações no código Histórico de commits, branches, colaboração
Framework Web Fornece estrutura para apps web Rails oferece MVC, rotas, ORM

Por que o macOS é o padrão da indústria para Rails

Abra seu Terminal agora e digite:

uname -s

Você verá:

Darwin

Essa única palavra revela algo importante. Darwin é o nome do kernel do macOS, e ele é construído sobre o BSD Unix. Isso significa que o macOS é um sistema operacional baseado em Unix na sua essência.

Por que isso importa para o Rails? Porque os servidores de produção (os computadores que rodam sua aplicação para usuários reais) quase sempre rodam Linux, que também é baseado em Unix. Os comandos, caminhos de arquivos, permissões e gerenciamento de processos que você aprende no macOS se transferem diretamente para a produção.

  macOS (seu laptop)           Linux (servidor de produção)
  +------------------+         +------------------+
  | Kernel Darwin    |         | Kernel Linux     |
  | (base BSD Unix)  |         | (tipo Unix)      |
  +------------------+         +------------------+
  | Mesmos comandos: |         | Mesmos comandos: |
  | ls, cd, grep,    |         | ls, cd, grep,    |
  | chmod, ps, kill  |         | chmod, ps, kill  |
  +------------------+         +------------------+

No Windows, esses comandos não existem nativamente. Desenvolvedores Windows usam o WSL (Windows Subsystem for Linux), que roda um kernel Linux de verdade numa máquina virtual leve, para ter a mesma experiência que o macOS oferece de fábrica.

Essa fundação Unix também significa que o macOS tem um sistema de permissões de arquivos adequado (chmod, chown), gerenciamento de processos (ps, kill) e um shell Unix (Zsh). Isso não são extras: o Rails depende deles. Quando o bin/dev de um app roda vários processos (um servidor Rails e um watcher de CSS, por exemplo), ele usa uma ferramenta chamada Foreman que cria processos Unix. Quando você faz deploy, seu servidor usa o mesmo modelo de processos.

A diferença entre ferramentas do sistema e ferramentas de desenvolvimento

O macOS vem com algumas ferramentas de desenvolvimento pré-instaladas, mas elas geralmente são desatualizadas ou limitadas:

/usr/bin/ruby --version
ruby 2.6.10p210 (2022-04-12 revision 67958)

Esse Ruby do sistema está anos atrás da versão atual. Ele existe para que scripts internos do macOS funcionem, não para você construir aplicações. O mesmo vale para o Git do sistema, o Python do sistema e outros.

Seu ambiente de desenvolvimento substitui essas ferramentas por versões atuais que você controla:

# Depois de configurar seu ambiente de desenvolvimento:
which ruby
# /Users/seunome/.rbenv/shims/ruby

ruby --version
# ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [arm64-darwin25]

Perceba a diferença no caminho. O Ruby do sistema fica em /usr/bin/ruby (pertence à Apple). O seu Ruby fica no seu diretório home (pertence a você). Essa separação é crítica: você nunca quer modificar ferramentas do sistema, e sempre quer controle total sobre suas ferramentas de desenvolvimento.

Como as peças se conectam no fluxo de trabalho Rails

Veja o que acontece quando você roda rails new my_app depois de configurar seu ambiente:

  1. O Shell (Zsh) recebe seu comando
  2. O Shell encontra o executável rails através dos shims do rbenv
  3. O rbenv ativa a versão correta do Ruby
  4. O Ruby executa o código da gem Rails
  5. O Rails gera os arquivos do projeto e roda bundle install
  6. O Bundler baixa gems (bibliotecas Ruby) da internet
  7. O Rails escreve o config/database.yml (SQLite por padrão; PostgreSQL se você passar --database=postgresql)
  8. Você abre o projeto no VS Code
  9. Você roda bin/dev no Terminal, que inicia o servidor Rails
  10. Seu navegador mostra a aplicação rodando

Cada ferramenta do seu ambiente de desenvolvimento participou. Se qualquer uma delas estiver faltando ou mal configurada, a cadeia se quebra.

Erros comuns

"Vou usar o Ruby do sistema mesmo": O Ruby do sistema está travado em uma versão antiga e exige sudo para instalar gems. Isso leva a erros de permissão e conflitos de versão. Sempre use um gerenciador de versões.

"Vou configurar tudo depois, quando precisar": Problemas de ambiente se acumulam. Instalar o PostgreSQL depois de já ter começado um projeto significa reconfigurar conexões de banco de dados, lidar com extensões nativas incompatíveis e perder tempo.

"Meu amigo usa Linux, então a configuração é a mesma": Os conceitos são idênticos, mas os comandos diferem. O Homebrew é específico do macOS. Linux usa apt, yum ou pacman. Os caminhos de arquivos também diferem (/opt/homebrew no macOS vs /usr no Linux).

A conexão com o Rails

O Rails é opinativo: ele pressupõe um ambiente configurado de certa forma. O Gemfile espera que você tenha o Bundler. O config/database.yml espera que o servidor de banco esteja rodando (PostgreSQL, neste curso). O bin/dev instala o Foreman sozinho quando o app precisa dele. O rails server espera que o Ruby esteja no seu PATH.

Cada aula deste curso instala e configura uma peça desse ambiente. Na última aula, você vai rodar rails new e tudo vai funcionar porque cada dependência está no lugar.

Isso não é trabalho à toa. Desenvolvedores seniores cuidam dos seus ambientes com atenção. Quando algo quebra em produção, a primeira pergunta é sempre: "Você consegue reproduzir localmente?" Isso exige um ambiente de desenvolvimento configurado corretamente.

Resumo

Conceito Ponto Chave
Ambiente de Desenvolvimento Conjunto completo de ferramentas configuradas para escrever, rodar e depurar código
macOS + Darwin SO baseado em Unix: comandos transferem diretamente para servidores Linux de produção
Ruby do Sistema vs Ruby de Dev Ruby do sistema é desatualizado e restrito; Ruby de dev é atual e controlado por você
Ferramentas Essenciais Editor, Terminal, Ruby, Gerenciador de Pacotes, Gerenciador de Versões, Banco de Dados, Git
Por que a Configuração Importa O Rails espera que cada ferramenta esteja instalada: uma peça faltando quebra a cadeia
Fundação Unix Permissões de arquivos, gerenciamento de processos e comandos shell: tudo exigido pelo Rails
Aula 1 de 7 · grátis

Continue com a aula 2

Homebrew: seu gerenciador de pacotes

Instala o Homebrew e explica fórmulas, casks, bottles, o Cellar, symlinks e o controle de serviços em segundo plano.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...