@oop_ru

Страница 123 из 785
Sergey
25.02.2017
13:22:24
ну то есть что бы максимально быстро можно было бы обкатывать концепции

у меня есть на примете

что-то типа "клон инстаграма" небольшой

у тебя будет там сущности 3-4

Google
Sergey
25.02.2017
13:22:54
а выборок можно нагенерить миллион и 3 базы данных для этого юзать)

Evgeniy
25.02.2017
13:23:12
ага

кстате насчет разных бд, обычно данные кэшируются в разных nosql

и тд

вот это все вместе должно сочитаться как то

Sergey
25.02.2017
13:25:12
ну у меня кейс сейчас, поиск идет в elasticsearch и мне просто возвращаются id-ки и я потом тупо из postgresql делаю выборку нужных данных

а для популярных запросов можно кэш для доктрины в редисе сделать

Evgeniy
25.02.2017
13:26:22
я считаю что всякие доктрины это монстры )))

но это мнение слишком радикально

Sergey
25.02.2017
13:26:36
я считаю что всякие доктрины это монстры )))
авторы доктрины с тобой согласы)

Evgeniy
25.02.2017
13:26:49
так же как и моя нелюбовь к наследованию среди классов (но не интерфейсов)

Sergey
25.02.2017
13:26:58
они сейчас активно выпиливают код из доктрины но когда случится 3-я версия пока не понятно

Google
Evgeniy
25.02.2017
13:27:15
поэтому думаю надо сделать бложек чтобы объяснять свою позицию

чтобы кинуть ссылку не объяснять

но хорошо что они улучшают

Sergey
25.02.2017
13:28:20
моя позиция совпадает с мнением авторов доктрины: - наследование хуже композиции - ставим всем классам final по дефолту - ORM нужны только для OLTP - Если вам надо сделать репорт - SQL хороший выбор

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

другой вопрос что если ты пользуешься доктриной как любой другой ORM - то будет плохо

сущности без логики... flush-и в сервисах.... merge/detach выпилят и чудно

они в 3-ей доктрине будут добавлять возможность делать просто TableGateway к слову

ох пойду пилить PR для доктрины

Evgeniy
25.02.2017
14:14:14
В большинстве случаев

Наследование в классах в долго срочной переспективе усложняет жизнь обоим классам

Evgeniy
25.02.2017
14:15:09
Особенно родителю

Sergey
25.02.2017
14:15:23
есть исключения, но только 10% случаев когда наследование используется хоть сколько нибудь оправдано

а так в основном "не ну это... наследование что бы дублирование убрать"

Dmitry
25.02.2017
14:30:01
/stat@combot

Combot
25.02.2017
14:30:01
combot.org/chat/-1001071233926

Dmitry
25.02.2017
14:30:03
/stat@combot

Google
Combot
25.02.2017
14:30:03
combot.org/chat/-1001071233926

?
25.02.2017
15:02:03
Ну а как же расширение и/или переопределение некоторых методов базовых классов? Например создание своих исключений

Sergey
25.02.2017
15:02:58
поясни свой пример

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

и уж тем более зачем свои исключения добавлять?

?
25.02.2017
15:04:10
сейчас

Sergey
25.02.2017
15:04:18
и незабудь почитать про LSP)

?
25.02.2017
15:12:47
Я про это говорю и это чуть ли ни в каждой либке так делают От на примере symfony, cakephp, guzzle: https://github.com/symfony/symfony/tree/master/src/Symfony/Component/Config/Definition/Exception https://github.com/cakephp/cakephp/tree/master/src/Console/Exception https://github.com/cakephp/cakephp/tree/master/src/ORM/Exception https://github.com/cakephp/cakephp/tree/master/src/View/Exception https://github.com/guzzle/guzzle/tree/master/src/Exception

Что думаете по этому поводу?

Ну или другой пример, всеми известная либка https://github.com/briannesbitt/Carbon

Sergey
25.02.2017
15:34:38
Что думаете по этому поводу?
эксепшены наследовать норм, там нет поведения.

?
25.02.2017
15:43:52
Короч если нужно реализовать дополнительную функциональность в стандартных классах без наследования никуда и еще такой вопрос возник прям ща, если наследование это что-то не очень хорошее, что тогда на счет абстрактных классов их тоже лучше никогда или в редких случаях юзать? Ведь без наследования они никто и звать их никак?

