The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск языка программирования Rust 1.39"
Отправлено Ordu, 10-Ноя-19 17:25 
> То есть, психологически проще постоянно писать аккуратно и осмотрительно, чем переключаться "тут safe, тут unsafe, а тут рыбу заворачивали".

Нет. Психологически невозможно выдерживать бдительность на постоянно высоком уровне. Концентрация внимания всегда плавает, это замерялось неоднократно в экспериментах. Это ведь очень важная штука в некоторых профессиях, в которых секундное ослабление внимания может привести к катастрофе. В тех профессиях, людей тренируют специально, и внимание им тренируют, и вырабатывают такие навыки привычки, чтобы максимум деятельности был бы автоматизирован и происходил бы вне зависимости от внимания.

Программистов никто не тренирует этому, поэтому они гораздо хуже всяких там пилотов, диспетчеров в авиации, и прочих. Те, прям скажем, не идеальны, программисты же среднестатистически плохи.

Чтобы минимизировать количество ошибок, тебе надо писать код так, чтобы разделять зоны ответственности между разными кусками кода. Скажем, есть динамический массив, есть его реализация, есть API к этой реализации. Инварианты динамического массива -- size>=len, например, -- это ответственность реализации динамического массива, и клиентский код должен быть лишён возможности эти инварианты нарушить. Если ты, реализуя динамический массив, осознал какие инварианты ты должен соблюдать, и сделал всё грамотно, то дальше, когда ты используешь динамический массив, тебе не надо бояться испортить динамический массив. Если ты сделал неграмотно реализацию, то будешь ли ты бояться или не будешь, это никак не спасёт от сегфолта вызванного неграмотной реализацией.

Когда ты разделяешь ответственность за корректность таким образом, тебе меньше надо удерживать во внимании, более того, есть триггер: unsafe. Если ты не можешь что-то сделать без unsafe, то вот тут надо думать. Можно остановиться, пойти покурить и подумать минут десять или даже полчаса, о том, что можно сломать используя unsafe так, как тебе хочется.

Это позволит тебе более эффективно расходовать свои ресурсы внимания и времени. Это позволит более эффективно работать даже с C, но в C нет такого триггера как unsafe, там проще не заметить момент, когда пора остановиться и подумать.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру