@oop_ru

Страница 714 из 785
Артур Евгеньевич
07.08.2018
09:15:30
в соседнем чате уже обсудили
я только в этом общаюсь про ООП

F01134H
07.08.2018
09:15:39
я б сказал что овер дохера воды там

Sergey
07.08.2018
09:15:54
Читали? https://habr.com/company/jugru/blog/419179/
очередная хуита с базвордами.

F01134H
07.08.2018
09:15:57
и много тем но каждая описана очень посредственно

Google
Sergey
07.08.2018
09:16:22
лучше уж почитать какой-нибудь clean code

F01134H
07.08.2018
09:16:44
clean code божественен

возможно там не так много полезной инфы, но читается зато конфетка

возможно там не так много полезной инфы, но читается зато конфетка
я имею ввиду в сравнении с более упоротыми книгами про рефакторинг etc

Артур Евгеньевич
07.08.2018
09:17:46
мне clean architecture понравилась

хотя ближе к середине книги не покидало впечатление что автор просто экстраполирует SOLID на разные уровни архитктуры системы

Артур Евгеньевич
07.08.2018
09:18:59
там даже альтернативные названия этим принципам придуманы были

Sergey
07.08.2018
09:19:05
ну и как бы... архитектура должна создавать ограничения что бы проще было соблюдать принципы)

F01134H
07.08.2018
09:19:09
оч сухой научный стиль

Дмитрий
07.08.2018
09:19:34
А как иначе

Google
Артур Евгеньевич
07.08.2018
09:19:40
хз рефактринг фаулера тож маст рид
оч сложно читается когда по нескольку страниц описывается "у нас есть поле в классе которое никто не юзает кроме одного места, сейчас я в трех листингах покажу как убрать это поле в локлькную переменную"

Sergey
07.08.2018
09:20:38
вам книжки про архитектуру с разукрашками надо?

Артур Евгеньевич
07.08.2018
09:21:13
ну мне нравится с картинками если серьезно говорить)

Дмитрий
07.08.2018
09:21:14
F01134H
07.08.2018
09:21:17
да

с картинками

F01134H
07.08.2018
09:22:07
А если серьезно, можно писать материал описывая какие то интересные примеры и т.д., и более... в авторском стиле, а не научно публицистическом

но это просто никому не вперлось

вон одна книжка вышла за N лет

Артур Евгеньевич
07.08.2018
09:22:28
Помню мен очень понравилось в одной статье как обяънялось что такое мультеплексирвоание запросов)



Артур Евгеньевич
07.08.2018
09:22:38


:)

F01134H
07.08.2018
09:22:42
Sergey
07.08.2018
09:22:53
для автора?
и для читателя. ты научишься делать один конкретный проект

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

F01134H
07.08.2018
09:23:12
и для читателя. ты научишься делать один конкретный проект
Ты не прав, все зависит от того что написано

Google
F01134H
07.08.2018
09:23:46
я например читал такую же книгу про ООП, когда только учился, там довольно абстрактно описывались вещи, но на низком уровне на аналогиях приводились примеры

заходило на ура

Sergey
07.08.2018
09:23:58
просто много примеров когда люди читают книгу с примерами и потом не могут рассказать о чем она потому что все внимание было к примерам и деталям а сути не вышло

F01134H
07.08.2018
09:24:00
и никакой привязки к деталям не было

Sergey
07.08.2018
09:24:21
не, примеры нужны, но "проект разобрать в книжке" это херня

F01134H
07.08.2018
09:24:29
согласен

Артур Евгеньевич
07.08.2018
15:31:01
Привет! Мы с друзьями создали уютный и полезный чатик по БД для обсуждения разных вопросов возникающих при работе с любыми системами хранения и управления данными. В русском комьюнити существует не так уж много чатов на данную тематику, и, откровенно говоря атмосфера в них не соответствует нашим взглядам на то как должно выглядеть продуктивное, взаимоуважительное общение технарей в интернете. В чате приветсвуется обсуждения вопрсоов любых уровней, от нубских до rocketScience Если вам у нас понравилось, то поделитесь ссылкой с друзьями, которым будут интересны наши разговоры https://t.me/dbGeeks

Ivan
08.08.2018
07:05:16
А в этом чатике текст другой..

Здорова, бандиты! Мы с друзьями основали отличный чат по БД для дискусса разных вопросов возникающих при работе с любыми системами хранения и управления данными. В русском комьюнити нет нормального чата на эту тему(только 1 неудачный высер от чсвшных лузеров) . В чате приветсвуется обсуждения вопросов любых уровней, от нубских до rocketScience Если вам у нас понравилось, то поделитесь ссылкой с друзьями, которым будут интересны наши разговоры. СЛАВА БАЗАМ ДАННЫХ!!! https://t.me/dbGeeks

Oleg
08.08.2018
07:24:53
Там цу, видимо, чуть другая

Roquie
08.08.2018
11:26:25
Текущий авторизованный пользователь API относится к слою работы с базой данных или нет? Спрашиваю с целью, куда засунуть проверки ролей текущего пользователя, чтобы сократить объем выборки из таблиц (не все всем дозволено видеть, в отличие от админа).

Roquie
08.08.2018
11:42:16
Под слоем БД подразумевается обычные репозитории. Тут такой момент, что это вроде бы и бизнес логика, а вроде бы и нет. Правила на выборку довольно специфичные и относятся ко всем таблицам, где присутствует user_id. Привык ограничивать доступ к экшену контроллера еще на подходе, но вот тут попался нестандартный кейс. Если это положить в репозиторий, тогда получу дубликаты кода в каждом месте (в каждом репозитории), где надо применять эти проверки. Мест пока всего 3, а может быть больше. С другой стороны, если проверки положить в сервис, то прощай нормальное тестирование без запуска всего фреймворка с юзер-аутентификацией. ?

