
Ivan
07.07.2017
19:38:37
то есть трейты оправданы там, где оправдана копипаста?

Aleh
07.07.2017
19:40:16
ну да, костыльное решение для костыльной кодобазы

Ivan
07.07.2017
19:41:49

f4rt~
07.07.2017
19:42:32
ну почему же, как и любое оружие его необходимо уметь применять, в симфонии много компонентов вынесено в трейты

Google

Igor
07.07.2017
20:57:17
https://twitter.com/ircmaxell/status/699623473015037954
http://blog.ircmaxell.com/2011/07/are-traits-new-eval.html?m=1
Если не читал - посмотри, хорошо пишет

Sergey
07.07.2017
21:31:28
там трейты хорошо. Новый код с трейтами лучше не писать. Есть правда кейсы - тупой бойлерплейт в них выносить в целом удобно

Pavel
07.07.2017
21:34:28

Sergey
07.07.2017
21:34:57
плохо
как минимум потому что трейты не миксины
это тупой механизм для копипасты кода
то есть если ты убрал дублирование кода при помощи трейтов - нифига. Дублирование логики (одна и та ж штука в нескольких разных классах) у тебя все еще есть
как бы... дублирование кода никогда небыло проблемой
есть очень тупой бойлерплейт который является частью деталей реализации классов - вот это можно выносить так как оно не будет загрязнять интерфейсы классов

Pavel
07.07.2017
21:40:35
Понятно. Как пример вспоминается parameter bag в symfony/http-foundation. По факту можно было это реализовать трейт, но это было бы дублирование логики.

Google

Sergey
07.07.2017
21:41:07
тип того. В целом вообще мне дико не нравится идея каких-то property/data bag-ов
в случае с http-foundation - там это норм
бо инфраструктура

Aleh
07.07.2017
21:41:33

Sergey
07.07.2017
21:42:26
смотря где. Если в бизнес логике - это значит мы отходим от модели экторов. Тогда только если у нас в целом нет стэйта а есть просто функции которые этот стэйт вычисляют

Ivan
08.07.2017
07:43:06
всем спасибо за ответы
я не сильно чувствую разницу между трейтом и миксином

Sergey
08.07.2017
07:45:33
вот тебе и разница
основная
трейты же (конкретно в PHP) это просто копипаста
в objective-c например чуть-чуть другие трейты и действуют они по другому

Ivan
08.07.2017
07:46:53
то есть миксин - как множественное наследование?
миксин может реализовывать интерфейс, а трейт - нет?

Sergey
08.07.2017
07:49:23
миксин как миксин, но он влияет на типы. А трейты - нет.

Ivan
08.07.2017
07:49:24
хотя, ладно, вроде как понял немного
спасибо

Pavel
08.07.2017
08:09:25
Как потверждение https://3v4l.org/GlpkH

Aleh
08.07.2017
08:49:59

Ivan
08.07.2017
08:52:32
Я понял, спасибо

Google

Aleh
08.07.2017
15:27:33

Paul
08.07.2017
15:28:33
Ну уже во все чатики нарепостили этот баянище

Алексей
08.07.2017
15:54:44
?
Кстати есть чат по Go ?

Aleh
08.07.2017
15:55:50

Like
08.07.2017
15:56:37
@proGO
@gogolang

Алексей
08.07.2017
15:57:08
Два
Можно тот что адекватнее? :)

Paul
08.07.2017
15:58:24

Igor
08.07.2017
16:53:56
https://twitter.com/yogthos/status/883058510275149826/photo/1

Andrey
08.07.2017
16:54:23
Блин, сколько времени ещё этот баян гулять будет?

Сергей
08.07.2017
16:57:33

Paul
08.07.2017
17:03:35
10/10

Hell
09.07.2017
13:47:20

F01134H
09.07.2017
16:17:15
щас бы сравнивать трейты и множественное наследование

Сергей
09.07.2017
16:18:09

F01134H
09.07.2017
16:18:33
кстати, а что лучше, массив или класс?

Viktor
09.07.2017
16:27:26

F01134H
09.07.2017
16:27:40
это был сарказм

Андрэ
09.07.2017
16:28:08
это был сарказм
Зря, в принципе трейты и множественное наследование можно в одно предожение поставить)

Google

Сергей
09.07.2017
16:28:24

Андрэ
09.07.2017
16:29:02
Ну я представляю. Я для fooleah говорил, который "сарказмирует")

F01134H
09.07.2017
16:29:17
можно много чего в одно предложение поставить. Мотоцикл радуга, а вечереет водой.

Сергей
09.07.2017
16:30:21
конструкционные семечки
давайте больше абсурда

F01134H
09.07.2017
16:31:06
Ну тут же не PHP чат

Sergey
09.07.2017
16:31:51
поэтому трейты это просто инструмент для копипасты

Сергей
09.07.2017
16:32:06
есть же не только php с трейтами
если уж обсуждать саму концепцию

Sergey
09.07.2017
16:32:53
вроде за пхп говорили выше

Андрэ
09.07.2017
16:32:57
Я трейты испльзую крайне мало, если использую. Для примера - есть много моделей, но только некоторым надо доабвить некторое поведение, Причем оно одинаковое

Сергей
09.07.2017
16:36:47
Пойти потыкать ПХП палкой, что-ли
Странные вещи обсуждаете: "нельзя instanceof Trait"
чет как-то фу

Андрэ
09.07.2017
16:39:53
class_uses можно
но там трейты родителей вроде не видны будут

Google

Сергей
09.07.2017
16:40:28
а трейт можно к структуре или только классы?

Андрэ
09.07.2017
16:41:17
эм, к структуре?

Сергей
09.07.2017
16:41:24
да

Андрэ
09.07.2017
16:42:09
Ну они для классов. А что в контексте php под структурой понимать, что туда трейт применить можно? ну я прост использовал это выражение както)

Сергей
09.07.2017
16:43:01

Андрэ
09.07.2017
16:43:34
а, не

Сергей
09.07.2017
16:44:18
почитал о трейтах и чет это не трейты совсем

Андрэ
09.07.2017
16:44:46
Ну в php это называется трейты)

Сергей
09.07.2017
16:45:32
хорошо что я на нем не пишу
хотя жс не лучше ?
Хорошо, что есть куда сливаться

Андрэ
09.07.2017
16:49:53
))

Evgeniy
09.07.2017
17:02:33
я просто не могу представить где бы такое понадобилось
трейт это замена копипасты по сути кода

Сергей
09.07.2017
17:02:58
а нафига это ?)
ну например принимать в метод объекты реализующие трейт, а не класс/интерфейс

Evgeniy
09.07.2017
17:03:31
так трейты не для этого, чем тебе интерфейс не угадил?)

Андрэ
09.07.2017
17:03:37
Да обычно интерфейсы ставят и все

Evgeniy
09.07.2017
17:03:55
кстати специально для таких случаев в php7.1 появилось в трейте возможность имплементить интерфейс
и тем самым юзать интерфейсы там где ты захотел
но если ты хочешь подобное то у тебя или что то очень извращенное