@oop_ru

Страница 762 из 785
Denis
27.09.2018
00:25:02


Дмитрий
27.09.2018
00:28:36
Ушла епоха

Во второй версии завезли же

За что купил за то и продаю

Google
Дмитрий
27.09.2018
00:29:51
?

Говорят вот завезли

Denis
27.09.2018
00:47:59
Эррор хендлингом)

Bohdan
27.09.2018
05:43:38
ещё нет, только пропозал есть

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

illiatshurotshka❄️
27.09.2018
09:59:27
го 2 через пару лет выйдет только

но генерики там будут

F01134H
28.09.2018
11:43:12
Зачем некоторые сайты, имея в наличии SSL (защищающий от MITM атак), добавляют сверху еще и request signing?

ну т.е. ручную подпись запросов

Sergey
28.09.2018
11:45:23
за тем же зачем делают ssl pining. дабы уберечь пользователя от MITM атак при подмене рутового сертификата.

F01134H
28.09.2018
11:45:55
думаешь?

Sergey
28.09.2018
11:46:15
хз, просто полагаю что причины те же зачем стоит заморачиваться по ssl pining

потому что просто ssl недостаточно

Google
Sergey
28.09.2018
11:47:14
https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning#Patient_0

F01134H
28.09.2018
11:48:40
понял, спасибо)

Andrey
28.09.2018
12:16:13
здесь может больше защита от CSRF?

Yury
28.09.2018
12:20:53
Тут челу советовали использовать Visitor для решения его проблемы. Но не нарушает ли он принцип SRP? Чувак сомневался как раз в том чтобы помещать условный метод draw() в условный Shape. Да draw проксируется к Drawer. Но название draw которое не относится к Shape все равно остается. + Добавляется лишняя путаница, теряется читабельность имхо. Особенно если нет приписки Visitor у имени объекта. Поясните плиз.

Yury
28.09.2018
12:27:30
поскольку там все про делигирование
А делегирование не является второй отвественностью?

Sergey
28.09.2018
12:27:58
нет, ты ж не знаешь как оно что будет делать.

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

Yury
28.09.2018
12:30:50
У меня просто в моей задаче получается так, что в одном объекте помимо его собственных методов с логикой - нужно еще несколько таких делегирований. И получается мешанина из имен.

Роман
28.09.2018
12:31:18
Я не думаю что в контексте визитера мы можем говорить о делегирование. По сути, мы не имеем чёткой операции, а только прописываем кто нас будет обрабатывать

Роман
28.09.2018
12:33:23
А какой у тебя тип принимает метод который делегирует?
Я не делал реализацию через визитера

Я по другому пути решил пойти

Yury
28.09.2018
12:36:05
Я по другому пути решил пойти
Можешь объяснить на абстрактных Shape{draw()} Drawer ?

Роман
28.09.2018
12:41:30
Shape{ AcceptVisitor(IVisitor visitor); } Circle is a Shape { AcceptVisitor(IVisitor visitor){ visitor.AcceptCircle(this); } } Drawer is a IVisitor{ AcceptCircle(Circle circle); AcceptSquare(Square square); }

Google
Роман
28.09.2018
12:43:51
Shape s = new Circle(); s.AcceptVisitor(new ConsoleDrawer()); s.AcceptVisitor(new CanvasDrawer()); s.AcceptVisitor(new AreaCompute());

Есть здравая заметка (не моя): "Паттерн Visitor позволяет сделать универсальный обход структуры. Он становится полезен, когда мы имеем не один объект из семейства, а структуру из множества объектов. Например, внутри треугольника могут лежать квадраты, в которых есть другие треугольники. А у вас Visitor знает только то, как работать с одним треугольником и с одним квадратом. То, как они друг в друга входят, посетитель не знает. Как только Visitor обработал одну фигуру, управление передается в метод accept, а там уже наш Visitor получит для обработки следующую фигуру."

Andrew
28.09.2018
17:58:27
Наследование или композиция?

Гена
28.09.2018
18:11:38
Sergey
28.09.2018
18:12:05
Смотря для чего?
ты так говориишь как будтно можешь придумать ситуацию где наследование лучше)

