Size: a a a

React: русскоязычное сообщество

2020 April 28

T

The Fallen Phoenix in React: русскоязычное сообщество
The Fallen Phoenix
Ладно, назову так: Конфигурация и СостояниеКонфигурации
Вот)
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Оно должно прозрачно работать.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Гм.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Юра Чеботаев
То есть, я не должен нигде регистрировать свои классы.
А откуда мир узнает о их существовании?
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Какой мир?
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Realm
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
DI должен сам уметь разруливать.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Во. Я придумал, как можно облегчить проблему.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
То есть DI за вас просто регает их?
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Это все равно половинчатое решение, но хоть что-то:

export class Foo extends DI.Base {}


im
port { Foo } from '../../some/shit/deep/hierarchy/Foo.js`

DI.configure({
 [Foo.Self]: { bar: 1 }
})

Типа такого.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
По крайней мере, достаточно умная IDE, которая умеет в рефакторинги обновит путь до файла при перемещении.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
The Fallen Phoenix
То есть DI за вас просто регает их?
Да.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Юра Чеботаев
DI должен сам уметь разруливать.
Здесь возникает фундаментальная проблема: в таком случае игнорируется то обстоятельство, что каждый экземпляр класса живёт и выполняет свою роль в некотором контексте из других объектов, с которыми должен установить корректное взаимодействие. Пытаясь избавиться от понятия контекста приходится костылировать его подделку на основе манипуляции со строками.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
The Fallen Phoenix
Здесь возникает фундаментальная проблема: в таком случае игнорируется то обстоятельство, что каждый экземпляр класса живёт и выполняет свою роль в некотором контексте из других объектов, с которыми должен установить корректное взаимодействие. Пытаясь избавиться от понятия контекста приходится костылировать его подделку на основе манипуляции со строками.
Это все тоже решаемо.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
DI.scope(
{[Foo.Self]: { bar: 2 } },
() => {
 const foo = new Foo()
 foo.bar === 2
})
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Ну вот реальный юзкейс: есть компонент который показывает файловое дерево, и зависимостью ему идёт инстанс драйвера хранения или удаленного доступа.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Юра Чеботаев
DI.scope(
{[Foo.Self]: { bar: 2 } },
() => {
 const foo = new Foo()
 foo.bar === 2
})
Выходит для каждого драйвера нужно будет плодить свой класс
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
У себя чисто ради того, чтобы навесить всю эту машинерию
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Это тоже все решаемо.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
DI.scope нужно только если нужно в моменте что-то заинжектить.
источник