Страница 1 из 2
2amigos/yii2-usuario
Добавлено: 2017.09.11, 13:04
Faenir
Предлагаю обсудить архитектуру модуля
2amigos/yii2-usuario. К примеру сравнив ее с
dektrium/yii2-user который более "стандартный". Как считаете, имеет ли данная архитектура реальные преимущества по сравнению со "стандартной"? Если да, то возможно стоит добавить нечто подобное в документацию, как пример более продвинутой структуры модуля?
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 13:20
zelenin
расскажите, что вы подразумеваете под архитектурой и в чем вы видите различия между модулями.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 15:49
BrusSENS
Faenir писал(а): ↑2017.09.11, 13:04
Как считаете, имеет ли данная архитектура реальные преимущества по сравнению со "стандартной"?
Лично я не понял, зачем контроллеры называть командами, разве команды сложнее? Вроде нет. DI использовать тоже не помешало бы. По сути, имхо, неоправданно переусложненный код, в котором подмена реализации чего-либо превратиться в переписывание кода. Опять же ИМХО
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 16:03
ElisDN
BrusSENS писал(а): ↑2017.09.11, 15:49
Лично я не понял, зачем контроллеры называть командами, разве команды сложнее?
Это консольные контроллеры, которые в yii2-app-basic тоже лежат в папке commands.
BrusSENS писал(а): ↑2017.09.11, 15:49
DI использовать тоже не помешало бы.
Автор передаёт сущности и другие данные в конструкторы вместо передачи зависимостей. Видимо, не умеет делать stateless сервисы для DIC.
BrusSENS писал(а): ↑2017.09.11, 15:49
По сути, имхо, неоправданно переусложненный код, в котором подмена реализации чего-либо превратиться в переписывание кода.
Да, это участь любых универсальных модулей. Этим они отличаются от библиотек.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 17:21
Faenir
zelenin писал(а): ↑2017.09.11, 13:20
расскажите, что вы подразумеваете под архитектурой и в чем вы видите различия между модулями.
Ну если вкратце, то организацию проекта/его элементов и их взаимодействие. По поводу различий, по функционалу их практически нет, но структура модуля другая. Вот и хочу понять, а надо ли оно вообще?
ElisDN писал(а):Автор передаёт сущности и другие данные в конструкторы вместо передачи зависимостей. Видимо, не умеет делать stateless сервисы для DIC.
Можно подробнее про "stateless сервисы для DIC"?
Т.е. если я правильно вас понял, эта структура на практике не дает никакого профита? Просто выпендреж паттернами?
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 17:28
zelenin
Faenir писал(а): ↑2017.09.11, 17:21Просто выпендреж паттернами?
если представить, что существует мир, где паттерны придумали для выпендрежа, то вы правы.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 17:45
Faenir
zelenin писал(а): ↑2017.09.11, 17:28
Faenir писал(а): ↑2017.09.11, 17:21Просто выпендреж паттернами?
если представить, что существует мир, где паттерны придумали для выпендрежа, то вы правы.
Я про данный конкретный модуль, а не про паттерны в целом. Насколько правильно в нем это все используется (Factory, Strategy, Service) и есть ли от них практическая польза?
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 17:48
zelenin
Faenir писал(а): ↑2017.09.11, 17:45
zelenin писал(а): ↑2017.09.11, 17:28
Faenir писал(а): ↑2017.09.11, 17:21Просто выпендреж паттернами?
если представить, что существует мир, где паттерны придумали для выпендрежа, то вы правы.
Я про данный конкретный модуль, а не про паттерны в целом. Насколько правильно в нем это все используется (Factory, Strategy, Service) и есть ли от них практическая польза?
есть очевидно
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 23:35
BrusSENS
ElisDN писал(а): ↑2017.09.11, 16:03
Это консольные контроллеры, которые в yii2-app-basic тоже лежат в папке commands.
Просто команда всё таки другая штука, и консоль было бы разумнее назвать Console
Да и с просонья смотрел код, не посмотрел, что это консольные контроллеры.
ElisDN писал(а): ↑2017.09.11, 16:03
Автор передаёт сущности и другие данные в конструкторы вместо передачи зависимостей. Видимо, не умеет делать stateless сервисы для DIC.
Я о том же.
ElisDN писал(а): ↑2017.09.11, 16:03
Да, это участь любых универсальных модулей. Этим они отличаются от библиотек.
Печально это, очень печально.
Вообще, хоть и не так давно познакомился с шиной команд, но могу сказать: жаль, что в конкретных модулях всё реализовывается с конкретными привязками на контроллеры (даже и на Stanalone экшены иногда). Лучше, если бы все модули предоставляли реализацию каких-либо конкретных команд. Таким образом, пришли бы всего лишь к неким библиотекам, которые не являются модулем, а всего лишь предлагают готовые команды для быстрой его разработки.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.11, 23:45
zelenin
BrusSENS писал(а): ↑2017.09.11, 23:35Просто команда всё таки другая штука
та самая это штука.
BrusSENS писал(а): ↑2017.09.11, 23:35и консоль было бы разумнее назвать Console
это не консоль. Это команды консольного приложения.
BrusSENS писал(а): ↑2017.09.11, 23:35Лучше, если бы все модули предоставляли реализацию каких-либо конкретных команд. Таким образом, пришли бы всего лишь к неким библиотекам, которые не являются модулем, а всего лишь предлагают готовые команды для быстрой его разработки.
в таком случае 80% разработчиков yii не поняли что вообще происходит, а 15 не смогли бы прикрутить. Расширения для тех, кто в yii нашел advanced wordpress.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 00:29
BrusSENS
zelenin писал(а): ↑2017.09.11, 23:45
та самая это штука.
это не консоль. Это команды консольного приложения.
Разве консольный контроллер === команды консольного приложения?
zelenin писал(а): ↑2017.09.11, 23:45
в таком случае 80% разработчиков yii не поняли что вообще происходит, а 15 не смогли бы прикрутить. Расширения для тех, кто в yii нашел advanced wordpress.
Согласен. Именно поэтому упоминал уже на форуме, что стОит доводить до мозга девелоперов, как и что стоит готовить. Объяснить, что такое шина команд, зачем она нужна и в чём профит от её использования. И это касается не только шины команд. На конкретных примерах сообщество и начнёт расти. А так получается, что вводишь в гугол "Yii" или "Yii2" и получаешь кучу статей, которые по сути пережёвывают официальную (!!!переведенную на русский!!!) доку. Best Practices нужно народу. И некоторые моменты из обсуждения в данном разделе можно вполне вынести, как выдержки или даже некие рецепты. Давно уже пора понять, что тут частенько появляется народ, не имеющий вообще понятия, что такое ООП в php, или имеют только поверхностное представление об этом.
P.S.: Тут ТС поднял тему об архитектуре модуля, но опять же, имхо, в обоих модулях из шапки идёт тесная и безжалостная привязка к структуре дефолтных приложений Yii, посему и архитектуры тут никакой не будет. Всё так же завязано что в первом, что во втором случае. Посему проще написать своё, с DI и CommandBus, чем переписывать существующие контроллеры, а потом, не упаси Господь, пытаться поменять что-то в моделях. Лично я не хочу плодить миллион классов-наследников. Это штука на любителя.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 01:42
zelenin
BrusSENS писал(а): ↑2017.09.12, 00:29Именно поэтому упоминал уже на форуме, что стОит доводить до мозга девелоперов, как и что стоит готовить. Объяснить, что такое шина команд, зачем она нужна и в чём профит от её использования. И это касается не только шины команд.
на самом деле это то же самое, что объяснять нищему почему он должен покупать пирожные. объяснить можно, но денег нет.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 01:51
BrusSENS
zelenin писал(а): ↑2017.09.12, 01:42
на самом деле это то же самое, что объяснять нищему почему он должен покупать пирожные. объяснить можно, но денег нет.
Я наверное не особо правильно выразился... Нужно описывать некие Best Practices, склонять сообщество делать так, а не иначе. Хотя... С другой стороны, кому это нужно, найдёт ответы или задаст свои вопросы в данном разделе, кому не нужно - он на эти самые Best Practices положит с прибором, даже если будут примеры в официальной доке. В общем Вы правы.
P.S.:Отличное сравнение, кстати. Надо будет запомнить)))
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 07:45
ElisDN
BrusSENS писал(а): ↑2017.09.12, 01:51
Нужно описывать некие Best Practices, склонять сообщество делать так, а не иначе. Хотя... С другой стороны, кому это нужно, найдёт ответы или задаст свои вопросы в данном разделе, кому не нужно - он на эти самые Best Practices положит с прибором, даже если будут примеры в официальной доке.
Именно. Уже обсуждали в
viewtopic.php?f=12&t=44836,
viewtopic.php?f=34&t=42788 и ранее. Кому всё это нужно - прочтёт книги по архитектуре и документацию других фреймворков на английском и там уже найдёт все нужные Best Practices. А кому не нужно - прождолжит клепать на Yii/Wordpress/Самописах.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 12:42
samdark
А кому не нужно - прождолжит клепать на Yii/Wordpress/Самописах.
На чём "клепать" тут не важно, главное что "клепать"
На всём можно писать прекрасно, ужасно или достаточно хорошо.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 13:12
Faenir
Именно поэтому упоминал уже на форуме, что стОит доводить до мозга девелоперов, как и что стоит готовить. Объяснить, что такое шина команд, зачем она нужна и в чём профит от её использования. И это касается не только шины команд. На конкретных примерах сообщество и начнёт расти
Было бы замечательно.
По теме, хотел просто понять, насколько хорошо написан данный модуль. Редко вижу в открытом доступе что-то отличающееся от стандартной структуры из документации, а тут хоть какие-то намеки на слои.
samdark, как кор разработчик, что думаете о структуре данного модуля?
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 16:12
samdark
Ну... она лучше, чем yii2-user.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 17:44
BrusSENS
samdark писал(а): ↑2017.09.12, 16:12
Ну... она лучше, чем yii2-user.
Вот именно, что лучше
структура, но не
архитектура, о чём ТС собственно и спрашивал.
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 18:13
Faenir
BrusSENS писал(а): ↑2017.09.12, 17:44
samdark писал(а): ↑2017.09.12, 16:12
Ну... она лучше, чем yii2-user.
Вот именно, что лучше
структура, но не
архитектура, о чём ТС собственно и спрашивал.
Что в ней не так, кроме
Автор передаёт сущности и другие данные в конструкторы вместо передачи зависимостей.
?
Re: 2amigos/yii2-usuario
Добавлено: 2017.09.12, 18:44
BrusSENS
Faenir писал(а): ↑2017.09.12, 18:13
Что в ней не так, кроме
Вы путаетесь в понятиях
архитектура и
структура, вот о чём я.