@oop_ru

Страница 619 из 785
Гена
24.04.2018
15:29:25
звучит как какая-то какаха
Возможно... Я не умею объяснять

Google
Ilya
24.04.2018
17:53:18
Есть у меня кучка моделей, которая обладает ценами. Цену надо как то модно выводить. Может копейки обрезать, может разделители тысячам вывести. У моделек может быть несколько цен - с налогом, старая цена, акционная цена, актуальная и тд. Значится делаю для этих моделей представления для юи с всякими вспомогательными методами в которых я еще и инициализирую представления для цен по надобности Явно я велосепидирую и чего-то не знаю, может как-то лучше можно реализовать? И как с этим правильно работать. В контроллере достаю модельки, пихаю их в типа фабрику где мне представления нагенерируются и отдаю во вью?

MVVM гуглится, это же не то?

Denis
24.04.2018
18:07:20
ни как, от слова совсем, это тоже самое что и трейт, с точки зрения абстракции и тп он не несет никакого смысла так как инстанс не может быть создан
Свои пять копеек суну: уже не раз слышал заявления, что мол реализации в абстрактном классе это моветон. Почему? Предположим есть некий апи. За каждую энтити с которой апи умеет работать, отвечает свой класс. Но у каждого такого класса должен быть набор "инфраструктурных" методов, часть из которых будут просто общими (реализация в абстрактном классе), а часть отличаются реализацией, но совпадают по сигнатуре (можно интерфейсом, можно абстрактным методом в родителе). Я эту схему у себя делаю через абстрактный класс. Удобно, расширяемо, нет дублирования. Чтяднт?

f4rt~
24.04.2018
18:39:08
https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Model.php для примера, базовый класс Eloquent от которого наследуются все модели :)

чисто на затравку

Maksim
24.04.2018
18:39:31
Хм, а скинь гист? Ты юниты пишешь?
да нету никаких проблем с юнитами) ну прям вообще никаких)

Max
24.04.2018
18:41:51
чисто на затравку
Там есть хоть один абстрактный метод?

Гист?
Github Gist

Maksim
24.04.2018
18:42:57
так и что ты в гисте увидеть хочешь?)

как тестировать абстрактные классы?)

Google
Max
24.04.2018
18:43:10
Ну пример кода, где там абстрактный класс

Maksim
24.04.2018
18:43:50
ну, предположим тебе скинули пример абстрактного класса. Дальше что?

и всё ещё не понятен наброс за тесты)

Denis
24.04.2018
18:52:15
Там есть хоть один абстрактный метод?
Гиста нету, рабочий проект. Абстрактные методы есть, но их действительно не много. В основном в родителе реализация флоу, а в наследника реализация деталей каждого этапа этого флоу. Абстрактные точно методы под каждый http метод (для реста) и ещё парочка, сейчас уже не помню, надо с компа смотреть

Maksim
24.04.2018
18:52:56
ну так-то их и не должно быть много)

Max
24.04.2018
18:54:13
ну, предположим тебе скинули пример абстрактного класса. Дальше что?
Я про то не лучше ли там сделать через агрегацию

Чисто предложение

Denis
24.04.2018
18:54:42
ну так-то их и не должно быть много)
Я к тому спрашивал, что у меня и абстрактные и реализованные присутствуют

Я про то не лучше ли там сделать через агрегацию
Там логика примерно следующая : в абстрактном классе есть метод handle(Request $r) Он берет реквест, вариант из него http-метод, тип и id запрошенной энтити. Получает инстанс энтити (реализованным в наследнике абстрактным классом) и дёргает соответствующий http-методу метод класса наследника (crud методы тоже абстрактно заданы) Полученный ответ валидирует своим прайватом на соответствие требуемой структуре и отдаёт обратно контролеру. Если в родителе есть набор методов вида makeSuccessResponse($data), makeNotFoundResponse($message) и прочие утилитки. На выходе я могу отдавать задачу джуну, который пишет в наследнике получение энтити и гидрацию её в массив, да раскладывает это по поддерживаемых crud'ам. И у него минимум пространства для ошибки. Profit же

handle() ещё и финальный для надёжности

code4aman
24.04.2018
19:24:25
Maksim
24.04.2018
19:25:46
инициализация объекта?
фишка в том, что к инициализации объекта он отношения не имеет)

Дмитрий
24.04.2018
19:27:03
Мимо проходил

code4aman
24.04.2018
19:29:31
фишка в том, что к инициализации объекта он отношения не имеет)
смысли? например есть в класе readonly поле, в конструкторе задаем его... чувствую сейчас пошлют читать историю чата ?

Maksim
24.04.2018
19:30:22
смысли? например есть в класе readonly поле, в конструкторе задаем его... чувствую сейчас пошлют читать историю чата ?
ну если лень читать, то вкратце это просто "хэндлер события") сам объект создаётся где-то там, далеко, в нарнии) ровно как и деструктор)

но перечитать полезно)

Mykola
24.04.2018
19:34:22
инициализация объекта?
к конструктору куча вопросов: - метод ли это? (а должен ли?) - что делать с наследованием, полиморфизмом и другими LSP в отношении конструктора - если конструктор - это что-то из разряда жизненного цыкла обьекта, то что с этим делать? - как сделать без конструтора?

я пока склоняюсь к мысли, что конструктор - вообще вредная конструкция, которая всё портит

Maksim
24.04.2018
19:37:45
я бы не был столь категоричен) просто не стоит искать проблем на ровном месте)

