@oop_ru

Страница 321 из 785
Saen
16.08.2017
21:19:54
я это понимаю) по началу както пытался все проектить, но оно так се получалось, или выяснялось что мне не все выдали, или проект сворачивался на ходу

я както потерял надежду в этой конторе на это))

Sergey
16.08.2017
21:20:05
И что, напроектировали такого, что не выдержало изменений?
компанию заказавшую решение реорганизовали, как следствие полностью перестроился процесс работы с системой.

Saen
16.08.2017
21:20:09
собственно, ищу работу))))

Google
Max
16.08.2017
21:21:26
Ну, ок. Понятно, что часто сразу все пишут реализации, потом выделяют абстракции. Так бывает удобнее и быстрее. Но это же не повод не иметь интерфейсов. Мне кажется в начале речь зашла не об этом.

Sergey
16.08.2017
21:21:31
потому сейчас я трачу на "проектирование" не более пары дней. Есть задачи где надо тратить больше времени, есть задачи где надо для начала оценку рисков произвести

Saen
16.08.2017
21:22:09
как

вот как оценивать риски?

расскажите, я не знаю

Aleh
16.08.2017
21:22:32
при этом нет речи о том, чтобы не иметь интерфейсы совсем, а только о том, что заводить их надо по необходимости

Sergey
16.08.2017
21:22:50
Почему ты решил, что я их просто так завожу?
потому что иначе не может быть проблемы "коллизий" имен)

Max
16.08.2017
21:23:14
Sergey
16.08.2017
21:23:45
расскажите, я не знаю
ну пример такой. Ты делаешь систему и у тебя есть внешние зависимости. Прикидываешь "что будет если упадет эта хрень" и оцениваешь как твоя система отреагирует и какой будет "дэмэдж" для пользователей. Сводишь риски к минимальным (в плане если оно упадет то данные не пострадают) и вуаля.

Aleh
16.08.2017
21:23:51
Да. Дальше осталось выяснить, что означает это "по-необходимости"
когда есть аргументы отличные от “может потом пригодится” для заведения какой-то сущности

Google
Aleh
16.08.2017
21:23:56
это необходимость

Sergey
16.08.2017
21:24:02
Да. Дальше осталось выяснить, что означает это "по-необходимости"
вот понадобился тебе интерфейс - берешь и заводишь

Saen
16.08.2017
21:24:03
а

я думал хитрая вуду магия

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

Sergey
16.08.2017
21:25:21
я думал хитрая вуду магия
не... просто иногда это не очень очевидная штука. У меня был модуль на блокчейнах и мы недостаточно уделили времени анализу поведения оного при форках (это когда у тебя цепочка транзакций раздваиваются и транзакции могут "пропадать"). Ну вот недостаточный анализ и "хилые" ассампшены привели к потере примерно $50К. И это еще повезло.

Max
16.08.2017
21:26:07
вот понадобился тебе интерфейс - берешь и заводишь
Ok, я разработчик мадженты, знаю, что много других компаний расширяют мадженту. Я делаю CustomerInterface, чтобы дать возможность другим делать свои реализации кастомеров. Я делаю Customer класс для базовой реализации. Без суффикса конфликт.

Sergey
16.08.2017
21:26:11
повезло потому что проблему заметили через 15 минут после возникновения

класс Order достоен особого места

Max
16.08.2017
21:27:04
Уходишь от темы.

Max
16.08.2017
21:27:30
что такое базовая реализация?
Которая идет в коробке.

Sergey
16.08.2017
21:27:34
Уходишь от темы.
чем отличается дефолтный твой кастомер от "не дефолтного"?

Sergey
16.08.2017
21:27:46
MagentoCustomer

Aleh
16.08.2017
21:27:51
Которая идет в коробке.
так себе описание)

Saen
16.08.2017
21:28:10
к к к комбо

Google
Max
16.08.2017
21:28:18
MagentoCustomer
Все классы с таким префиксом делать?

Aleh
16.08.2017
21:28:25
DefaultCustomer
такой же костыль, как и суффикс в конце

Saen
16.08.2017
21:28:25
бля, я чет ссу с большим баблом пока работать)

надо в банк знач идти

:D

Sergey
16.08.2017
21:28:44
Все классы с таким префиксом делать?
давай по другому - что есть CustomerInterface - какое поведение оно регламентирует?

Aleh
16.08.2017
21:28:50
Которая идет в коробке.
итак очевидно, что оно идет в коробке, иначе про конфликт имен никто бы и не говорил

Max
16.08.2017
21:29:02
так себе описание)
Просто реализация кастомера, которую сделали в магенте.

