Re[28]: вопрос к специалистам
От: samius Япония http://sams-tricks.blogspot.com
Дата: 26.02.10 10:12
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, samius, Вы писали:


PD>Боже, зачем же так сложно и длинно ? Да еще ArgumentNullException, которого тут вообще не должно быть!

Поспешил

PD>// мне пришлось заменить свойства на поля, так как свойства нельзя передавать по ref

PD>// public их делать совсем не обязательно, но лень было возиться
PD>// так что в моем коде не используются твои Left и Right, а используются мои left и right

По поводу ref у меня пунктик, да и у много кого тоже. Framework Design Guidlines его тоже не рекоммендуют. Хотя, как средство оптимизации он хорош.
Действительно, если метод вставки затолкать в Node<T>, то поля делать публичными не обязательно.

PD>// а вот и моя версия — чистая калька с С++

PD>// DPL — это я (Дворкин Павел Лазаревич
PD>// как видишь, она ничуть не сложнее твоей LinQ-овской, скорее проще
Проще — нет, ref-ы ее не делают проще. Но визуально меньше кода — это да.

S>>При том что иммутабельное заполнение дерева в 3 и более раз короче, оно во столько же раз проигрывает по

S>>Можно сказать паритет

PD>Нет, 2.5:0.5 в мою пользу. Я сделал эту DPLSearchAndInsert столь же простой, как твоя, и даже проще, а выигрыш по времени в 3 раза и ни одного лишнего new. Так что я выиграл и по памяти, и по времени, а вот по простоте кода — в лучшем случае паритет

По времени и памяти — соглашусь.
По простоте кода — нет. Считаем кол-во непустых линий методов вставки и построения дерева:
Моих — 9
Ваших — 21 (если выкинуть скобки, то 19)
+ ref. Лично у меня с ним проблем нет, но он не делает код проще — это точно.

PD>P.S. А вот машина у тебя получше раза в 2. Если не секрет, какой процессор ? У меня Athlon Dual 4200+

Intel Core 2 Duo E6600
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.