Re[5]: [CodeJam] - Ranges.V2 (заготовка) + прочие исправлени
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.04.16 12:34
Оценка:
Здравствуйте, Sinix, Вы писали:

AVK>>Мне кажется что возможность запихнуть ToXxx во From границу намного хуже.

S>Оно валидируется ассертами. Не помню, есть это в коде или не скинул ещё. На перфоманс влияет в границах статпогрешности, в коде эти ассерты не срабатывают — API правильно сделано.

Асерты это костыли.

AVK>>Ну и вообще какое то сомнительное решение. Перформанс онот может слегка и уучшает, но ценой ухудшения удобства использования.

S>Ну вот есть у тебя диапазоны a = [2..3) и b = (3..4]. В текущем дизайне a.To < b.From вернёт true.
S>В твоём варианте — false, т.к. они равны.

Я пока никакого варианта не предлагал. Нужно как нибудь отделить то, что пользователю придется в голове держать, и то что не придется.
Если оно тебе в алгоритмах нужно — задай два енума — один для передачи в конструктор, второй для хранения, заодно выкинув и Empty, который тоже изрядно невалидных инвариантов порождает. Или, если нескольких байт не жалко — заведи в RangeBoundary флажок From/To. Главное, чтобы дизайн при первом же взгляде не вызывал WTF.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Отредактировано 26.04.2016 12:34 AndrewVK . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.