Как стать автором
Обновить
28
0
Федченко Кирилл @F3kilo

Старший разработчик Rust

Отправить сообщение

Добавлю в ближайшее время.

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

Переключение между реализациями (полиморфизм) - тема слудующей статьи. Эта и так получилась довольно объёмной.

Готово. Теперь есть короткое описание того, как, в данном случае, используется механизм обработки ошибок в Rust.

Да, я планировал, если статья окажется полезной, продолжить в том же духе. Возможно, развивая далее приложение для заметок.

Действительно. Я даже продумал текст на эту тему, а добавить забыл(

Добавлю сейчас.

Не совсем эквивалент... Наверное, если запретить базовым классам в плюсах иметь данные, то будет похоже.
А вообще, согласен. Наследование нужно только тогда, когда оно, действительно, упрощает жизнь именно в контексте конкретной задачи. Хорошая задача на наследование: стоит ли квадрат наследовать от прямоугольника.
С одной стороны, квадрат, действительно является прямоугольником, и, казалось бы, что может пойти не так?) Но, если в нашем контексте мы ожидаем, что для абстракции "прямоугольник", увеличение одной стороны пропорционально увеличивает площадь, то для квадрата это не сработает. В данном контексте нарушится LSP. Поэтому не нужно слепо руководствоваться внутренними ощущениями или сторонними фактами, продумывая архитектуру. Надо смотреть насколько то или иное решение стыкуется с конкретной задачей.

Хм... Действительно. Спасибо за замечание. Поправлю.

Насчёт кроссплатформенной сборки - не пробовал. Цель была скорее в том, чтобы показать, что Rust не так страшен, как его малюют и на нём легко и приятно писать мини-игры. Если найду время - попробую собрать и запустить в WASM. Отпишусь в комментарии.

В процитированной строке время учитывается. Для вычисления позиции скорость умножается на время (elapsed_time).

Для отладки шейдеров существуют различные инструменты. Одни из них созданы под конкретного производителя GPU: NVIDIA Nsight, Radeon Developer Tool Suite. Другие универсальны: RenderDoc.

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

Как верно отмечено, шейдер запускается одновременно на сотнях-тысячах процессоров GPU. Это работает по принципу SIMD.

Спасибо за положительный отзыв о содержании статьи. Что касается формы... Приложу дополнительные усилия для проверки.

Статья попалась в поиске по слову «rust».
Прочитав название, решил, что 6 поводов перейти на go — стандартные рекламные лозунги. А причина этого не делать — существование Rust.
С первым был близок. Со вторым промахнулся)

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность