Спасибо за вопросы.
1. Конечно докладчик понимает что в Magento 2 используется Symfony Сonsole Сomponent, в том числе и в примере приведенном в докладе. Почему для демонстрации реализации выбран именно этот пример? В данном примере по мнению автора удачно выбрана абстракция для наследования, что является основной целью LSP.
2. Я и не говорю что Unit тестирование было запрeщено в Magento 1. Я говорю о том, что в виду архитектуры M1 было сложно организовать действительно изолированное тестирование каждого класса.
3. Не совсем понятен вопрос. Тоесть таки нарушаем но чуть чуть? Это как? Вы проде бы и согласны что построение зависимости на основе реализации, а не на основе абстракций это нарушение принципа OCP, но вроде бы и не согласны. Более того я говорю о том что иногда мы можем отходить от следования данного принципа, но все таки это будет отхождение а не «вопиющее» или не «вопиющие» нарушение. Вопрос в том оправдано ли оно. Если мы знаем что мы никогда не будем менять зависимость, то возможно нам и не нужно создавать зависимость на абстракции. Но в случае Magento 2, когда нам предоставлен механизм указания нужной реализации, я считаю, что все таки стоит избегать таких случаев. Где вычитал — Agile Principles, Patterns, and Practices in C# By Martin C. Robert, Martin Micah (http://druss.co/wp-content/uploads/2013/10/Agile-Principles-Patterns-and-Practices-in-C.pdf).
1. Конечно докладчик понимает что в Magento 2 используется Symfony Сonsole Сomponent, в том числе и в примере приведенном в докладе. Почему для демонстрации реализации выбран именно этот пример? В данном примере по мнению автора удачно выбрана абстракция для наследования, что является основной целью LSP.
2. Я и не говорю что Unit тестирование было запрeщено в Magento 1. Я говорю о том, что в виду архитектуры M1 было сложно организовать действительно изолированное тестирование каждого класса.
3. Не совсем понятен вопрос. Тоесть таки нарушаем но чуть чуть? Это как? Вы проде бы и согласны что построение зависимости на основе реализации, а не на основе абстракций это нарушение принципа OCP, но вроде бы и не согласны. Более того я говорю о том что иногда мы можем отходить от следования данного принципа, но все таки это будет отхождение а не «вопиющее» или не «вопиющие» нарушение. Вопрос в том оправдано ли оно. Если мы знаем что мы никогда не будем менять зависимость, то возможно нам и не нужно создавать зависимость на абстракции. Но в случае Magento 2, когда нам предоставлен механизм указания нужной реализации, я считаю, что все таки стоит избегать таких случаев. Где вычитал — Agile Principles, Patterns, and Practices in C# By Martin C. Robert, Martin Micah (http://druss.co/wp-content/uploads/2013/10/Agile-Principles-Patterns-and-Practices-in-C.pdf).