Если прочитать книжку про эрланг и пару блогов, то можно встретить упоминание концепции «Let it crash» (или let it fail, не помню как в оригинале). Я не знаю хорошего перевода этого термина на русский, будет хорошо если после моих объяснений мне кто-нибудь предложит варианты.
Итак, о чём речь. Давайте представим псевдокод на Java-подобном языке (со сборкой мусора), который считывает 6-й байт из файла.
Как видно, в этом коде уже есть две проблемы:
1) в бизнес-логике присутствуют кидания исключений, которые конкретно здесь лишены особого смысла
2) мы забыли закрыть файл.
Итак, о чём речь. Давайте представим псевдокод на Java-подобном языке (со сборкой мусора), который считывает 6-й байт из файла.
string header(string path)
{
File f = fopen(path, "r");
ByteArray data = read(f, 6);
if (data.length > 6) {
close(f);
return data[6];
}
raise Exception;
}
Как видно, в этом коде уже есть две проблемы:
1) в бизнес-логике присутствуют кидания исключений, которые конкретно здесь лишены особого смысла
2) мы забыли закрыть файл.