Дамы и господа, ПМ попросил подобрать вопросы для технического теста
[quote:2kgvtywr]The questions can be short with multiple choices (can be a trap) or longer questions. However, the overall test should not take more than 30 minutes so I’d like to get mostly multiples choice questions and around 2 longer questions. This test will also be used to evaluate all level of developers (junior to senior) so we need to have questions of all levels.
[/quote:2kgvtywr]
есть у кого что-нить интересное?
Комментариев нет
Ответить
Для отправки комментария вам необходимо авторизоваться.
[quote="Algo":1madv8l2][quote="Ghost":1madv8l2][quote="Ghost":1madv8l2]а не возвращать ничего из функции можно для селекта?[/quote:1madv8l2]
вот, нашел что хотел:
[code:1madv8l2]vendorsList.ToList().ForEach(x => apVendors.add(x));[/code:1madv8l2]
здесь метод add() не обязан возвращать тот же тип в отличие от select-a.[/quote:1madv8l2]

ну надо учитывать, что сначала ToList все енумерирует, а потом еще раз по списку вызывается ForEach. Не айс на мой взгляд, но все зависит…[/quote:1madv8l2] ну вот и я задумался типа чего это стоит
блин, «не понос так золотуха»
«что же делать, доктор?!»
без ForEach формата вызова функции рефактринг уже не будет таким быстрым из-за несовместимости существующих методов; хотя может быть это косвенный признак code smell-а и надо что-то с этим делать по-любому
может анонимных делегатов/енклоужи можно вставлять?
а че мы сделать то хотим? в Select add вставлять? мне кажется, это некрасиво — из названия селекта следует, что там чтото выбирают.
я бы смотрела в сторону AddRange у результирующего списка
[quote="Algo":1v0o1rcz]а че мы сделать то хотим?[/quote:1v0o1rcz] не хотим пользоваться обычными foreach с трехэтажными кондишенами, улучшить кодинг стайл, читабельность и не ухудшить производительность, хотя последнее пока не критично, но расслабляться нельзя — можно привыкнуть
[quote="Ghost":2zoyc7mb][quote="Algo":2zoyc7mb]а че мы сделать то хотим?[/quote:2zoyc7mb] не хотим пользоваться обычными foreach с трехэтажными кондишенами, улучшить кодинг стайл, читабельность и не ухудшить производительность, хотя последнее пока не критично, но расслабляться нельзя — можно привыкнуть
[/quote:2zoyc7mb]
паттерн Strategy спасет отца русской демократии:)
то, что локо выше писал — самый тренд.
вот так —
conditions.Select(r => postVendor(r)); — не надо. ПОтому что Селект — выбирает.( и выбирает не обязательно тот же тип — можно новый делать)
Если никак с addRange не получается, то уж лучше простой и всем понятный форич в котором добавлять в список.
дык в итоге так на так и выйдет по производительности: либо доп цикл внутри АddRange() либо доп цикл в .ForEach() (unless АddRange() работает иначе и, например, сцепляет два списка одной операцией, а не копирует в цикле); и результирующий список енумерацией будет создан в обоих случаях.
Другой вопрос что может быть идеологически это неправильно и нужно четче разделать где условия, где выборка, а где передача результата куда-то еще дальше.
[quote="Ghost":39zb4f12]дык в итоге так на так и выйдет по производительности: либо доп цикл внутри АddRange() либо доп цикл в .ForEach() (unless АddRange() работает иначе и, например, сцепляет два списка одной операцией, а не копирует в цикле); и результирующий список енумерацией будет создан в обоих случаях.
[/quote:39zb4f12]
Другой вопрос что может быть идеологически это неправильно и нужно четче разделать где условия, где выборка, а где передача результата куда-то еще дальше.
Сам селект еще ничего не занумерировал. Енумерация будет позже , и я не понимаю, как можно добавить айтемы в список без енумерации вообще. речь шла о том, что ToList.ForEach — делает проход по списку дважды.
я понял, что я не понял: в идеале нужно передавать функцию на получение списка, а не сам список; ToList() таки создает (промежуточный) список найденных объектов, отрывая нас от датасорса и мы возвращаемся back to square one с этим .ForEach

получается, что ToList() это мовэтон в правильном linq-e?
По привычке всё время хочется манипулировать объектами, а не алгоритмами
[quote="Ghost":2nukqgi1]я понял, что я не понял: в идеале нужно передавать функцию на получение списка, а не сам список; ToList() таки создает (промежуточный) список найденных объектов, отрывая нас от датасорса и мы возвращаемся back to square one с этим .ForEach
[/quote:2nukqgi1]
получается, что ToList() это мовэтон в правильном linq-e?
По привычке всё время хочется манипулировать объектами, а не алгоритмами
моветон — не понимать, что происходит и писать от балды.
Вот тут интересное обсуждение со ссылками.
http://stackoverflow.com/questions/7816 … ch-in-linq
хотя я для себя пока не решила, хорошо ли юзать All
и вот тут еще
http://stackoverflow.com/questions/3585 … -iteration