|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
MonochromatiqueЯ поблагодарил за то, что человек по теме высказался. На скуле это типа редкость!Неожиданно... Всё остальное по-твоему офтоп? Читай внимательнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:36 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
MonochromatiqueАлексей Кпропущено... DI и асинхронности не способствуют читабельности кода. Скорее наоборот... Тоже понятно. Но. Упор на то, что каждый "читает" свой кусок. Ну а если неофит какой вдруг решит "окинуть" взглядом всё приложение в целом, то... Я себе это вообще с трудом представляю.Тупо разбить всё на классы нынче не модно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:37 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей КАлексей Кпропущено... Скомпилируй сначала пример Нахлобуча, перед тем как благодарить. Есть сомнения...Предлагает одно, пишет другое...Во-первых, я написал, что это -- псевдокод. Во-вторых, ты о чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:38 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей КMonochromatiqueпропущено... Тоже понятно. Но. Упор на то, что каждый "читает" свой кусок. Ну а если неофит какой вдруг решит "окинуть" взглядом всё приложение в целом, то... Я себе это вообще с трудом представляю.Тупо разбить всё на классы нынче не модно? Так а смысл топика с самого начала об этом. Насколько разбивать всё по классам. И как следствие применения DI - inject-ировать всё в друг-друга. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:40 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
НахлобучАлексей Кпропущено... Предлагает одно, пишет другое...Во-первых, я написал, что это -- псевдокод. Во-вторых, ты о чем? НахлобучВ твоем конкретном случае можно расчитывать на то, что все платформы умеют получать список ресурсов синхронно , так что Windows-реализацию нужно будет принудительно делать таковой. И тут же предлагаешь использовать асинхронное продолжение через await: Нахлобуч Код: c# 1. 2. 3. 4.
Надеюсь это опечатка? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:41 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей КLRНу давно уже существует "почти стандартное" средство Rx (Reactive Extensions) ( msdn ), на форуме часто упоминалось.Зачем нужно "почти", если есть стандартное TPL. И то верно, Monochromatique, посмотрите пример Using ContinueWith for the Callback Functionality , может это и будет для Вас решением (допустим, "GetFileStringAsync" изначально "GetFileStringSync") ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:42 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
MonochromatiqueНасколько разбивать всё по классам.Истина как всегда где-то посередине. MonochromatiqueИ как следствие применения DI - inject-ировать всё в друг-друга.Как только надоест инжектировать вручную. Кстати, для этого необязательно использовать интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:43 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей КИ тут же предлагаешь использовать асинхронное продолжение через await: Нахлобуч Код: c# 1. 2. 3. 4.
Надеюсь это опечатка? Там же сказано: "Другой вариант". Идея в том, что в клиентском коде динамически опрашиваешь реализации на предмет того, умеют ли они делать что-то нестандартное. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:44 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Кстати. В одной книге видел пример, когда используют MEF и NINJECT вместе. А зачем, разве MEF не покрывает функциональность NINJECT как DI? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:49 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
...в смысле - как контейнер. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:50 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
НахлобучТам же сказано: "Другой вариант".Ок. НахлобучИдея в том, что в клиентском коде динамически опрашиваешь реализации на предмет того, умеют ли они делать что-то нестандартное.В итоге клиент строится исходя из асинхронной реализации. Проще интерфейс сразу сделать асинхронным. Вроде как логика автоматически заменится полиморфизмом. В клиенте не будет лишних if (resourceProvider is IAsyncResourceProvider) { } . ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:51 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей КВ итоге клиент строится исходя из асинхронной реализации.Не сказал бы. Скорее так: клиент в рантайме выбирает подходящую реализацию, а уж что он там с ней делает -- не дело реализации. Алексей КПроще интерфейс сразу сделать асинхронным.Я бы не стал; получится "Square peg in a round hole". Как вариант решения -- в рантайме же оборачивать синхронные реализации в специальную "обертку": Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 13:12 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
НахлобучАлексей КВ итоге клиент строится исходя из асинхронной реализации.Не сказал бы. Скорее так: клиент в рантайме выбирает подходящую реализацию, а уж что он там с ней делает -- не дело реализации.Если вызываемый метод асинхронный, все вызывающие методы, вероятно, автоматически станут асинхронными. Это не всегда, но часто. Код или синхронный, или асинхронный. Нельзя быть "наполовину беременным". НахлобучАлексей КПроще интерфейс сразу сделать асинхронным.Я бы не стал; получится "Square peg in a round hole".Это вынужденная мера. НахлобучКак вариант решения -- в рантайме же оборачивать синхронные реализации в специальную "обертку": Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну да, что-то типа того: Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 13:38 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей К[/src]Ну да, что-то типа того: Код: c# 1. 2. 3. 4. 5. 6. 7.
[/quot] +1, так и нужно писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 14:14 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Алексей КНу да, что-то типа того: Код: c# 1. 2. 3. 4. 5. 6. 7.
+1, так и нужно писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 14:14 |
|
Страсти по DI (IoC).
|
|||
---|---|---|---|
#18+
Monochromatique "вот пример. как лучше всего строить дома? сколько этажей? сколько комнат? лифтов?" И в чем проблема-то? "как лучше всего строить дома?" Зависит от региона. "сколько этажей?" Ограниченно бюджетом, регламентами конкретного региона и возможностями конкретного места. "сколько комнат?" Наибольшую ликвидность имеют однухи. Опять же - зависит от региона. "лифтов?" Принято 4 лифта на парадную на 100 квартир. Интерполировать сможет и третьеклассник. Смотри, я ответил на все ваши вопросы, но вы не в состоянии ответить на мои. Может просто вам кажется , что вы в теме? Бывает и такое. ок. делайте 13 слоёв. и не больше 21-го зависимого класса. точно вам говорю, это бест практикс! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 15:15 |
|
|
start [/forum/topic.php?fid=20&msg=38443288&tid=1403785]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
90ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 190ms |
0 / 0 |