Size: a a a

2020 June 17

БС

Байт Словович... in rannts
Sergey Arkhipov
Не конфликтует. На мой взгляд, дженерики чаще всего противоречат нормально написанному коду. На практике в Го очень-очень мало случаев, когда нужны генерики: либо когда пишешь библиотеку, которая делает нечто такое, где тип объектов не очень важен (а такие на практике можно по пальцам одной руки пересчитать), либо когда микрооптимизируешь узкое место. Если ты пишешь приложение, что там чаще всего можно (и нужно) использовать интерфейсы

Дженерики обычно хотят новички, которые приходят из других языков, и не очень понимают, как принято. Пишут код несколько месяцев, усваивают концепции и остывают
основной эксплуатант дженериков, это коллекции объектов.
Также ими удобно задавать policy. Ну плюс еще разные функции форматирования / шаблонизирования удобно делать через дженерики...
источник

БС

Байт Словович... in rannts
Кстати, на классическом паскале все писали? Там была ровно одна функция generic (вернее две). Кто первый догадается, то... тот молодец :-)
источник

БС

Байт Словович... in rannts
Во Free pascal помоему были добавленые еще функции дженерики, но я ужо не помню детали и могу ошибаться
источник

SA

Sergey Arkhipov in rannts
Байт Словович
основной эксплуатант дженериков, это коллекции объектов.
Также ими удобно задавать policy. Ну плюс еще разные функции форматирования / шаблонизирования удобно делать через дженерики...
Коллекции объектов в предположении, что ты не контроллируешь, как она будет использоваться. Если ты пишешь для себя, то сразу же оказывается, что можно спокойно пользоваться интерфейсами
источник

SA

Sergey Arkhipov in rannts
на практике очень мало случаев, когда реально нужны генерики, ей богу
источник

БС

Байт Словович... in rannts
Для себя да, а вот ты написал новый вариант hash таблицы и хочешь со всеми поделиться..
источник

SA

Sergey Arkhipov in rannts
согласен. но это не самый частый случай. подавляющее большинство библиотек сами с удовольствием дают методы с интерфейсами и наоборот, возвращают интерфейсы

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

БС

Байт Словович... in rannts
Ну вот, я бы минимум сделал поддержку генериков на уровне библиотек которые идут с языком. А вот давать эту магию всем, да, тут надо  думать.
Но по мне генерики это благо. А якобы сложность работы с ними, пусть на коде ревью решается
источник

SA

Sergey Arkhipov in rannts
Так на уровне стандартной библиотеки уже давно есть генерики 🙂 скажем, map[int]float - это ж генерик для словаря
источник

SA

Sergey Arkhipov in rannts
Я за все время свой профессиональной деятельности пришел к выводу, что ввиду того, что у всех разный бэкграунд, ход мыслей, степень раздолбайства, то каждый валит код как умеет, и эту добавленную сложность нужно всячески сдерживать: фашизмом в линтерах, проверокой code complexity, скудным набором инструментария.

Я уже не хочу работать в проекте, где "цветут сто цветов"
источник

💭П

💭 Руслан Прохоров... in rannts
Sergey Arkhipov
Я за все время свой профессиональной деятельности пришел к выводу, что ввиду того, что у всех разный бэкграунд, ход мыслей, степень раздолбайства, то каждый валит код как умеет, и эту добавленную сложность нужно всячески сдерживать: фашизмом в линтерах, проверокой code complexity, скудным набором инструментария.

Я уже не хочу работать в проекте, где "цветут сто цветов"
А что делать если ты используешь проект по архетектуре которого доктор наук защитил диссертацию, литеры показывают сложность 64. И выше? Бежать?
источник

RB

Roman Bolkhovitin in rannts
беги к этому доктору и ори: "защитил, сука? теперь сопровождай"
источник

БС

Байт Словович... in rannts
Sergey Arkhipov
Так на уровне стандартной библиотеки уже давно есть генерики 🙂 скажем, map[int]float - это ж генерик для словаря
несколько лет назад, когда я на гошку смотрел, не было.. Хорошо что добавили хотябы в стандартную либу.
источник

💭П

💭 Руслан Прохоров... in rannts
Roman Bolkhovitin
беги к этому доктору и ори: "защитил, сука? теперь сопровождай"
Я не сопровождаю, на основе его Фреймворка пишу свой код и плачу )
источник

SZ

Sergey Z in rannts
Sergey Arkhipov
Я за все время свой профессиональной деятельности пришел к выводу, что ввиду того, что у всех разный бэкграунд, ход мыслей, степень раздолбайства, то каждый валит код как умеет, и эту добавленную сложность нужно всячески сдерживать: фашизмом в линтерах, проверокой code complexity, скудным набором инструментария.

Я уже не хочу работать в проекте, где "цветут сто цветов"
А ты выработал какое-нибудь понимание, как донести до коллег что надо упрощать а не усложнять? Я сдался, либо делал это неправильно, либо меня не понимают зачем.
источник

SZ

Sergey Z in rannts
выбирали же тут ноут Кириллу, и я кучу клавиатур пересмотрел, подскажите мне, чего я не понимаю, зачем творить вот такую дичь с delete и power?
https://3dnews.ru/1013329/print
источник

SA

Sergey Arkhipov in rannts
Байт Словович
несколько лет назад, когда я на гошку смотрел, не было.. Хорошо что добавили хотябы в стандартную либу.
Это было с первых релизов. Оно просто генериками не называлось, но являлось
источник

SA

Sergey Arkhipov in rannts
Sergey Z
А ты выработал какое-нибудь понимание, как донести до коллег что надо упрощать а не усложнять? Я сдался, либо делал это неправильно, либо меня не понимают зачем.
Упрощение и желание выкинуть приходит только с опытом по-моему
источник

SA

Sergey Arkhipov in rannts
Когда вкорячил чего-нибудь, а потом сам страдаешь
источник

SA

Sergey Arkhipov in rannts
💭 Руслан Прохоров
А что делать если ты используешь проект по архетектуре которого доктор наук защитил диссертацию, литеры показывают сложность 64. И выше? Бежать?
Рефакторить потихоньку. Нормальных проектов не бывает
источник