@oop_ru

Страница 322 из 785
Max
16.08.2017
21:40:58
Мадженто в свое время задавала тренд, сейчас многие решения устарели и стали антипаттернами. Но когда маджента делала активрекорд, остальной мир конкатенировал запросы и совал в mysql_query()

Max
16.08.2017
21:41:45
тогда зачем это наследование еще более непонятно
Ну, я тут не буду объяснять, зачем в мадженте что.

Google
Sergey
16.08.2017
21:42:03
я не нашел

Max
16.08.2017
21:42:26
иллюзия
Покаж свой код с 2008 года

Sergey
16.08.2017
21:42:37
"тренды" не могут внезапно стать "антипаттернами". Тем более когда мы говорим о чем-то чему меньше 10-ти лет

Max
16.08.2017
21:42:50
я не нашел
Я не говорил, что он там есть. Я гипотетический пример привел.

Sergey
16.08.2017
21:42:53
другое дело "я 10 лет назад не умел а сейчас умею по другому"

Max
16.08.2017
21:43:13
Но вам нужна конкретная реализация, что само по себе забавно.

Sergey
16.08.2017
21:43:19
Я не говорил, что он там есть. Я гипотетический пример привел.
ну вот когда будет конкретика тогда и будем строить абстракции

ты не можешь "обобщать" не зная вариаций

Sergey
16.08.2017
21:44:02
ActiveRecord же
ActiveRecord не антипаттерн. И появился он не в магенте и популярным стал не за счет нее

Aleh
16.08.2017
21:44:18
Покаж свой код с 2008 года
уже тогда был yii и первая симфони

Sergey
16.08.2017
21:44:35
это вполне себе неплохое решение которое жертвует SRP в угоду простоты data-centric приложений коих большинство

вот только ecommerce солюшены не являются data-centric приложениями

Google
Sergey
16.08.2017
21:44:51
и в контексте оных - это антипаттерн

а CQRS/ES были известны с 2004-ого

например

да и дата мэппер запилить простенький (не универсальный) - это не сложно

а так AR стал популярен за счет DHH и его рельсов с бэкскэмпами. Только руби не пхп, там можно делать чуть более интересные штуки

Aleh
16.08.2017
21:46:27
ну вот возьмем буквально соседние файлы https://github.com/magento/magento2/blob/develop/app/code/Magento/Customer/Model/AuthenticationInterface.php интерфейс для авторизации и блокировки при неправильном вводе или еще зачем-то и конкретная реализация https://github.com/magento/magento2/blob/develop/app/code/Magento/Customer/Model/Authentication.php стратегия которой блокировка при неправильном вводе в течение какого-то времени

Sergey
16.08.2017
21:46:32
магенту по сути это тот же битрикс только с закосом в другую сторону

Aleh
16.08.2017
21:46:41
при этом узнать об этом из имени класса или хотя бы описания к нему я не могу

и везде эти синглтоны блин

Sergey
16.08.2017
21:47:44
]\Magento\Framework\App\ObjectManager::getInstance()->get(CustomerAuthUpdate::class);]

Aleh
16.08.2017
21:47:45
вроде ж столько всего в конструктор пихается, в чем проблема все уже инъектить

мб недорефакторили)

Sergey
16.08.2017
21:48:37
мы тут недавно со знакомым на курилке беседу интересную завели начав с фразы "почему-то в проектах где используется сингелтоны редко бывает так что у тебя он только один"

мол в spring большая часть сервисов как бы стэйтфул но почему-то по дфеолту оно все делается сингелтором в контейнере

при том что в спринге у тебя при инициализации контейнера все инициализируется

и как бы сократилось потребление памяти если бы по дефолту прототипами фигачить, инстанцируя только по необходимости

и почему так никто не делает, почему так по дефолту?

часть сервисов как бы стэйтлесс*

Aleh
16.08.2017
21:53:58
ну или еще вот https://github.com/magento/magento2/blob/develop/app/code/Magento/Customer/Model/EmailNotificationInterface.php не буду даже критиковать сам этот интерфейс, но вот реализация https://github.com/magento/magento2/blob/develop/app/code/Magento/Customer/Model/EmailNotification.php в которую все равно прокидывается абстрактный транспорт, что тут можно расширять\заменять и зачем решительно неясно

Sergey
17.08.2017
11:51:00
хохо

Google
Sergey
17.08.2017
11:51:48
бля пытался найти кнопку чтобы удалить, а это другой канал)

Aleh
17.08.2017
11:53:30
@f3ath тут @ExileeD говорит, что его @yetanotherstatsbot могет со спамом бороться

Sergey
17.08.2017
18:07:44
при том что в спринге у тебя при инициализации контейнера все инициализируется
если инициализировать это "по необходимости" тогда все ошибки в конфигурации будут всплывать не сразу при инициализации, а хрен знает когда, когда будет вызван сервис. а это дни, недели..

если нужно lazy, то помечай свои бины как lazy и все

в принципе одним lazy можно отключить целый модуль, т.к если сервисы зависимые используются только в lazy сервисе, то инициализированы они тоже будут не сразу

ну и плюс на каждый "lazy" сервис это будет отдельная прокся

что не есть кул

Den
18.08.2017
08:02:14
Это класс, который принимает некие аргументы, генерирует исключение и возвращает тебе?

Можно генерацию исключения вынести в отдельную команду(не про консоль речь)

А много их?

Ну по файлам я б раскидал

Danil
18.08.2017
08:07:23
а почему нужна фабрика?

почему не создать для каждого исключения класс, который будет расширять \Exception?

Den
18.08.2017
08:08:07
Так и будет

Danil
18.08.2017
08:08:23
вынеси анализатор в сервис

или у тебя уникальный анализ для каждого исключения?

Den
18.08.2017
08:09:33
Прост юбочки нра

Danil
18.08.2017
08:10:38
а как ты создаешь кастомное исключение? перехватываешь обычное, анализиируешь текст и создаешь?

Google
Den
18.08.2017
08:11:35
Я для этого сеттеры пишу, чтоб в чейне делать

Там в перехвате

А перехват как?

Биндом?

Чет не пойму. А что фабрика - это моветон?

Мож тебе Creator?

Или он только для 1 класса?

Тебе же инстансы исключений нужны?

Расширение фабрики для новых обьектов часто затруднительно.

А че у тебя?

В конструкторе

protected $error; public function __construct($error) { $this->error = $error; parent::__construct(); } Типа того че то

Страница 322 из 785