Обновить

Борьба с ложными состояниями: взгляд из C++ на Rust‑дилеммы и реактивный код

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели4.3K
Всего голосов 4: ↑4 и ↓0+6
Комментарии3

Комментарии 3

Давно не писал на C++, последнее время в основном Rust. Какой же ужасный ужас ваш std::variant, простите.

Спасибо за вашу статью и отсылку. Примеры, в плане логики у меня получились не оч, тут соглашусь. В моей статье скорее важны именно практические выводы.

Не совсем ясен посыл, кроме того, что писать плохо — это плохо.

Проектируем фазы, а не типы

С таким же успехом можно сказать: «Проектируем типы, а не один тип», — или: «Проектируем типы с умом», — или: «Не проектируйте фазы, ведь они — суть типы», — или: «Не проектируйте типы, ведь они — суть фазы», — ну и там вариантов ещё до бесконечности.

Но что, если нам по старинке нужна императивная стейт-машина?

Тяжелая артиллерия в виде std::visit

А что, если в нашем языке вообще ничего нет или мы программу аппаратно релизуем? =) И чем visit -то тяжёлый? Всё constexpr, кажется, с нулевой ценой во времени исполнения.

Когда идеальные типы маскируют плохой дизайн

Да вроде как хреновые типы наглядно демонстрируют хреновый дизайн.

сам по себе поллинг (polling) — это всё ещё костыль из прошлого века

Смотря какой polling. Смотря на каком уровне абстракции.

условных переменных, мьютексах, семафорах, epoll, фьючерсах

Позволю себе перефразировать бородатый анекдот. Мы выше перечисленные используем готовые, пишем их для других или рекламируем?

Короче, никакого наезда, но, с чего я и начал, посыл я лично не уловил. Многие утверждения завязаны на вкусовые предпочтения и, возможно, на не уточнённый масштаб контекста и уровень его абстракции, хотя с идеей, что писать плохо — это плохо, я согласен. (Тоже не всегда, но обычно согласен, что обычно так. )

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации