|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Микрософт по непонятным причинам реализовала Tuple<[,]> как класс. Так-как часто сталкиваюсь с этим недоразумением и такое положение дел меня не устраивает решил написать замену как struct и так-же на дженеках. (i.e. struct STuple<T1,T2>) Теперь теоретические вопросы: Стоит ли определять интерфейс IComparable<T> для структуры? (struct STuple<T1,T2> : IComparable<STuple<T1,T2>>) За: скорость(x5) / Против: Не всегда уместно. Стоит ли прописывать ограничения для герик аргументов? (struct STuple<T1,T2> : IComparable<STuple<T1,T2>> where T1 : IEquatable<T1>, IComparable<T1>) За: ещё скорость(x10) / Против: Не со всеми типами проходит. (object) Интересуют соображения сообщества по вопросам. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 16:54 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
mikronЗа: скорость (x5) / Против: Не всегда уместно. За: ещё скорость (x10) / Против: Не со всеми типами проходит. (object) Откуда такие сведения? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 19:12 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Присоединяюсь к вопросу: x5-x10 по сравнению с чем и в каких операциях? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 19:48 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Pallaris, Нахлобуч по результатам теста. Точные цифры не столь важны, я их дал только для приблизительной оценки. Интересно было бы услышать аргументы за/против. Тест тоже можно обсудить, но не о нём в первую очередь речь. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 20:43 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Как обычно, обращу внимание на задачу, которую решает ТС: "хочется Tuple, только свой православный". Основной минус Tuple - отсутствие декларативного смысла передаваемых данных. Стоит сравнить по читабельности: Код: c# 1.
и Код: c# 1.
На мой взгляд, выбор очевиден: первый вариант банально ближе к литературному программированию, потому он правильный. Итого, мое ИМХО: Tuple и ему подобные конструкции - вирусный антипаттерн С Уважением ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 21:53 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
zz118Стоит сравнить по читабельности: Код: c# 1.
и Код: c# 1.
На мой взгляд, выбор очевиден Плодить сомнительный класс ради пары int-string? Еще и перегружать самому GetHashCode и Equals? Да, выбор очевиден. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 22:12 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
zz118На мой взгляд, выбор очевиден: первый вариант банально ближе к литературному программированию, потому он правильный. где деньги, Зин? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2015, 22:16 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
zz118 Итого, мое ИМХО: Tuple и ему подобные конструкции - вирусный антипаттерн Это типичный кортеж из ФЯП. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:48 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
PallarisПлодить сомнительный класс ради пары int-string? Еще и перегружать самому GetHashCode и Equals? Да, выбор очевиден. Чужие проэкты поддерживали? когда передаются кучи параметров через запятую, и не знаешь, кто кому принадлежит... Если надо передать аргументы - то вон даже в стандартных эвентах сделали EventArgs ... В контексте сказанного - Чем Тупл лучше, чем stringly-typed development? Так еще и типы будут разные.... За 10 лет ни разу не столкнулся с надобностью кортежа. Хотя как раз большая часть работы была - интеграция и кооперация... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 14:45 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
D129В контексте сказанного - Чем Тупл лучше, чем stringly-typed development? Так еще и типы будут разные.... Его можно по месту, а не отдельно. В языках, где есть например, сопоставление с образом - штука не заменимая. D129За 10 лет ни разу не столкнулся с надобностью кортежа. Хотя как раз большая часть работы была - интеграция и кооперация... Это только привычка. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 15:43 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
D129За 10 лет ни разу не столкнулся с надобностью кортежа. Я передавал в ado.net набор пар имя-значение для записи в бд, например. Для простых рутинных задач тапл подходит ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 17:53 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Например функция меняющая местами элементы в кортеже в C# выглядит Код: c# 1. 2. 3. 4.
В F# Код: c# 1.
много меньше буков благодаря более мощному механизму вывода типов ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 17:20 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
mikronМикрософт по непонятным причинам реализовала Tuple<[,]> как класс. Так-как часто сталкиваюсь с этим недоразумением и такое положение дел меня не устраивает решил написать замену как struct и так-же на дженеках. (i.e. struct STuple<T1,T2>) Теперь теоретические вопросы: Стоит ли определять интерфейс IComparable<T> для структуры? (struct STuple<T1,T2> : IComparable<STuple<T1,T2>>) За: скорость(x5) / Против: Не всегда уместно. Стоит ли прописывать ограничения для герик аргументов? (struct STuple<T1,T2> : IComparable<STuple<T1,T2>> where T1 : IEquatable<T1>, IComparable<T1>) За: ещё скорость(x10) / Против: Не со всеми типами проходит. (object) Интересуют соображения сообщества по вопросам. изобретение велосипеда чем не устроил KeyValuePair<,>? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 13:34 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
pation изобретение велосипеда чем не устроил KeyValuePair<,>? Может прежде чем писать, стоит заглянуть в msdn? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 14:12 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
ЕвгенийВНапример функция меняющая местами элементы в кортеже в C# выглядит Код: c# 1. 2. 3. 4.
В F# Код: c# 1.
много меньше буков благодаря более мощному механизму вывода типов Имхую, что прошло то время, когда считали буквы и байты памяти. Важно, чтобы читабельность была. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 16:24 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
WinnipuhВажно, чтобы читабельность была. Чем меньше букв, тем лучше читабельность. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 17:44 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
ЕвгенийВЧем меньше букв, тем лучше читабельность. https://ru.wikipedia.org/wiki/Brainfuck ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 17:48 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Shocker.ProЕвгенийВЧем меньше букв, тем лучше читабельность. https://ru.wikipedia.org/wiki/Brainfuck ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 18:03 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
ЕвгенийВWinnipuhВажно, чтобы читабельность была. Чем меньше букв, тем лучше читабельность. о! не всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 19:00 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Shocker.ProЕвгенийВЧем меньше букв, тем лучше читабельность. https://ru.wikipedia.org/wiki/Brainfuck Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 19:01 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Winnipuhо! не всегда если человек конечно способен к абстрактному мышлению. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 19:04 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
ЕвгенийВWinnipuhо! не всегда если человек конечно способен к абстрактному мышлению. любой человек способен к абстрактному мышлению, собака - нет ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 09:39 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
Тема окончательно скатилась во флуд=) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 10:20 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
mikronИнтересуют соображения сообщества по вопросам. zz118Тема окончательно скатилась во флуд=) не вижу противоречия ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 10:57 |
|
Замена для Tuple
|
|||
---|---|---|---|
#18+
ЕвгенийВpationизобретение велосипеда чем не устроил KeyValuePair<,>? Может прежде чем писать, стоит заглянуть в msdn? и что? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2015, 15:23 |
|
|
start [/forum/topic.php?fid=20&msg=38992281&tid=1401403]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 152ms |
0 / 0 |