powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / async await в c#
13 сообщений из 88, страница 4 из 4
async await в c#
    #40025458
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
у него максимальная абстракция.

У него максимальная абстракция, но она не подходит для задач того же ДТО. А IEmumerable подходит. И IReadOnlyCollection подходит, но она менее максимальная, чем IEnumerable.


Весь смысл как раз здесь: "но она менее максимальная, чем IEnumerable" -- именно, чёрт подери!

Когда тебе точно нужна коллекция по семантике и контексту, и ты должен быть уверен, что можешь сохранить её для многократного использования, ты не должен применять IEnumerable.

Самый яркий признак джуна-быдлокодера, что он этого не понимает и везде пихает IEnumerable.

Но когда тебе нужен результат для однократного прохода, или ты принимаешь что угодно, любую последовательность для обработки -- сам бог велел использовать IEnumerable. Или ты возвращаешь ленивое вычисление.

fkthat
Ну чем он не уместен, если он содержит все нужное для ДТО (т.е. просто пройтись, причем еще всего лишь один раз, по элементам коллекции)? Если оговорено, что это должен быть DTO, который можно, допустим, кешировать, крутить на болте и заколачивать им гвозди, то IEnumerable тут уже действительно не подойдет.


Потому что DTO это транспортный объект, это полностью материализованные данные в памяти. Без всяких ленивых вычислений. Оно уже исходя из семантики оговорено , на любом уровне ты должен иметь возможность читать многократно DTO и хранить в памяти.

Поэтому для DTO IEnumerable не подходит. По этой причине.
...
Рейтинг: 0 / 0
async await в c#
    #40025534
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Но когда тебе нужен результат для однократного прохода

В каком хрустальном шаре чувак, который сегодня пишет интерфейс и его реализацию должен угадать, для чего мне его результат будет нужен через неделю?

hVostt
это полностью материализованные данные в памяти.

Я давал тут ссылку - ничего про какую-то обязательную материализованность и хранение в памяти там нет.

hVostt
на любом уровне ты должен иметь возможность читать многократно DTO и хранить в памяти.

А почему бы еще не возможность сохранения на диск, отправки по емейл и распечатки на принтер - вот, мне так хочется, например, у меня задачи такие, что мне надо ДТО емейлом рассылать и на принтер печатать.
...
Рейтинг: 0 / 0
async await в c#
    #40025645
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
В каком хрустальном шаре чувак, который сегодня пишет интерфейс и его реализацию должен угадать, для чего мне его результат будет нужен через неделю?


Как я говорил, если тебе нужен супер уровень абстракции, используй Object.

Откуда ты знаешь, сегодня нужен IEnumerable, а завтра тебе вообще объект своего класса там понадобится, а послезавтра строка или число.
...
Рейтинг: 0 / 0
async await в c#
    #40025768
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и знал, срач ниочом
...
Рейтинг: 0 / 0
async await в c#
    #40025771
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt - чувак, у тебя странный код, что в DTO может быть что-то такое, как ты говорил про IEnumerable

а если нет - то и суда нет















.
...
Рейтинг: 0 / 0
async await в c#
    #40025773
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче так и не увидел ничего реально значимого. какая-то религия
...
Рейтинг: 0 / 0
async await в c#
    #40025774
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Откуда ты знаешь, сегодня нужен IEnumerable, а завтра тебе вообще объект своего класса там понадобится

Нет. Сегодня мне нужно то, что я могу перебрать элемент за элементом, и это именно IEnumerable. А, если мне завтра что-то понадобится, то я уже на стороне вызова заверну или превращу этот IEnumerable именно в то, что мне в данном случае нужно, и не буду вперед заморачиваться, что послезавтра понадобится, тем более не мне, а Васе или Пете.
...
Рейтинг: 0 / 0
async await в c#
    #40025809
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
Откуда ты знаешь, сегодня нужен IEnumerable, а завтра тебе вообще объект своего класса там понадобится

Нет. Сегодня мне нужно то, что я могу перебрать элемент за элементом, и это именно IEnumerable. А, если мне завтра что-то понадобится, то я уже на стороне вызова заверну или превращу этот IEnumerable именно в то, что мне в данном случае нужно, и не буду вперед заморачиваться, что послезавтра понадобится, тем более не мне, а Васе или Пете.


Ну и в чём противоречие? Я вроде об этом и говорил, когда тебе нужна максимальная обобщённая последовательность, и тебе не важно, коллекция это, генератор, или отложенный запрос в БД -- берёшь IEnumerable.

Когда у тебя по семантике это коллекция, то использовать IEnumerable не очень хорошо, для этого есть более специфичные интерфейсы, но при этом достаточно свободные для любых манёвров.

В чём проблема-то? Контраргументы дикие какие-то, непонятно к чему ты их приплетаешь. Дескать если там когда-то в будущем бла-бла, что за хрень это вообще? Однозначно к такому посылу, один ответ -- бери object -- он максимально общий и максимально абстрактный. И всё ещё не понимаю, чем тебе object-то не нравится. Это же супер-абстракция, на любые случаи в жизни, о которых ты не узнаешь в хрустальном шаре
...
Рейтинг: 0 / 0
async await в c#
    #40025810
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
А, если мне завтра что-то понадобится, то я уже на стороне вызова заверну или превращу этот IEnumerable именно в то, что мне в данном случае нужно, и не буду вперед заморачиваться, что послезавтра понадобится, тем более не мне, а Васе или Пете.


Короче хз, это демагогия, а не аргументы :)
...
Рейтинг: 0 / 0
async await в c#
    #40025816
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
один ответ -- бери object

Ему говорят, что бухать плохо, а он в ответ "давайте тогда пить только воду". И после этого говорит о демагогии.
...
Рейтинг: 0 / 0
async await в c#
    #40025818
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
один ответ -- бери object

Ему говорят, что бухать плохо, а он в ответ "давайте тогда пить только воду". И после этого говорит о демагогии.


Так это я говорю, что бухать (использовать всегда IEnumerable во всех случаях) плохо. Пей (используй IEnumerable) разумно, тогда это действительно уместно.
...
Рейтинг: 0 / 0
async await в c#
    #40025820
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
используй IEnumerable

Я уже запутался - ты только что советовал использовать object.
...
Рейтинг: 0 / 0
async await в c#
    #40025825
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
используй IEnumerable

Я уже запутался - ты только что советовал использовать object.


Да забей уже ))
...
Рейтинг: 0 / 0
13 сообщений из 88, страница 4 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / async await в c#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]