Size: a a a

Rust Jobs - вакансии & резюме

2021 December 15

AT

Andrey Trepalin in Rust Jobs - вакансии & резюме
Поэтому - не трогать
источник

𓄋

𓄋𓂭𓃇 in Rust Jobs - вакансии & резюме
минус масштабирование и оптимизация
источник

AT

Andrey Trepalin in Rust Jobs - вакансии & резюме
Главное - работает
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
ребята, я гляжу, вы потихоньку переключаетесь на личные атаки
источник

AT

Andrey Trepalin in Rust Jobs - вакансии & резюме
К сожалению нет)
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
так это не авто. добавлять "?" везед если вдруг на 30-м уровне вложенности у вас появилось исключение - занятие редкой красоты
источник

Ct

Casual tears in Rust Jobs - вакансии & резюме
А добавить исключение где-то на внизу по стеку, при этом сломав какие-то инварианты из за этого посередине - норм?
источник

DP

Daniil Polyakov in Rust Jobs - вакансии & резюме
А как же compile-time проверки благодаря этому? Типа, если функция возвращает Result, то ты обязан либо обработать ошибочную ситуацию, либо явно согласится на панику.
С исключениями нигде никаких гарантий нет (C++, Python). А то, что функция может ошибиться, никак не закреплено в коде (в сигнатуре функции, в ее вызове, в системе типов)
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
уточните как
источник

В

Вадим in Rust Jobs - вакансии & резюме
В других языках, например, js или c# вы можете использовать исключения в асинхронные функции и перехватывать исключения уровнями выше. Хотя асинхронные операции могут происходить на разных тредах
источник

DS

Dmitry 🎭 Sviridkin... in Rust Jobs - вакансии & резюме
Кинуть исключение из функции, которая косвенно вызвана в деструкторе
источник

Ct

Casual tears in Rust Jobs - вакансии & резюме
Ну допустим функция посередине должна иметь условно транзакционную семантику, но ее эксепшеном порвало.
источник

Ct

Casual tears in Rust Jobs - вакансии & резюме
При такой модели надо от каждого первого вызова функции защищаться, что крайне неудобно.
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
в C# код с await компилируется в state machine

в хаскеле, плюсах, go и т.д. - потоки независимы
источник

В

Вадим in Rust Jobs - вакансии & резюме
хоть за async await скрывается хитрая стейт машина, но для пользователя это может читаться как синхронный код, в го вы так сделать не сможете, там другой подход к этому. Называется он value error, паники никто не юзает за пределами main.go файлов, хотя даже для этого обычно используют fmt.Fatal()
источник

Ct

Casual tears in Rust Jobs - вакансии & резюме
Т.е. вот это замечание не особо валидное, имхо. Потому что тебе и так и так надо посмотреть где эта функция вызывается и проверить не сломает ли твое исключение там что-нибудь.
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
про practices сказать ничего не могу, но использовать паники можно как исключения в любом языке с потоками
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
методология raii - освобождать все ресурсы в exception handlers / destructors / defer. насчёт вызова посреди деструктора - признаю свою некомпетентность
источник

BZ

Bulat Ziganshin in Rust Jobs - вакансии & резюме
есть пометка noexcept на функцию
источник

Ct

Casual tears in Rust Jobs - вакансии & резюме
Это в плюсах то? Которая просто делает UB если в этой функции брошено исключение? Чем это помогает?
источник