• Как проверить наличие у глубокого свойства родительского свойства в объекте?

    RAX7
    @RAX7
    в черновиках следующего стандарта есть Optional Chaining
    obj?.prop         // optional property access
    obj?.[expr]       // ditto
    func?.(...args)   // optional function or method call
    new C?.(...args)  // optional constructor invocation

    Через babel можно использовать уже сейчас https://babeljs.io/docs/en/babel-plugin-proposal-o... , правда я сам не пробовал
    Ответ написан
    1 комментарий
  • Dependency Injection на пальцах?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    DI позволяет создать единый "реестр", где вы можете указать какие классы будут синглтонами (и.е. один и тот же экземпляр каждый раз), а какие создаваться фабриками (и.е. каждый раз создавать новый экземпляр). Более того, в тех же классах вы можете "подтягивать" нужные вам зависимости (экземпляры классов) просто указывая нужный класс, а DI берет на себя работу того, как именно он получит эти экземпляры. Он упрощает вам жизнь, ибо вы можете один раз указать ЧТО вам нужно вместо того, что бы получать это самому. Более того, в любой момент вы можете подменить одну зависимость на другую. Например, есть у вас интерфейс и два класса его реализующие. Во всем приложении вы общаетесь только с интерфейсом, а в DI вы указываете какой из них будет использоватся, причем это можно менять "на лету".

    Кроме того вы можете строить бесконечные дерева зависимостей классов и даже делать два класса зависимыми один от другого, указывая правила их резолвинга в DI.
    Ответ написан
    Комментировать
  • Dependency Injection на пальцах?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Архитектурные вопросы сложны по определению. Чтобы их понимать, нужно иметь достаточную базу знаний и опыта программирования. В идеале, чтобы понять паттерн, нужно столкнутся с проблемой, для решения которой он был придуман. Если база знаний и опыта уже есть, а понимания всё ещё нет, то прочитайте учебник, вроде "Чистой архитектуры" Мартина.

    А "на пальцах" вам сейчас дадут множество объяснений, большинство которых будут неправильными и запутают ещё больше.
    Ответ написан
    Комментировать
  • Dependency Injection на пальцах?

    @stratosmi
    Ну вот нужно тебе использовать какой то функционал. Реализованный в виде класса, функции и т.п.

    Если ты будешь явно вызывать эту функцию, обращаться к классу - это явная зависимость.

    Но если тебе передать эту функцию или класс как переменную - это внедренная зависимость.

    То есть сегодня одну функцию/класс передали, завтра другую (лишь бы они были совместимы по сигнатуре) - твоя программа даже разницы не заметит.
    Ответ написан
    Комментировать
  • Что означают эти строчки в коде?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    - а почему вы все время пишете черточку, а потом ее перечеркиваете?
    - это Икс....
    Ответ написан
    Комментировать