Хотя " ставим всем классам final по дефолту" дает ответ, но не полный

?
25.02.2017
16:15:48
Которые в самом пыхе

Sergey
25.02.2017
16:15:57
Которые в самом пыхе
а тебе часто их надо расширять?

?
25.02.2017
16:17:24
нет конечно

абстрактные классы - иногда они полезны, чаще нет.
Хотя думаю, что трейты их могут заменить, они умеют тож, что и абстрактый класс и даже больше возможностей у трейтов, что думаете по этому поводу??

Google
guga
25.02.2017
17:17:06
В жабке все стоновиться резко плохо, если файнал классы писать решили.

У нас как-то развитие фреймворков пошло по другому пути

guga
25.02.2017
17:18:09
Ну если ты хочешь интегрироваться во фреймворки, как обойтись без наследования?

Evgeniy
25.02.2017
17:18:16
трейты тоже ненужны
Тут можно поспорить

?
25.02.2017
17:18:26
пока они не научатся имплементить интерфейсы
хм, а ну этого не хватает, согласен

Evgeniy
25.02.2017
17:18:33
Трейт это замена копипаста в пхп

Admin
ERROR: S client not available

guga
25.02.2017
17:18:46
интерфейсы
Много писать

Sergey
25.02.2017
17:18:46
Трейт это замена копипаста в пхп
именно, в них не должно быть ни грама логики

просто по другому

guga
25.02.2017
17:19:23
Так за тебя уже сделали абстракт бла-бла

Sergey
25.02.2017
17:19:33
Так за тебя уже сделали абстракт бла-бла
ты путаешь причину и следствие)

guga
25.02.2017
17:19:36
В котором ты только логику бизнеса написал

Sergey
25.02.2017
17:19:42
завтра тебе сделают интерфейс с дефолтными методами)

Sergey
25.02.2017
17:20:02
упрешься лишь в обратную совместимость, вот это хороший такой тормоз развития

Google
Sergey
25.02.2017
17:20:18
Они уже есть
только public, скоро и остальное завезут

guga
25.02.2017
17:20:51
упрешься лишь в обратную совместимость, вот это хороший такой тормоз развития
И их добавили, что бы именно обратную совместимость и не сломать

Evgeniy
25.02.2017
17:21:25
Они ломаются или меняются

?
25.02.2017
17:21:44
Вы про что?

Sergey
25.02.2017
17:22:03
Посмотри при смене мажорного релиза
не путай библиотечку или фреймворк и язык уровня java на котором уже десятилетиями что-то пишут

Evgeniy
25.02.2017
17:22:17
Просто при наследование от стороннего кода от него чложно отвязатся

Sergey
25.02.2017
17:22:35
короч

Evgeniy
25.02.2017
17:22:36
А со временем жто становится ограничением

Sergey
25.02.2017
17:22:53
давайте подытожу свою мысль, а то вы сейчас в рассуждения "а как же быть с легаси" пойдете

Evgeniy
25.02.2017
17:23:03
Это очень холиварная тема

guga
25.02.2017
17:23:06
А как быть с моками и файнал бай дефолт, как вы тут пропагандируете?

Sergey
25.02.2017
17:23:06
НОВЫЙ код надо писать так, что бы от ваших классов не нужно было наследоваться.

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

наследование в классах обычно предполагает что... как бы он делает явно не одну маленькую штуку)

ибо иначе маленькую штуку можно было бы заменить другой маленькой штукой

guga
25.02.2017
17:24:50
Ну очень холиварно, но в целом я согласен, что композиции более гибкая

Sergey
25.02.2017
17:25:34
повторюсь на всякий случай - я не говорю что "никогда не надо юзать наследование" - я говорю лишь о том что перед тем как думать в это сторону надо хорошенько так подумать "а можно ли без него"

и в подавляющем большинстве случаев мало того что можно так еще и красивее выходит

Evgeniy
25.02.2017
17:26:36
Но наследование в интерфейсах это норм

Речь только о наследование в классах

Sergey
25.02.2017
17:27:21
да

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