Мерль
я серьёзно
Loo
Да там по ходу никто не шарит норм, а Карлу лень разбираться
пс. нас теперь двое в чате. если ты понимаешь о чём я
պլհկ
http://little-dude.github.io/
Loo
топовый бложик
Loo
по теме и без воды
VCL
Привет) Решил всё-таки взяться за раст․ Накинете интересных опенсорсный проектов в которые можно поконтрибутить?
Loo
открываешь любую ссылку с этого дайджеста
Маjко
rustc, servo) У обоих есть задачи для новичков, с менторством
Loo
и там в конце есть раздел
Loo
Call for Participation
VCL
И я как понимаю лучше читать сразу Second Edition?
Loo
лучше обе прочесть
VCL
Начиная с первой?
Loo
ага
VCL
Хорошо) Спасибо․
VCL
Пока тогда поставлю stable
Loo
не за что
VCL
Вау) io::stdin() .read_line(&mut guess) .expect("Failed to read line");
VCL
Чувствуется, что в расте меня ждёт освобождение от всех костылей
Filipp
от многих
Евгений
И появление новых :)
Filipp
ну всего парочки
VCL
Интересно узнать каких?
Filipp
пока самый большой, с которым я сталкивался это написание оберток для обхождения принципа локальности. Но так если подумать то он вроде и не совсем большой
Filipp
После питона очень страдаю от отсутствия именованных и дефолтных параметров, приходится делать стракты для передачи в функцию
VCL
C++: Программист умный, доверим всё ему Rust: Программист всё-таки тупой, доверим всё компилятору
VCL
Например?
В плюсах мне бы например пришлось костылить собственный trim() )
Сергей
Ну нет же, c++: давайте будем совместимыми с C и не будем слишком усложнять работу авторам компиляторов Rust: давайте усложним компилятор, чтобы уменьшить вероятность ошибки
Filipp
структурами передавай
да, спасибо, я так и написал
Alex
я почему то прочитал как "туплами передаю"
Alex
т.к в питоне как раз туплы популярны
Oleg
C++: Программист умный, доверим всё ему Rust: Программист всё-таки тупой, доверим всё компилятору
Скорее, Rust: Программист иногда ошибается, а компилятор - никогда
Alex
компилятор тоже ошибается
Alex
не ошибается только тот кто ничего не делает.
Сергей
именно поэтому что gcc,что шланг такие сложные?)
Это стало так в ходе эволюции, сначала-то был c with classes
Oleg
компилятор тоже ошибается
Если только в каких-то непредусмотренных ситуациях
Anonymous
компилятор не ошибается, ошибается программист писавший компилятор
Alex
просто это фиксят
Alex
компилятор не ошибается, ошибается программист писавший компилятор
ребенок не ошибается, ошибается родитель который его не обучил?
Anonymous
херню написал
Oleg
просто это фиксят
Компилятор можно пофиксить, и он ошибаться в данном случае не будет. А программист может не выспаться, и ничто уже его не пофиксит :)
Alex
это не отменяет того факта что компилятор ошибается
Anonymous
у него нету мозга, чтобы ошибаться
VCL
Единственное, что пока что ксенофобию вызвало, это возможность сделать так let x = 5; let x = "Some string";
VCL
Потом не путаешься в типах и назначении биндингов?
Oleg
Можно так и не делать :)
Loo
это затенение называется
Loo
иногда компилятор просит продлить время жизни объекта но ты не хочешь плодить имена пеерменных
Loo
в таком случае это полезно
VCL
Ну да) В тех же плюсах я часто делал x, а потом создавал x_str)
VCL
Как в книге указано в пример
Filipp
x вообще не очень хорошое название переменной имхо
VCL
Это для примера
Filipp
вобщем не вижу проблем с затенением. Можешь какой-нибудь сценарий привести?
VCL
вобщем не вижу проблем с затенением. Можешь какой-нибудь сценарий привести?
На самом деле сложно найти такой сценарий, где это могло вызвать бы проблемы без претензий к программисту
Loyd
да, спасибо, я так и написал
если много параметров, то builder pattern всё-таки лучше
Filipp
чем? Мне кажется билдер над структурой выигрывает только когда надо сложную валидацию делать какую-то
Filipp
если надо передать только пару параметров можно заюзать ..Default::default()
Loyd
Ну вот ..Default::default выглядит убого
Filipp
вкусовщина
Filipp
можно написать ..MyParameters.default()
Loyd
+ если планируешь в будущем добавлять ещё параметров, то надо форсить этот Default::default, добавляя приватных полей, что опять убого
Oleg
мне кажется builder pattern - это запах кода. Означающий, что у вас какой-то объект - свалка параметров. Т.е. лучший подход как-то разбить на субконструкторы это
Loyd
мне кажется builder pattern - это запах кода. Означающий, что у вас какой-то объект - свалка параметров. Т.е. лучший подход как-то разбить на субконструкторы это
То, что для объекта есть много параметров, не значит, что это свалка. Объект сам по себе может быть сложным (запрос)
VCL
RUST_BACKTRACE. Опять избавление от костылей.
Loyd
что значит форсить? при чем тут приватные поля?
Форсить использование ...Default::default, чтобы у пользователей не сломалось ничего, когда ты добавишь новое необязательное поле
Loyd
А то он может перечислить все параметры
Loyd
Не представляю как ты собрался разбивать реквест