Roquie
08.08.2018
11:54:29
Хм. Что тогда делать с одинаковыми запросами на выборку? Например, если у меня роль Агент, то я должен из пользователей выбрать самого агента и всего его клиентов в базе. То же самое касается и других таблиц, только там уже привязка не к id, а к user_id. Да и объект другой. Но логика выборки сохраняется.

Adel
08.08.2018
12:01:40
ну такова судьба у тебя :) там наверняка можно подрефакторить, но сторого говоря это не копипаст. бизнес-требования такие. что в одном случае что в другом - просят и агента и всех его клиентов. в любой момент может поменяться.. в какомто случае надо будет просто агента.

Roquie
08.08.2018
12:02:01
Выходит, что в сервисе будут дубликаты кода. Т.к. сервис в себя принимает репозиторий и будет что-то типа: https://gist.github.com/roquie/8b1170f345e62a46480ab16d073642cf

Adel
08.08.2018
12:02:43
я вот задумался. есть репозитория для write модели. get, persist, delete. а есть "репозитории" как у товарища этого. read репозитории. вы их тоже репозиториями кличете? или как-то по-другому?

Roquie
08.08.2018
12:02:49
А теперь прикинь вот это каждый раз повторять в каждом сервисе, в котором надо ограничить выборку: https://gist.github.com/roquie/8b1170f345e62a46480ab16d073642cf#file-example-php-L39

Google
Adel
08.08.2018
12:04:09
UserServiceInterface зачем тебе интерфейсы такие? :)

Roquie
08.08.2018
12:04:34
Adel
08.08.2018
12:05:46
Можно это обозвать Storage’ом, т.к. если брать подход доктрины с его Unit of Work, то вообще ларавел можно выкинуть :))
нет. storage - это как раз для хранилища. которое store данные. а мне бы название поудачнее для запросных вещей. Query - както слишком пассивно :)

Roquie
08.08.2018
12:05:54
Adel
08.08.2018
12:06:04
опустим это ) это пример )
но довольно важный пример

если у тебя есть UserService & UserServiceInterface разве может быть чтото еще реализующее этот интерфейс? это чтото еще будет каким-то... вторичным :)

Admin
ERROR: S client not available

Adel
08.08.2018
12:07:06
ведь есть главный UserService...

Roquie
08.08.2018
12:07:29
нет. storage - это как раз для хранилища. которое store данные. а мне бы название поудачнее для запросных вещей. Query - както слишком пассивно :)
У меня репозитории, которые persist, умеющие в создание и обновление зависи. Есть еще более правильный подход, где этого нет. Но это не тот случай.

если у тебя есть UserService & UserServiceInterface разве может быть чтото еще реализующее этот интерфейс? это чтото еще будет каким-то... вторичным :)
У меня его пока нет. Интерфейс тут лишний да, других реализаций тута не будет, ибо несколько бизнес логик под одним интерфейсом в приложении не водятся.

Adel
08.08.2018
12:10:24
ну это не оправдание для копипаста одного по смыслу функционала )
это будет не копипаст. методы ты будешь вызывать разные.

Roquie
08.08.2018
12:10:53
методы будут одинаковые, а вот репозитории будут разные (если брать пример выше)

Adel
08.08.2018
12:11:12
представь что в одном из случаев бизнес оппросит немного по-другому сформировать запросы?

Roquie
08.08.2018
12:12:01
в таком случае, я уберу этот фильтр и реализую другой

Это ведь относится и к репозиторию?

Adel
08.08.2018
12:17:13
Кстати, почему?
сервис - это один слой. аутентификация - другой

представь что у тебя будет юзер console. и у тебя в консоли будут разные команды от его имени выполняться. там аутентификация совсем другая будет.

Google
Adel
08.08.2018
12:20:13
а сервису должно быть совсем по барабану. у него простой кейс - дать по этому юзеру что надо или выполнить от его имени

Roquie
08.08.2018
12:21:50
ага, верно

Это ведь относится и к репозиторию?
тогда ответ утвердительный? :)

Adel
08.08.2018
12:23:34
ну вероятно в чате меня поправят этом... репозитории - тоже уже в другом слое лежат. в слое БД или просто инфраструктуры. там держать логику бизнесовую - весьма неправильно. там должны быть тупые методы по выдаче нужных данных.

Миша
08.08.2018
12:25:02
Если ты реализуешь паттерн абстарктная фабрика, объекты которые он порождает должны знать друг о друге? Или это не обязательно?

Roquie
08.08.2018
12:25:20
Отчасти согласен. Но с другой стороны, это ведь тоже работа с БД. А работа с БД должна быть в отдельном слое полностью, а не частично. Что плохого в конструктор репозитория передать модель залогиненного юзера? :)

Adel
08.08.2018
12:28:35
почему
а откуда они должны взяться?

F01134H
08.08.2018
12:28:44
хто?

сервисы и сущности?

Adel
08.08.2018
12:28:51
сущность юзера

которую в сервис передадут

f4rt~
08.08.2018
12:30:05
сущность юзера
$this->get('security.token_storage')->getToken()->getUser(); ??

Aleh
08.08.2018
12:30:34
если можно связать циклы жизни сервиса-сущности, то можно

Adel
08.08.2018
12:30:45
$this->get('security.token_storage')->getToken()->getUser(); ??
я бы тебя забанил за ник и за совет, но ты тут еще и админ :)

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