Google
Дмитрий
24.04.2018
19:37:52
Программа — это вредная конструкция которая лежит между задачей юзера и его реализацией

ИЧСХ, всё портит

Maksim
24.04.2018
19:38:10
так-то жить тоже вредно) от этого болеют и умирают)

Mykola
24.04.2018
19:38:29
давайте про науку, а не про бла-бла, ок?

andretshurotshka?❄️кде
24.04.2018
19:38:40
Опять конструкторы

Mykola
24.04.2018
19:38:46
я тоже люблю выпить пива, и поговорить о том, что лучше пить пиво, чем его не пить

Maksim
24.04.2018
19:38:53
ну твоя наука от бла-бла не сильно отличается)

andretshurotshka?❄️кде
24.04.2018
19:38:53
давайте про науку, а не про бла-бла, ок?
Удали чат или переименуй в ФП

Mykola
24.04.2018
19:39:06
при чем тут фп?

andretshurotshka?❄️кде
24.04.2018
19:39:14
Наука типо

А при чем ооп

Дмитрий
24.04.2018
19:39:29
я тоже люблю выпить пива, и поговорить о том, что лучше пить пиво, чем его не пить
Если тебе кажется что твоя постановка вопроса чем-то отличается — тебе кажется

Mykola
24.04.2018
19:40:07
andretshurotshka?❄️кде
24.04.2018
19:40:19
да просто я удивился, что последний раз писали про конструкторы когда я заходил

Maksim
24.04.2018
19:40:21
джуниор пхп девелопер?
хуже: электромонтёр на заводе

andretshurotshka?❄️кде
24.04.2018
19:40:29
и щас опять

Maksim
24.04.2018
19:40:37
ты решиил ЧСВ потешить, или где?)

Mykola
24.04.2018
19:40:42
ну недорешали же

всем бы лишь языком почесать

Google
Mykola
24.04.2018
19:41:06
а не конструктив предлагать

andretshurotshka?❄️кде
24.04.2018
19:41:37
че ты хотел в чате

Mykola
24.04.2018
19:41:52
:(

думаешь нет никаких шансов?

code4aman
24.04.2018
19:42:42
я пока склоняюсь к мысли, что конструктор - вообще вредная конструкция, которая всё портит
ну это просто такой инструмент, он единственный доступный в каком-то случае, просто делать его приватным и все ок

Maksim
24.04.2018
19:43:32
эти мамкины любители конструктива...

Дмитрий
24.04.2018
19:43:40
Мне интереснее что он может предложить в замен

Mykola
24.04.2018
19:43:52
дык, почему я

уже все придумано до нас

Дмитрий
24.04.2018
19:43:59
Хейтить легко и приятно, улучшать и развивать не оч

code4aman
24.04.2018
19:45:25
ну это же неправда
ну может можно через какую-то магию провернуть то, для чего есть инструменты из коробки

Mykola
24.04.2018
19:46:15
дык, зачем вы сюда все зашли, если вас устраивает сайты на вордпресе делать и не париться?

есть специальные чаты по вордпресу

Maksim
24.04.2018
19:46:31
херасе конструктив) зашкаливает просто

Mykola
24.04.2018
19:46:37
мы тут бывает обсуждаем базовые концепции ооп и зачем они нужны

вот кто обьяснит почему нужен конструктор?

Дмитрий
24.04.2018
19:47:00
дык, почему я
Ты реально не видишь проблемы?)

code4aman
24.04.2018
19:47:01
так-то math.sqrt тоже не чистая функция по своей природе, но это не мешает никому на более высоком уровне абстракции

Дмитрий
24.04.2018
19:47:11
Ну да, плохо, дальшейшие шаги то какие?)

Google
Mykola
24.04.2018
19:47:35
code4aman
24.04.2018
19:47:41
засеть его

Maksim
24.04.2018
19:47:45
считай его стартовым набором фикстур, если угодно. а вот в чём твоя проблема - кроме ахуенно раздутого чсв - большой вопрос)

andretshurotshka?❄️кде
24.04.2018
19:47:53
дык, зачем вы сюда все зашли, если вас устраивает сайты на вордпресе делать и не париться?
Я думал тут фпшники троллят друг друга, разговаривая про ооп

code4aman
24.04.2018
19:48:37
нет, ридонли же

Mykola
24.04.2018
19:48:50
ну сделай сеттер, почему конструктор?

code4aman
24.04.2018
19:49:09
чтоб не менялось по жизни объекта

Дмитрий
24.04.2018
19:49:34
> ну сделай сеттер Приехали

Mykola
24.04.2018
19:49:38
а явно вызвать конструктор мне кто помешает?

Дмитрий
24.04.2018
19:49:59
Как и стрелять в ногу в упор, никто

Mykola
24.04.2018
19:50:22
точно так же я могу не вызывать сеттер попозже

code4aman
24.04.2018
19:50:24
а явно вызвать конструктор мне кто помешает?
так кто мне про наружение LSP говорил, лол?

Mykola
24.04.2018
19:50:33
или зафризить обьект, как в зенде первом

так где в сеттере нарушение lsp? там все четко

а вот в конструкторе - сплошь и рядом

сигнатура конструктора ребенка часто тупо отличается от сигнатуры родителя

Дмитрий
24.04.2018
19:51:29
или зафризить обьект, как в зенде первом
Мне уже интересно насколько глубоко мы сейчас будем падать

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