получим дублирование кода, что в конкретном приведенном мною случае softdeletable считаю оверкилом
Ещё раз - дублирование кода это не проблема. Это может быть чем-то на что стоит обращать внимание (как код смелы) но не надо считать что это всегда плохо.
И основная сложность что дублирование знаний часто выглядит как дублирование кода, но не все дублирование кода есть дублирование знаний. и разобраться что есть что сложно, потому происходит подмена понятий в сторону упрощения
Не могу же я сказать трейты говно потому что так сказали в чатике))
Трейты инструмент. Они не плохо и не хорошо. Но трейты это механизм копипасты кода. И в большинстве случаев когда возникает желание чёт скопипастить надо подумать зачем.
Например - вот есть две структуры данных и у обеих надо дата время когда ее создали. Есть тут дублирование? Скорее нет так как эти "дата время" выражают разные вещи в контексте своих задач.
Я не видел не одного нормального аргумента против трейтов Про связанность бабушке своей рассказывай Видел горе программистов, которые не умеют готовить трейты, к примеру вместо того, чтобы унаследоваться от базового абстрактного класса, они трейт прокидывают Трейт надо применять там, где нет возможности сделать декомпозиции или построить красивую иерархию
Трейты инструмент. Они не плохо и не хорошо. Но трейты это механизм копипасты кода. И в большинстве случаев когда возникает желание чёт скопипастить надо подумать зачем.
Например - вот есть две структуры данных и у обеих надо дата время когда ее создали. Есть тут дублирование? Скорее нет так как эти "дата время" выражают разные вещи в контексте своих задач.
Я не видел не одного нормального аргумента против трейтов Про связанность бабушке своей рассказывай Видел горе программистов, которые не умеют готовить трейты, к примеру вместо того, чтобы унаследоваться от базового абстрактного класса, они трейт прокидывают Трейт надо применять там, где нет возможности сделать декомпозиции или построить красивую иерархию
Я видел горе программистов которые свое неумение декомпозиции маскируют абстрактными классами и трейтами которые никак не помогают поддерживать проект)
Чтобы посмотреть doSmth тоже придется прыгать по файлам, как и по трейтам, так что так себе аргумент, с учетом того что можно в шторме переходить в 1 клик или ctrl+b
Если у меня по проекту id везде, скажем, bigint, auti increment, для сущностей, что плохого в том, что вынесу id, getter в трейт? Все зависит от задачи. Синглтон тоже имеет место жить
Чтобы посмотреть doSmth тоже придется прыгать по файлам, как и по трейтам, так что так себе аргумент, с учетом того что можно в шторме переходить в 1 клик или ctrl+b
Разница с трейтами в том, что трейты прячут информацию которой место именно в текущем классе.