|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
hVostt1. Внесение зависимости от сервис локатора.Ну есть зависимость от какого-то там интерфейса, описанного в системном слое. Ужас-то в чём? Выше ты предлагал зависимость от другого интерфейса: изолированной команды". Чем та зависимость хуже этой? hVostt2. Жестокое нарушение инкапсуляции.Как инкапсуляцию можно нарушить? Ты вообще читаешь что пишешь? hVostt3. Затруднение, до практической невозможности местами, модульного тестирования.Враньё. При необходимости можно подпихнуть тестовую реализацию IServiceProvider. hVostt4. Снижение читабельности кода, так как теперь по сигнатуре невозможно сказать определённо, что может или не может конкретный класс, т.к. доступ к контейнеру означает доступ ко всему, GOD MODE ON.Страшилка конца 90-х - эпохи начала поклонения паттернам. Скажи ещё, что все публичные поля нужно обёртывать в свойства - вместе посмеёмся. hVosttСомнительный в данному случае, потому что профитом он кожется только для зелёного новичка, ну или для туповатого программиста со стажем . Модератор , почему ты не банишь убогого за хамство и тупость? Он не в первый раз уже позволяет себе лишнего. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 13:26 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей К, Не нужно банить - серьезно, дискутировать не с кем будет. Здесь на форуме и так 3-5 людей кто отвечает на вопросы... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 13:45 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
ЕвгенийВАлексей КИ я наконец хочу услышать конкретные факты, что-то более весомое, чем: "ServiceLocator-у не место в прикладном коде, потому что мне это не нравится и вообще...". Вот ИХМО самое толковое объяснение. Хотя если класс объявить как internal, то нет проблем!Стандартная страшилка, ничего особенного. Причём некоторые страхи связаны с тем, что ServiceLocator описан статическим классом. Я же предлагаю инжектировать IServiceProvider аналогично другим зависимостям. Это многое меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 13:49 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Артем GАлексей К, Не нужно банить - серьезно, дискутировать не с кем будет. Здесь на форуме и так 3-5 людей кто отвечает на вопросы...Ну не банить, предупредить хотя бы. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 13:52 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
хвоста банить?! с дубу рухнули. тут останется тогда один скайна ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 19:17 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
а были времена и МСУ тут ошивался ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 19:46 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей КhVosttСомнительный в данному случае, потому что профитом он кожется только для зелёного новичка, ну или для туповатого программиста со стажем . Модератор , почему ты не банишь убогого за хамство и тупость? Он не в первый раз уже позволяет себе лишнего. ИМХУ сказано нейтрально, банить не за что. Если ты лично сам на себя эти слова спроецировал и обиделся - тут не виноват тот кто это сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 20:25 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей КНу есть зависимость от какого-то там интерфейса, описанного в системном слое. Ужас-то в чём? Смысл в новой зависимости, при чём жёсткой. Захочешь перетащить компонент в другой проект, придётся тащить за ним контейнер. Ужас в том, что ты либо прикидываешься, либо до тебя 2+2 является сложнейшей концепцией для понимания. Алексей ККак инкапсуляцию можно нарушить? Ты вообще читаешь что пишешь? Если компонент обладает доступом к контейнеру, его больше нельзя считать изолированным. Он теперь может всё — зарезолвить любой компонент и выполнить любое действие, и контролировать его теперь нельзя. Никаких гарантий давать нельзя. Всё сломать может любой компонент. Разработчик компонента, который не должен лезть в базу данных, с контейнером может легко накласть на это «не должен» и никто этого не узнает до поры до времени. Алексей КВраньё. При необходимости можно подпихнуть тестовую реализацию IServiceProvider. Когда начнёшь покрывать код тестами, тогда и поговорим. Алексей КСтрашилка конца 90-х - эпохи начала поклонения паттернам. Скажи ещё, что все публичные поля нужно обёртывать в свойства - вместе посмеёмся. Мда... публичные поля... Я бы посмеялся, если бы не было так грустно. А вроде ты давно как уже в разработке. Неужели самому не интересно двигаться дальше в профессиональном смысле? Что на уровне студента-то у тебя всё? Неужели устраивает? Эээхх... Алексей К Модератор , почему ты не банишь убогого за хамство и тупость? Он не в первый раз уже позволяет себе лишнего. Нет смысла хамить, у меня аргументов вагон, а у тебя какие-то наивные детско-студенческие «нехочу-небуду-ненравится». Ну и ладно, чо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 23:30 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Иммануил Канта были времена и МСУ тут ошивалсяСогласен, зря его выгнали.Dima TАлексей Кпропущено... Модератор , почему ты не банишь убогого за хамство и тупость? Он не в первый раз уже позволяет себе лишнего. ИМХУ сказано нейтрально, банить не за что. Если ты лично сам на себя эти слова спроецировал и обиделся - тут не виноват тот кто это сказал.Он сказал, что все кто с ним не согласны являются дословно: "зелёного новичка, ну или для туповатого программиста со стажем". Я с ним не согласен, почему я не должен это воспринимать в свой адрес? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 05:33 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
hVosttСмысл в новой зависимости, при чём жёсткой. Захочешь перетащить компонент в другой проект, придётся тащить за ним контейнер.В новом проекте не будет контейнера, поддерживающего скоупы? hVosttЕсли компонент обладает доступом к контейнеру, его больше нельзя считать изолированным. Он теперь может всё — зарезолвить любой компонент и выполнить любое действие, и контролировать его теперь нельзя. Разработчик компонента, который не должен лезть в базу данных, с контейнером может легко накласть на это «не должен» и никто этого не узнает до поры до времени.Чем инжектирование зависимостей в конструктор/свойства принципиально отличается от запроса через локатор? Заресольвить зависимость любого доступного типа можно и через инжектирование. В этом отношении здесь нет никакой разницы. hVosttНет смысла хамить, у меня аргументов вагон Сам себя хвалишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 05:56 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей КВ новом проекте не будет контейнера, поддерживающего скоупы? В новом проекте может быть что угодно, при правильной разрабокте, компонент можно дёрнуть в другой проект и использовать его вообще в new / using, или с другим контейнером, и вообще в другой архитектуре. Это ж очевидно... Алексей КЧем инжектирование зависимостей в конструктор/свойства принципиально отличается от запроса через локатор? Заресольвить зависимость любого доступного типа можно и через инжектирование. В этом отношении здесь нет никакой разницы. Инжектирование, это внешнее разрешение зависимостей, компонент не знает о том, как зависимости будут ему предоставлены. Локатор и через переданный контейнер, компонет сам вынужден доставать свои зависимости из контейнера, при чём он может достать и вовсе не свои зависимости, а что угодно. Для работы компонента нужен контейнер и локатор. Разница -- просто космос. Ты уж извини меня, и не сочти за хамство, но: ты реально не способен осилить простейшую даже для новичков тему? Чего так жёстко тупишь? Алексей КСам себя хвалишь? Это факт, я аргументирую свои слова, а ты пока не привёл ни одной аргументации. То что ты пишешь, похоже либо на троллинг, либо... Уж лучше бы это был троллинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 08:45 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
hVosttАлексей КВ новом проекте не будет контейнера, поддерживающего скоупы? В новом проекте может быть что угодно, при правильной разрабокте, компонент можно дёрнуть в другой проект и использовать его вообще в new / using, или с другим контейнером, и вообще в другой архитектуре. Это ж очевидно...Реализовать IServiceProvider для тех единичных случаев можно и без полноценного ДИ-контейнера. "Это ж очевидно..." (ц) hVosttАлексей КЧем инжектирование зависимостей в конструктор/свойства принципиально отличается от запроса через локатор? Заресольвить зависимость любого доступного типа можно и через инжектирование. В этом отношении здесь нет никакой разницы. Инжектирование, это внешнее разрешение зависимостей, компонент не знает о том, как зависимости будут ему предоставлены. Локатор и через переданный контейнер, компонет сам вынужден доставать свои зависимости из контейнера, при чём он может достать и вовсе не свои зависимости, а что угодно. Для работы компонента нужен контейнер и локатор. Разница -- просто космос. Ты уж извини меня, и не сочти за хамство, но: ты реально не способен осилить простейшую даже для новичков тему? Чего так жёстко тупишь? Я тебе отвечал про отсутствие разницы применительно к этому твоему утверждению: авторЕсли компонент обладает доступом к контейнеру, его больше нельзя считать изолированным. Он теперь может всё — зарезолвить любой компонент и выполнить любое действие, и контролировать его теперь нельзя. Никаких гарантий давать нельзя. Всё сломать может любой компонент. Разработчик компонента, который не должен лезть в базу данных, с контейнером может легко накласть на это «не должен» и никто этого не узнает до поры до времени.Выходи уже из судорога! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:29 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей КРеализовать IServiceProvider для тех единичных случаев можно и без полноценного ДИ-контейнера. "Это ж очевидно..." (ц) Надо тащить IServiceProvider, и реализовывать его в том объёме, как этого требует компоненты. Таким образом мы получили ещё +1 зависимость. Браво! Алексей КЯ тебе отвечал про отсутствие разницы применительно к этому твоему утверждению: Алексей КВыходи уже из судорога! Аргументация будет? Или очередные инсинуации с красноречием? Почитай, что такое инкапсуляция. Если ты изначально клал на паттерны, теорию и принципы программирования, то о чём мы тогда вообще разговариваем? Иди клади дальше, не пудри людям мозги. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 10:30 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
hVosttАргументация будет?Больше пока не будет. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 10:34 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей КhVosttАргументация будет?Больше пока не будет. Удачи! Не было и не будет, мы уже поняли. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 10:43 |
|
Autofac как в любой точке программы получить резолвер ?
|
|||
---|---|---|---|
#18+
Алексей КСтрашилка конца 90-х - эпохи начала поклонения паттернам. Скажи ещё, что все публичные поля нужно обёртывать в свойства - вместе посмеёмся. Не поверишь, но я даже в JavaScript все оборачиваю в свойства :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 17:18 |
|
|
start [/forum/topic.php?fid=20&startmsg=39184846&tid=1400755]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 137ms |
0 / 0 |