я не говорю что их нет - но я с такими ситуациями не сталкивался

f4rt~
28.09.2018
18:12:55
ты так говориишь как будтно можешь придумать ситуацию где наследование лучше)
когда хочешь что бы тебя уволили, но не можешь придумать причины за что

Sergey
28.09.2018
18:13:16
всегда можно насрать в митингруме

зачем к наследованию прибегать то)

Гена
28.09.2018
18:13:37
ты так говориишь как будтно можешь придумать ситуацию где наследование лучше)
В простом классе с несколькими наследниками проще, тк более явно все , чем когда ты оборачиваешь и подменяешь

f4rt~
28.09.2018
18:14:48
шах и мат
а Макс отсюда ливнул да, он вроде говорил что у него саги от абстрактного класса наследуются

Sergey
28.09.2018
18:15:03
то есть для тебя наследование - это вариант жесткой связи - и ты считаешь что это хорошо. Я так не считаю, в этом и различие

а Макс отсюда ливнул да, он вроде говорил что у него саги от абстрактного класса наследуются
Он там ту самую "жесткую связь" эксплуатирует разумно. Там идея в том что бы по максимуму задавать клиентскому коду то, как оно должно работать. Типа разумные ограничения (напомню тебе что у него там все что можно final и private)

Гена
28.09.2018
18:16:19
Это мое субъективное мнение, если логика классов наследников проста и сам родитель прост как три копейки считаю можно наследование использовать, ещё аргумент, наследование понимает больший процент новичков

f4rt~
28.09.2018
18:16:26
ну тогда точно шах и мат)

Гена
28.09.2018
18:16:58
Разное поведение

Sergey
28.09.2018
18:16:59
можно ж просто все в один класс запихнуть. раз уж там все протсо

Google
Sergey
28.09.2018
18:17:14
Разное поведение
насколько разное?)

контракт один?

Гена
28.09.2018
18:17:36
Один

Sergey
28.09.2018
18:17:39
и что будет у тебя в общем классе - зачем он?

и да - в контексте какого языка мы сейчас обсуждаем?

Гена
28.09.2018
18:20:02
Конструктор и базовые методы, которые общие для наследников, иногда в зависимости от инстанса можно выше менять поведение instaceof, для этого нужны как раз несколько наследников

5.6

Sergey
28.09.2018
18:20:14
В простом классе с несколькими наследниками проще, тк более явно все , чем когда ты оборачиваешь и подменяешь
по поводу "явно" - с композицией (агрегацией) все еще более явно: $foo = new Foo( new Bar( new Baz() ) );

Sergey
28.09.2018
18:21:18
Ну может он не понимает)

и считает себя новичком)

Гена
28.09.2018
18:21:22
Мой начальник не знает как работает трейт

Sergey
28.09.2018
18:21:28
значит не будет юзать это говно

Конструктор и базовые методы, которые общие для наследников, иногда в зависимости от инстанса можно выше менять поведение instaceof, для этого нужны как раз несколько наследников
то есть у тебя есть некие UserManager, CommentManager, ProductManager, который наследуются от AbstractManager, как вы это любите. Причем у всех одинаковые зависимости. Так? > иногда в зависимости от инстанса можно выше менять поведение instaceof воу воу воу, палехче... а как же полиморфизм? То есть у тебя клинтский код знает о подтипах и что-то делает исходя из того какой у них тип? Попахивает нарушением контрактов.

Гена
28.09.2018
18:22:47
В общем новичкам проще разобраться с наследником чем с отдельным классом, который оборачивает его

Sergey
28.09.2018
18:23:24
В общем новичкам проще разобраться с наследником чем с отдельным классом, который оборачивает его
голословное утверждение. Я уверен что все упирается в то как объяснять ибо с наследованием в итоге ты окажешься у разбитого карыта

Гена
28.09.2018
18:23:45
Нет

Sergey
28.09.2018
18:23:56
потому что по началу оно просто а потом вылазят в коде всякие if ($foo instanceof Foo) {

Google
Гена
28.09.2018
18:24:40
Где

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