Erlang OTP: Distributed & Fault-Tolerant Systems Programming · Aula

A Filosofia Let-It-Crash

Compreenda a mentalidade let-it-crash do Erlang e como isolar erros, reiniciar de forma limpa e evitar programação defensiva produz sistemas mais fiáveis.

Aula 4 de 413 etapas

A Filosofia Let-It-Crash é uma aula grátis de Erlang OTP: Distributed & Fault-Tolerant Systems Programming no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Erlang OTP: Distributed & Fault-Tolerant Systems Programming, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Erlang OTP: Distributed & Fault-Tolerant Systems Programming inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

A Different Mindset

Most languages encourage catching every possible error. Erlang takes the opposite view: let it crash. A process that hits an unexpected state should die and be restarted into a known-good state.

Why Crashing Is Good

A crash is a clean, well-defined failure. Trying to limp along in a corrupted state often causes worse, harder-to-debug problems later.

Process Isolation

Erlang processes share nothing. One crashing process cannot corrupt another's memory, so a failure stays contained.

Happy-Path Code

Because supervisors handle failures, you write only the success case. No tangle of defensive checks.

handle(Request) ->
    {ok, Data} = fetch(Request),  % crashes if not ok
    process(Data).

Assertive Matching

The match {ok, Data} = fetch(...) doubles as an assertion: if fetch returns anything else, the process crashes immediately rather than continuing with bad data.

Supervisors Do the Recovery

A supervisor (covered earlier) watches workers and restarts them per its strategy. Let-it-crash works because supervision provides recovery.

Separating Logic from Errors

Keep risky operations in worker processes that may crash, while a stable supervisor process holds the recovery policy. This separation keeps both simple.

When NOT to Crash

Expected, recoverable conditions (a user typing a bad value) are not exceptional. Handle those normally; crash only on truly unexpected states.

case validate(Input) of
  ok -> save(Input);
  {error, Reason} -> {error, Reason}
end.

Errors vs Exits

A runtime error (like a failed match) crashes the process with reason {badmatch, ...}. You can also crash deliberately with exit/1 to signal an unrecoverable problem.

exit(disk_full).

Crash Reports & Logging

When a process dies, OTP logs a crash report with the reason and stack. SASL and logger capture these so failures are observable even though you did not catch them.

The Payoff

Let-it-crash plus supervision yields systems that self-heal from transient faults and stay running for years. Code is smaller, clearer, and focused on the real work.

Quick Check

Test your understanding of the philosophy.

Recap

You learned the let-it-crash philosophy.

  • Crash on unexpected state instead of coding defensively
  • Process isolation contains failures
  • Supervisors provide recovery
  • Still handle expected, recoverable cases normally
Grátis para começar

Aprenda Erlang com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
12
Aulas
48

Perguntas Frequentes

A aula “A Filosofia Let-It-Crash” é grátis?

Sim — o texto completo de “A Filosofia Let-It-Crash” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Erlang OTP: Distributed & Fault-Tolerant Systems Programming, atualize para CoddyKit PRO. O curso de Erlang OTP: Distributed & Fault-Tolerant Systems Programming inclui 4 aulas no total.

O que vou aprender em “A Filosofia Let-It-Crash”?

Compreenda a mentalidade let-it-crash do Erlang e como isolar erros, reiniciar de forma limpa e evitar programação defensiva produz sistemas mais fiáveis. Você pratica Erlang OTP: Distributed & Fault-Tolerant Systems Programming com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Erlang OTP: Distributed & Fault-Tolerant Systems Programming?

Nenhuma experiência prévia é necessária. Erlang OTP: Distributed & Fault-Tolerant Systems Programming no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “A Filosofia Let-It-Crash”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Erlang OTP: Distributed & Fault-Tolerant Systems Programming?

Sim. Cada aula de Erlang OTP: Distributed & Fault-Tolerant Systems Programming inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Explicação sobre links e monitores
  2. Tratamento robusto de erros
  3. Design orientado ao princípio de falhar primeiro
  4. A Filosofia Let-It-Crash
← Voltar para Erlang OTP: Distributed & Fault-Tolerant Systems Programming