Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Многозначная логика в действии

Это прекрасно чуть более, чем полностью, друзья!

random()>0.1 (15.26КиБ)

На скриншоте 213-я строка джавовского драйвера для Монги, внутри класса ConnectionStatus, метод update.

Мне ещё сама реализация нравится. Это же надо обладать таким сломанным мозгом, чтобы так написать. Ну почему вот так не сделать?

if (!_ok && Math.random() <= 0.1) {
    return res;
}
7 комментариев
Константин 2013

Возможно, человек опасался, что && не ленивый (но при этом почему-то был уверен, что ?: ленивый).

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Константин:

Не надо опасаться, надо язык знать.

LXj (lxj.endofinternet.net/blog/) 2013

Наверное, специально сделали строку зубодробительно выглядящей, чтобы глазу не хотелось за неё цепляться

Т. е. типичная (хоть и примитивная) обфускация. В твоём варианте сразу бы хотелось бы спросить «эй, а чё тут за random?»

Евгений Степанищев (bolknote.ru) 2013

Комментарий для lxj.endofinternet.net/blog/:

Т. е. типичная (хоть и примитивная) обфускация.

А мне кажется, это типичный случай случай, про который Толстой сказал «неясность слова есть неизменный признак неясности мысли».

Denis Ibaev (dionys.myopenid.com) 2013

Комментарий для Евгения Степанищева:

А в чём смысл этой случайности?

Евгений Степанищев (bolknote.ru) 2013

Комментарий для dionys.myopenid.com:

Я ж не автор, откуда мне знать? :)

twitter.com/thenameisbusy 2013

Комментарий для Евгения Степанищева:

Все, нет там уже этого кода

https://github.com/mongodb/mongo-java-driver/commit/8e02cd006d79acd1d0ae6604c2ee7537b250c044#L0L213