они настолько непопулярны)
От GC не так легко отказаться. А фиксят его постоянно)
> запрет юзеру чего не должен уметь
Так и должно быть, но не у ущерб читабельносте/простоте/поддержке. Например, я за полную статическую типизацию, но против того, что бы везде явно указывать типы, ведь в 99% случаев все, кроме аргументов функций, компилятор и так знает наперед. Так же и тут: я против того, что бы писать больше кода "просто так". Если это можно сделать проще - так и следует делать.
Все указанные варианты - либо сложнее, либо дольше.
- Трейтами вообще непонятно как правильно пользоваться, они идут вразрез з композицией и видимо поэтому были выпилены из котлина.
- Копипаст - бредятина. Чем меньше кода (без ущерба качеству) - тем лучше. Я всегда против лишней вербозности или лишних конструкций.
- Композиция тоже не к месту. Если речь о том, что бы вместо добавления метода в существующий интерфейс, создать другой интерфейс и добавить метод туда, то это как раз и есть костыль. Зачем разработчику юзеру-интерфейсов помнить (или искать) названия других интерфейсов? Зачем разработчику либы усложнять структуру? Зачем заставлять называть эти интерфейсы и вообще их создавать?
> не у ущерб читабельносте/простоте/поддержке Как будто с дефолтной реализацией читабельность, простота и поддержка выше, чем без неё. Как я писал — как раз таки наоборот. К тому же деф. реализация ещё и подталкивает юзать один из антипаттернов, смысл которого заключается в изменении поведения унаследованного метода. > Все указанные варианты - либо сложнее, либо дольше Ну да, конечно, композиция и трейты сложнее дефолтной реализации. И дольше, ага... А о контроле и безопасности мы забываем. На них наплевать и это ни разу не важно. > они идут вразрез з композицией Шта? > Копипаст - бредятина. Чем меньше кода (без ущерба качеству) - тем лучше. Я всегда против лишней вербозности или лишних конструкций Последователи DRY-секты в треде? > Если речь о том, что бы вместо добавления метода в существующий интерфейс Нет, речь не об этом. Речь об добавлении нового класса, который реализует методы, которые не требуются в контракте (а именно так оно и есть с интерфейсами и деф. реализацией всяких utils/helpers, мало кому нужных). > Зачем разработчику юзеру-интерфейсов помнить (или искать) названия других интерфейсов? Речь была о другом, но отвечу... Правильно. Лучше нарушать ISP, объеденив кучи говна в одном месте. В том числе и "хелперы".
Обсуждают сегодня