Здравствуйте, night beast, Вы писали:
AD>> См выше + auto ставится там, где сразу понятно какой тип у переменной и auto не создаёт когнитивной нагрузки.
NB>личное имхо, таки создает. NB>чтобы понять, какой тип у переменной, ты должен вникнуть в контекст. NB>имея перед глазами конкретный тип сделать это проще.
Здравствуйте, night beast, Вы писали:
NB>явно не тот случай, что показан в коде
Почему?
AD>>Выделил в своей цитате основную мысль NB>то есть очень редко
Я и не утверждал, что auto надо применять очень часто и вообще везде
Здравствуйте, ArtDenis, Вы писали:
NB>>явно не тот случай, что показан в коде AD>Почему?
мне из кода не ясно, какой тип возвращает get_user_hash.
если разный в зависимости от типа соли, то было бы неплохо завернуть этот тип в тайпдеф и ниже использовать его, а не авто.
Здравствуйте, night beast, Вы писали:
NB>мне из кода не ясно, какой тип возвращает get_user_hash.
Ты просто не видишь всего кода. get_user_hash идёт следующей сразу после get_client_session_key (код которой я привёл). Так что читающий сразу видит типы, т.к. обе функции влезают на экран с большим запасом. Ну и в крайнем случае IDE подскажет какой там тип, если уж лень всё смотреть.
Здравствуйте, kaa.python, Вы писали:
vsb>>fmt.Errorf не добавляет стектрейса. Есть всякие старые пакеты, которые добавляют, но они типа unmaintainable. В общем гоферам стектрейсы не нужны. Что им мешает сделать какой-нибудь GO_FMT_ERRORF_ADD_STACKTRACE_PRETTY_PLEASE=IUNDERSTANDPERFORMANCEIMPLICATIONS я не понимаю.
KP>fmt.Errorf является нормальным уровнем логирования, почему он должен добавлять трассировку стека? log.Panic выбросит панику и у тебя будет стек вызовов. Зачем тебе на каждой ошибке стек?
fmt.Errorf создаёт новый error, при чём тут вообще логгирование? Стек на каждой ошибке нужен, чтобы потом понять, на какой строчке эта ошибка появилась.
vsb>>:= абсолютно упоротая конструкция. Зачем она нужна в текущем виде — я вообще не понимаю.
KP>:= конструкция создания объекта, эквивалентом будет new, let, var в других языках.
Нет, := это вместо var, который в Go тоже есть. Никакого объекта := не создаёт.
vsb>>Меня так раздражает только жаваскрипт. Но там — ладно, его делали левой ногой перед дедлайном как сайд-проект, который не должен был взлететь, понять можно.
KP>Может всё же стоит введение в язык прочитать?
При всём уважении введение в язык стоит почитать не мне, я введение уже почитал.
Здравствуйте, ArtDenis, Вы писали:
NB>>мне из кода не ясно, какой тип возвращает get_user_hash.
AD>Ты просто не видишь всего кода. get_user_hash идёт следующей сразу после get_client_session_key (код которой я привёл). Так что читающий сразу видит типы, т.к. обе функции влезают на экран с большим запасом.
версия с тайпдефом для типа хеша кажется более читаемой.
AD>Ну и в крайнем случае IDE подскажет какой там тип, если уж лень всё смотреть.
код должен быть понятен без всяких ИДЕ
ты когда код ревью делаешь, ИДЕ используешь?
Здравствуйте, ArtDenis, Вы писали:
S>>А что за мода везде auto пихать? AD>Не мода, а необходимость ради упрощение кода
Пишите на жабаскрипте, не проблема. Там всё настолько просто, что даже не знаю...
S>>Всё настолько плохо что нет понимания какой тип будет у переменной? AD>Ого как задело См выше + auto ставится там, где сразу понятно какой тип у переменной и auto не создаёт когнитивной нагрузки.
Ну извини, если задело. Я привык правду в лицо сразу а не за спиной.
Авто как раз таки создаёт нагрузку на программиста-не-автора, который будет потом с этим автоговном разбираться.
S>>или даже #define в конце концов. AD>Ну да, начал за здравие, а кончил за упокой. Macro MUST DIE!!!
Смузи не расплескал? Аккуратнее...
S>>Почему auto? AD>Потому что это означает автовывод значение переменной. Ваш КО.
шта?...
Я всегда считал что это автотип переменной, но ты видимо гуру, прислушаюсь...
S>>Почему код запутываете специально? AD>Если кто-то тупит перед авто, значит либо 1) плюсы не для него, 2) он красноглазит и не ставит себе нормальную IDE и вообще ССЗБ
Тупить будет каждый кроме автора да и то, пока этот кусок кода в голове.
Здравствуйте, Слава, Вы писали:
S>>А что за мода везде auto пихать? С>Чтобы любители vim и emacs страдали. Как и прочие там в vscode.
А редакторы то тут при чом?
Здравствуйте, Sheridan, Вы писали:
S>Пишите на жабаскрипте, не проблема. Там всё настолько просто, что даже не знаю...
Зачем, если можно писать на расте, где тебе адепты принципиального указания типа переменной не будут тыкать носом в код и отвлекать на абсолютно незначительную вещь как указание типа переменой
Здравствуйте, night beast, Вы писали:
NB>версия с тайпдефом для типа хеша кажется более читаемой.
Ты забыл добавить IMHO
NB>код должен быть понятен без всяких ИДЕ
Если тебе не понятно, это не мои проблемы.
Здравствуйте, vsb, Вы писали:
vsb>fmt.Errorf создаёт новый error, при чём тут вообще логгирование? Стек на каждой ошибке нужен, чтобы потом понять, на какой строчке эта ошибка появилась.
А, да, погнал, что-то я не то прочитал
Но тогда ты прав, за пределами паники мне стектрейс не нужен, и не только в Го, но и в C++, и в Python.
vsb>Нет, := это вместо var, который в Go тоже есть. Никакого объекта := не создаёт.
Тебе хочется писать var каждый раз? Зачем? В Rust которым ты восстаргаешься вон `?` в конце вызова функции хреначат (или уже нет?), тоже экономят нажатия клавиш.
vsb>При всём уважении введение в язык стоит почитать не мне, я введение уже почитал.
Здравствуйте, ArtDenis, Вы писали:
NB>>версия с тайпдефом для типа хеша кажется более читаемой. AD>Ты забыл добавить IMHO
естественно
все мною сказанное является исключительно личным мнением и может быть спокойно проигнорировано.
NB>>код должен быть понятен без всяких ИДЕ AD>Если тебе не понятно, это не мои проблемы.
главное чтобы коллегам, что с тобой работают, было понятно (да это тоже ИМХО)
Здравствуйте, kaa.python, Вы писали:
KP>А, да, погнал, что-то я не то прочитал
KP>Но тогда ты прав, за пределами паники мне стектрейс не нужен, и не только в Го, но и в C++, и в Python.
Ну а мне нужен, у меня произошла ошибка в дебрях кода, вылезла на верх обработчика, я вернул 500 и распечатал стектрейс в лог. Я так привык, по-другому не умею. Я, конечно, напишу свой Errorf, но как-то это неправильно ощущается.
vsb>>Нет, := это вместо var, который в Go тоже есть. Никакого объекта := не создаёт.
KP>https://go.dev/ref/spec#Short_variable_declarations
KP>Тебе хочется писать var каждый раз? Зачем? В Rust которым ты восстаргаешься вон `?` в конце вызова функции хреначат (или уже нет?), тоже экономят нажатия клавиш.
Для меня нет разницы между var x, y = 1, 2 и x, y := 1, 2. Вот искренне не понимаю разницы. С ? — понимаю, а тут — не понимаю. Т.е. я понимаю, что я не могу использовать var в выражениях, но почему не могу — не понимаю.
Я бы понял, если бы := работал как присваивание, если все переменные объявлены. А так — получается, что я написал функцию в "идиоматичном" стиле, потом мне где-то сверху пришлось объявить err и надо переписывать все нижние блоки, заменять := на =, ибо оно перестало компилироваться.
Здравствуйте, night beast, Вы писали:
NB>главное чтобы коллегам, что с тобой работают, было понятно (да это тоже ИМХО)
Знаешь, если мне коллеги во время ревью скажут, что им тут непонятно, я исправлю не моргнув глазом. Но на мнение диванного эксперта night beast-а мне совершенно наплевать.
Здравствуйте, ArtDenis, Вы писали:
AD>Знаешь, если мне коллеги во время ревью скажут, что им тут непонятно, я исправлю не моргнув глазом. Но на мнение диванного эксперта night beast-а мне совершенно наплевать.
От "наплевать на мнение постороннего человека" до "наплевать на мнение коллег" расстояние совсем небольшое...
Здравствуйте, Sheridan, Вы писали:
AD>>Знаешь, если мне коллеги во время ревью скажут, что им тут непонятно, я исправлю не моргнув глазом. Но на мнение диванного эксперта night beast-а мне совершенно наплевать. S>От "наплевать на мнение постороннего человека" до "наплевать на мнение коллег" расстояние совсем небольшое...
Мало того, я добавлю, что мне наплевать на мнение любителей устраивать срачи на пустом месте
Здравствуйте, ArtDenis, Вы писали:
AD>Мало того, я добавлю, что мне наплевать на мнение любителей устраивать срачи на пустом месте
Зачем ты тогда сюда пришёл, в КСВ, раз тебе наплевать на наше мнение? Срач устроить? Да ну, неможетбыть...