2amigos/yii2-usuario

Обсуждаем, как правильно строить приложения
Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

2amigos/yii2-usuario

Сообщение Faenir » 2017.09.11, 13:04

Предлагаю обсудить архитектуру модуля 2amigos/yii2-usuario. К примеру сравнив ее с dektrium/yii2-user который более "стандартный". Как считаете, имеет ли данная архитектура реальные преимущества по сравнению со "стандартной"? Если да, то возможно стоит добавить нечто подобное в документацию, как пример более продвинутой структуры модуля?

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 2amigos/yii2-usuario

Сообщение zelenin » 2017.09.11, 13:20

расскажите, что вы подразумеваете под архитектурой и в чем вы видите различия между модулями.

Аватара пользователя
BrusSENS
Сообщения: 496
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение BrusSENS » 2017.09.11, 15:49

Faenir писал(а):
2017.09.11, 13:04
Как считаете, имеет ли данная архитектура реальные преимущества по сравнению со "стандартной"?
Лично я не понял, зачем контроллеры называть командами, разве команды сложнее? Вроде нет. DI использовать тоже не помешало бы. По сути, имхо, неоправданно переусложненный код, в котором подмена реализации чего-либо превратиться в переписывание кода. Опять же ИМХО
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x

Аватара пользователя
ElisDN
Сообщения: 5026
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение ElisDN » 2017.09.11, 16:03

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
По сути, имхо, неоправданно переусложненный код, в котором подмена реализации чего-либо превратиться в переписывание кода.
Да, это участь любых универсальных модулей. Этим они отличаются от библиотек.

Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

Re: 2amigos/yii2-usuario

Сообщение Faenir » 2017.09.11, 17:21

zelenin писал(а):
2017.09.11, 13:20
расскажите, что вы подразумеваете под архитектурой и в чем вы видите различия между модулями.
Ну если вкратце, то организацию проекта/его элементов и их взаимодействие. По поводу различий, по функционалу их практически нет, но структура модуля другая. Вот и хочу понять, а надо ли оно вообще?
ElisDN писал(а):Автор передаёт сущности и другие данные в конструкторы вместо передачи зависимостей. Видимо, не умеет делать stateless сервисы для DIC.
Можно подробнее про "stateless сервисы для DIC"?

Т.е. если я правильно вас понял, эта структура на практике не дает никакого профита? Просто выпендреж паттернами?

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 2amigos/yii2-usuario

Сообщение zelenin » 2017.09.11, 17:28

Faenir писал(а):
2017.09.11, 17:21
Просто выпендреж паттернами?
если представить, что существует мир, где паттерны придумали для выпендрежа, то вы правы.

Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

Re: 2amigos/yii2-usuario

Сообщение Faenir » 2017.09.11, 17:45

zelenin писал(а):
2017.09.11, 17:28
Faenir писал(а):
2017.09.11, 17:21
Просто выпендреж паттернами?
если представить, что существует мир, где паттерны придумали для выпендрежа, то вы правы.
Я про данный конкретный модуль, а не про паттерны в целом. Насколько правильно в нем это все используется (Factory, Strategy, Service) и есть ли от них практическая польза?

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 2amigos/yii2-usuario

Сообщение zelenin » 2017.09.11, 17:48

Faenir писал(а):
2017.09.11, 17:45
zelenin писал(а):
2017.09.11, 17:28
Faenir писал(а):
2017.09.11, 17:21
Просто выпендреж паттернами?
если представить, что существует мир, где паттерны придумали для выпендрежа, то вы правы.
Я про данный конкретный модуль, а не про паттерны в целом. Насколько правильно в нем это все используется (Factory, Strategy, Service) и есть ли от них практическая польза?
есть очевидно

Аватара пользователя
BrusSENS
Сообщения: 496
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение BrusSENS » 2017.09.11, 23:35

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 экшены иногда). Лучше, если бы все модули предоставляли реализацию каких-либо конкретных команд. Таким образом, пришли бы всего лишь к неким библиотекам, которые не являются модулем, а всего лишь предлагают готовые команды для быстрой его разработки.
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 2amigos/yii2-usuario