Aleh
16.08.2017
21:29:04
зачем тогда разделять CustomerInterface и Customer?

Sergey
16.08.2017
21:29:23
просто возможно можно CustomerInterface разделить на что-то более конкретное?

ну и что разработчики обычно делают с этим CustomerInterface?

Max
16.08.2017
21:29:44
зачем тогда разделять CustomerInterface и Customer?
Чтобы в тайпхинтах писать CustomerInterface и код не зависил от реализации.

Aleh
16.08.2017
21:29:45
Просто реализация кастомера, которую сделали в магенте.
просто как пример и никто это не юзает?

или кто-то юзает? Почему все не юзают?

Sergey
16.08.2017
21:30:02
Чтобы в тайпхинтах писать CustomerInterface и код не зависил от реализации.
приведи примеры реальные "расширения" за счет этого интерфейса

Max
16.08.2017
21:30:17
просто как пример и никто это не юзает?
Юзается в магенте их коробки.

Sergey
16.08.2017
21:30:27
Aleh
16.08.2017
21:30:33
Юзается в магенте их коробки.
а интерфейс им на что?

Sergey
16.08.2017
21:30:36
как можно подменить? что можно подменить?

блин, проще глянуть

Google
Aleh
16.08.2017
21:30:58
блин, проще глянуть
я собираюсь сегодня уснуть, так что не

Max
16.08.2017
21:31:00
Вы что прикалываетесь? :)

Sergey
16.08.2017
21:31:14
Вы что прикалываетесь? :)
может ты прикалываешься?

сча найду твоих кастомеров в магенте

Saen
16.08.2017
21:32:17
забавно, а много кто может быть кастомером чтобы прям интерфейс?

Max
16.08.2017
21:33:01
забавно, а много кто может быть кастомером чтобы прям интерфейс?
Интерфейс это что-то страшное, чтобы "прям"?

Saen
16.08.2017
21:33:11
нет, не страшное

тут скорее вопрос, зачем

Sergey
16.08.2017
21:33:30
я тут насчитал 2 CustomerInterface.

пока-что

Max
16.08.2017
21:33:34
Может быть просто своя реализация кастомера.

Sergey
16.08.2017
21:33:36
какой смотреть?

Saen
16.08.2017
21:33:45
чтоб дисцилированую науку в код, можно и так

Sergey
16.08.2017
21:33:45
Может быть просто своя реализация кастомера.
я не понимаю что там есть и что надо расширять

Aleh
16.08.2017
21:33:48
я тут насчитал 2 CustomerInterface.
кек, и что, прям без конфликта имен?))

Max
16.08.2017
21:33:54
тут скорее вопрос, зачем
Миллион причин может быть.

Sergey
16.08.2017
21:34:09
кек, и что, прям без конфликта имен?))
ну прям 2 разных интерфейса (и судя по всему не те) в разных модулях

но называются одинаково

Aleh
16.08.2017
21:34:31
да просто 2 разных bounded context

Google
Saen
16.08.2017
21:34:31
Sergey
16.08.2017
21:34:33
Magento\Customer\Api\Data\CustomerInterface

этот? не похоже просто

Aleh
16.08.2017
21:34:50
похоже на структура запроса

Sergey
16.08.2017
21:35:08
ответа скорее

типа "моделька"

Aleh
16.08.2017
21:35:10
ну я надеюсь, что это dto для запроса в неймспейсе Data

или ответ, да

Sergey
16.08.2017
21:35:33
раз два три я доктор ти-би-бо а что у нас внутри нука, четыре пять шесть и ты внутри такой же как и все фу, скука

Aleh
16.08.2017
21:36:05
а он только пару минут смотрел код магенты

брр

Sergey
16.08.2017
21:36:56
class Customer extends \Magento\Framework\Model\AbstractModel

Aleh
16.08.2017
21:37:13
типичный active record

Sergey
16.08.2017
21:37:22
https://github.com/magento/magento2/blob/develop/app/code/Magento/Customer/Model/Customer.php#L234-L278

вот за что я ненавижу магенту

расширяемость, абстракции

дрань обычная

Aleh
16.08.2017
21:38:16
https://github.com/magento/magento2/blob/develop/app/code/Magento/Customer/Model/Customer.php#L285 гыгыгы

Max
16.08.2017
21:38:46
Ой, дайте ваш код глянуть

типичный active record
Больше нет.

Aleh
16.08.2017
21:39:48
https://github.com/magento/magento2/tree/develop/app/code/Magento/Customer/Model так тут же нет никакого CustomerInterface

ну т.е. нет никакого конфликта имен

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