|
async await в c#
|
|||
---|---|---|---|
#18+
fkthat hVostt у него максимальная абстракция. У него максимальная абстракция, но она не подходит для задач того же ДТО. А IEmumerable подходит. И IReadOnlyCollection подходит, но она менее максимальная, чем IEnumerable. Весь смысл как раз здесь: "но она менее максимальная, чем IEnumerable" -- именно, чёрт подери! Когда тебе точно нужна коллекция по семантике и контексту, и ты должен быть уверен, что можешь сохранить её для многократного использования, ты не должен применять IEnumerable. Самый яркий признак джуна-быдлокодера, что он этого не понимает и везде пихает IEnumerable. Но когда тебе нужен результат для однократного прохода, или ты принимаешь что угодно, любую последовательность для обработки -- сам бог велел использовать IEnumerable. Или ты возвращаешь ленивое вычисление. fkthat Ну чем он не уместен, если он содержит все нужное для ДТО (т.е. просто пройтись, причем еще всего лишь один раз, по элементам коллекции)? Если оговорено, что это должен быть DTO, который можно, допустим, кешировать, крутить на болте и заколачивать им гвозди, то IEnumerable тут уже действительно не подойдет. Потому что DTO это транспортный объект, это полностью материализованные данные в памяти. Без всяких ленивых вычислений. Оно уже исходя из семантики оговорено , на любом уровне ты должен иметь возможность читать многократно DTO и хранить в памяти. Поэтому для DTO IEnumerable не подходит. По этой причине. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 06:02 |
|
async await в c#
|
|||
---|---|---|---|
#18+
hVostt Но когда тебе нужен результат для однократного прохода В каком хрустальном шаре чувак, который сегодня пишет интерфейс и его реализацию должен угадать, для чего мне его результат будет нужен через неделю? hVostt это полностью материализованные данные в памяти. Я давал тут ссылку - ничего про какую-то обязательную материализованность и хранение в памяти там нет. hVostt на любом уровне ты должен иметь возможность читать многократно DTO и хранить в памяти. А почему бы еще не возможность сохранения на диск, отправки по емейл и распечатки на принтер - вот, мне так хочется, например, у меня задачи такие, что мне надо ДТО емейлом рассылать и на принтер печатать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 11:52 |
|
async await в c#
|
|||
---|---|---|---|
#18+
fkthat В каком хрустальном шаре чувак, который сегодня пишет интерфейс и его реализацию должен угадать, для чего мне его результат будет нужен через неделю? Как я говорил, если тебе нужен супер уровень абстракции, используй Object. Откуда ты знаешь, сегодня нужен IEnumerable, а завтра тебе вообще объект своего класса там понадобится, а послезавтра строка или число. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 15:42 |
|
async await в c#
|
|||
---|---|---|---|
#18+
так и знал, срач ниочом ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:13 |
|
async await в c#
|
|||
---|---|---|---|
#18+
hVostt - чувак, у тебя странный код, что в DTO может быть что-то такое, как ты говорил про IEnumerable а если нет - то и суда нет . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:16 |
|
async await в c#
|
|||
---|---|---|---|
#18+
короче так и не увидел ничего реально значимого. какая-то религия ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:24 |
|
async await в c#
|
|||
---|---|---|---|
#18+
hVostt Откуда ты знаешь, сегодня нужен IEnumerable, а завтра тебе вообще объект своего класса там понадобится Нет. Сегодня мне нужно то, что я могу перебрать элемент за элементом, и это именно IEnumerable. А, если мне завтра что-то понадобится, то я уже на стороне вызова заверну или превращу этот IEnumerable именно в то, что мне в данном случае нужно, и не буду вперед заморачиваться, что послезавтра понадобится, тем более не мне, а Васе или Пете. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 20:29 |
|
async await в c#
|
|||
---|---|---|---|
#18+
fkthat hVostt Откуда ты знаешь, сегодня нужен IEnumerable, а завтра тебе вообще объект своего класса там понадобится Нет. Сегодня мне нужно то, что я могу перебрать элемент за элементом, и это именно IEnumerable. А, если мне завтра что-то понадобится, то я уже на стороне вызова заверну или превращу этот IEnumerable именно в то, что мне в данном случае нужно, и не буду вперед заморачиваться, что послезавтра понадобится, тем более не мне, а Васе или Пете. Ну и в чём противоречие? Я вроде об этом и говорил, когда тебе нужна максимальная обобщённая последовательность, и тебе не важно, коллекция это, генератор, или отложенный запрос в БД -- берёшь IEnumerable. Когда у тебя по семантике это коллекция, то использовать IEnumerable не очень хорошо, для этого есть более специфичные интерфейсы, но при этом достаточно свободные для любых манёвров. В чём проблема-то? Контраргументы дикие какие-то, непонятно к чему ты их приплетаешь. Дескать если там когда-то в будущем бла-бла, что за хрень это вообще? Однозначно к такому посылу, один ответ -- бери object -- он максимально общий и максимально абстрактный. И всё ещё не понимаю, чем тебе object-то не нравится. Это же супер-абстракция, на любые случаи в жизни, о которых ты не узнаешь в хрустальном шаре ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 23:10 |
|
async await в c#
|
|||
---|---|---|---|
#18+
fkthat А, если мне завтра что-то понадобится, то я уже на стороне вызова заверну или превращу этот IEnumerable именно в то, что мне в данном случае нужно, и не буду вперед заморачиваться, что послезавтра понадобится, тем более не мне, а Васе или Пете. Короче хз, это демагогия, а не аргументы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 23:11 |
|
async await в c#
|
|||
---|---|---|---|
#18+
hVostt один ответ -- бери object Ему говорят, что бухать плохо, а он в ответ "давайте тогда пить только воду". И после этого говорит о демагогии. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 23:29 |
|
async await в c#
|
|||
---|---|---|---|
#18+
fkthat hVostt один ответ -- бери object Ему говорят, что бухать плохо, а он в ответ "давайте тогда пить только воду". И после этого говорит о демагогии. Так это я говорю, что бухать (использовать всегда IEnumerable во всех случаях) плохо. Пей (используй IEnumerable) разумно, тогда это действительно уместно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 23:45 |
|
async await в c#
|
|||
---|---|---|---|
#18+
hVostt используй IEnumerable Я уже запутался - ты только что советовал использовать object. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2020, 00:09 |
|
|
start [/forum/topic.php?fid=18&msg=40025768&tid=1354595]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 302ms |
total: | 443ms |
0 / 0 |