Сообщение zelenin » 2017.09.11, 23:45

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.

Аватара пользователя
BrusSENS
Сообщения: 496
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение BrusSENS » 2017.09.12, 00:29

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, чем переписывать существующие контроллеры, а потом, не упаси Господь, пытаться поменять что-то в моделях. Лично я не хочу плодить миллион классов-наследников. Это штука на любителя.
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 2amigos/yii2-usuario

Сообщение zelenin » 2017.09.12, 01:42

BrusSENS писал(а):
2017.09.12, 00:29
Именно поэтому упоминал уже на форуме, что стОит доводить до мозга девелоперов, как и что стоит готовить. Объяснить, что такое шина команд, зачем она нужна и в чём профит от её использования. И это касается не только шины команд.
на самом деле это то же самое, что объяснять нищему почему он должен покупать пирожные. объяснить можно, но денег нет.

Аватара пользователя
BrusSENS
Сообщения: 496
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение BrusSENS » 2017.09.12, 01:51

zelenin писал(а):
2017.09.12, 01:42
на самом деле это то же самое, что объяснять нищему почему он должен покупать пирожные. объяснить можно, но денег нет.
Я наверное не особо правильно выразился... Нужно описывать некие Best Practices, склонять сообщество делать так, а не иначе. Хотя... С другой стороны, кому это нужно, найдёт ответы или задаст свои вопросы в данном разделе, кому не нужно - он на эти самые Best Practices положит с прибором, даже если будут примеры в официальной доке. В общем Вы правы.
P.S.:Отличное сравнение, кстати. Надо будет запомнить)))
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x

Аватара пользователя
ElisDN
Сообщения: 5026
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение ElisDN » 2017.09.12, 07:45

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/Самописах.

Аватара пользователя
samdark
Администратор
Сообщения: 8811
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение samdark » 2017.09.12, 12:42

А кому не нужно - прождолжит клепать на Yii/Wordpress/Самописах.
На чём "клепать" тут не важно, главное что "клепать" :) На всём можно писать прекрасно, ужасно или достаточно хорошо.

Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

Re: 2amigos/yii2-usuario

Сообщение Faenir » 2017.09.12, 13:12

Именно поэтому упоминал уже на форуме, что стОит доводить до мозга девелоперов, как и что стоит готовить. Объяснить, что такое шина команд, зачем она нужна и в чём профит от её использования. И это касается не только шины команд. На конкретных примерах сообщество и начнёт расти
Было бы замечательно.

По теме, хотел просто понять, насколько хорошо написан данный модуль. Редко вижу в открытом доступе что-то отличающееся от стандартной структуры из документации, а тут хоть какие-то намеки на слои.

samdark, как кор разработчик, что думаете о структуре данного модуля?

Аватара пользователя
samdark
Администратор
Сообщения: 8811
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение samdark » 2017.09.12, 16:12

Ну... она лучше, чем yii2-user.

Аватара пользователя
BrusSENS
Сообщения: 496
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение BrusSENS » 2017.09.12, 17:44

samdark писал(а):
2017.09.12, 16:12
Ну... она лучше, чем yii2-user.
Вот именно, что лучше структура, но не архитектура, о чём ТС собственно и спрашивал.
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x

Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

Re: 2amigos/yii2-usuario

Сообщение Faenir » 2017.09.12, 18:13

BrusSENS писал(а):
2017.09.12, 17:44
samdark писал(а):
2017.09.12, 16:12
Ну... она лучше, чем yii2-user.
Вот именно, что лучше структура, но не архитектура, о чём ТС собственно и спрашивал.
Что в ней не так, кроме
Автор передаёт сущности и другие данные в конструкторы вместо передачи зависимостей.
?

Аватара пользователя
BrusSENS
Сообщения: 496
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: 2amigos/yii2-usuario

Сообщение BrusSENS » 2017.09.12, 18:44

Faenir писал(а):
2017.09.12, 18:13
Что в ней не так, кроме
Вы путаетесь в понятиях архитектура и структура, вот о чём я.
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x

Ответить