Страница 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 Что в ней не так, кроме
Вы путаетесь в понятиях архитектура и структура, вот о чём я.