Думал рассказать про воркспейсы, но подумал, что видео и так получилось слишком техничным. По сути главное применение воркспейса - гарантия, что в локальных крейтах будут те же версии зависимостей, что и указаны в главном Cargo.toml проекта. Достигается это с помощью синтаксиса dependency.workspace = true в локальном крейте.
Видео классное,сам пока немного начал рассматривать rust и его подход к написанию тех или иных вещей. У меня вопрос к тем,кто шарит в нем довольно хорошо,а именно: в каких реальных проектах используется rust (кроме Mozilla Firefox). Вопрос не про то,где он может применяться,а про то - где он применяется сейчас в реальных проектах
Сейчас огромное количество проектов пишется на Rust, банальным примером можно привести операционные системы. Microsoft инвестирует в Rust для написания на нём частей Windows, Linux всё расширяет поддержку Rust. Соответственно раз самые критически важные программы получают пользу от Rust, он начинает использоваться повсеместно.
Я как новичок в Раст не понимаю в чем преимущество нового подхода перед старым. Я думаю что новый и старый имеют полноценное право на жизнь вместе. Смысл нового - когда используется всего один файл не имеет смысл создавать папку с mod внутри. Смысл старого - когда используется несколько файлов - то (ИМХО) лучше поместить модуль целиком в папку.
Вся наша жизнь - игра! «Игра занимает меня сильно, - сказал Германн, - но я не в состоянии жертвовать необходимым в надежде приобрести излишнее». («Пиковая дама» А. С. Пушкин.)
хорошие видео, однако раздражает один маленький момент, не знаю то ли особенность речи, то ли "петухов" ловишь, но те моменты где ты в окончаниях повышаешь свой голос до высоких нот, что он превращается в писк - звучит ужасно
Верните меня в мой Си.. Один файл - один юнит, юниты делают объекты, объекты линкуются в бинарник, публично всё, что было выше. Почему в расте это так сложно?
@@Salabar_ Я не буду спрашивать, почему у вас в одном проекте есть два одинаковых символа, я не буду спрашивать, чем вам не угодила ошибка "multiple definition of `my_var'", но в рантайме-то как это получить? Я только могу представить использование dlsym'а, но там ведь явно надо хендл передавать. Как такое возможно?
@@valeryv3194 Нет, просто я на раст возлагал очень большие надежды (которые, бтв, в большинстве своём, оправдались), и видеть в этом что-то, что считаешь неправильным, неприятно. Всё же хочется, чтобы хороший язык был ещё лучше.
А вы, батенька, ваще не шарите за крейты. Вы крейт с пакетом карго перепутали. У меня на один пакет запросто может быть несколько крейтов. Потому что крейт - это единица компиляции, а пакет это про cargo.toml...
Он в конце видео говорит, почему так сделал, но все равно выходит какая-то подмена понятий, что по итогу новички будут называть крейтом то, что является пакетом
В конце видео я говорю, почему я так сделал. Почти всегда под понятием крейт в сообществе понимают именно пакет. Это особенно важно когда мы говорим о локальных зависимостях. Называть локальные пакеты пакетами - не звучит, поэтому всегда локальную зависимость называют крейтом. Тоже самое для онлайн-зависимостей, их также называют крейтами. Если честно, я наверное ни разу не слышал, чтобы кто-то использовал термин пакет, кроме книжки Rust. Это именно то, что вызвало у меня проблемы в начале пути и почему я решил построить видео именно таким образом.
спасибо! один из лучших каналов по ржавчине на русскоязычном ютубе.
Качество объяснения на высоте
Лучшее объяснение, которое я виде, серьёзно, наверное даже лучше растбука
Спасибо) Ждём стрим наконец)
Спасибо, что ждёте! На следующей неделе постараюсь найти время!
Молодец, оч круто´ продолжай😮😊
Опечатка на 8:30 а так видно супер. Спасибо!
мне нравится гибридный подход, похоже на питоновские модули получается
ничего не понял, но было очень интересно, лайк поставил, пойду разбираться
Кайф ^^
Уважаемый автор, спасибо Вам, а можно отдельный плейлист по движку Bevy?
его канал в основном объясняет непонятное в раст, этот подход и визуал скорее всего не подойдёт к полноценным урокам по беви
прикол, не знал что можно путь указать, может быть полезно в исключительных случаях
В основном если у тебя код генерится. Например при работе с tonic.
Ну или при некоторых рефакторингах
Есть ещё воркспейсы, но я пока не очень понял в каких случаях лучше использовать воркспейсы, а в каких просто создавать локальные крейты
Думал рассказать про воркспейсы, но подумал, что видео и так получилось слишком техничным. По сути главное применение воркспейса - гарантия, что в локальных крейтах будут те же версии зависимостей, что и указаны в главном Cargo.toml проекта. Достигается это с помощью синтаксиса dependency.workspace = true в локальном крейте.
Видео классное,сам пока немного начал рассматривать rust и его подход к написанию тех или иных вещей. У меня вопрос к тем,кто шарит в нем довольно хорошо,а именно: в каких реальных проектах используется rust (кроме Mozilla Firefox). Вопрос не про то,где он может применяться,а про то - где он применяется сейчас в реальных проектах
Некоторые части ядра Линукс тоже уже написано на Раст.
Сейчас огромное количество проектов пишется на Rust, банальным примером можно привести операционные системы. Microsoft инвестирует в Rust для написания на нём частей Windows, Linux всё расширяет поддержку Rust. Соответственно раз самые критически важные программы получают пользу от Rust, он начинает использоваться повсеместно.
Всем спасибо за ответы!
Я как новичок в Раст не понимаю в чем преимущество нового подхода перед старым.
Я думаю что новый и старый имеют полноценное право на жизнь вместе.
Смысл нового - когда используется всего один файл не имеет смысл создавать папку с mod внутри.
Смысл старого - когда используется несколько файлов - то (ИМХО) лучше поместить модуль целиком в папку.
При старом подходе неудобно было, что есть куча файлов с одинаковым название "mod.rs" - в ide не очень удобно быстро переключаться между ними
раст это игра)
Вся наша жизнь - игра! «Игра занимает меня сильно, - сказал Германн, - но я не в состоянии жертвовать необходимым в надежде приобрести излишнее». («Пиковая дама» А. С. Пушкин.)
хорошие видео, однако раздражает один маленький момент, не знаю то ли особенность речи, то ли "петухов" ловишь, но те моменты где ты в окончаниях повышаешь свой голос до высоких нот, что он превращается в писк - звучит ужасно
сигма сигма ты мой гьят
могай мьюай мой фортнайт
скибиди риз фанум такс
кто-нибудь понимает откуда здесь взялся этот покемон?
Верните меня в мой Си.. Один файл - один юнит, юниты делают объекты, объекты линкуются в бинарник, публично всё, что было выше. Почему в расте это так сложно?
ну видимо где то это важно и кому то это нужно, наверное
"Программисты на Руси программируют на Си", такое чувство, что кого-то заставляют изучать Rust насильно)
А потом ой, в двух бинарниках символы одинаково называются, но ошибка линкера пишется через зад. И иногда тебе об этом говорят только в рантайме.
@@Salabar_ Я не буду спрашивать, почему у вас в одном проекте есть два одинаковых символа, я не буду спрашивать, чем вам не угодила ошибка "multiple definition of `my_var'", но в рантайме-то как это получить? Я только могу представить использование dlsym'а, но там ведь явно надо хендл передавать. Как такое возможно?
@@valeryv3194 Нет, просто я на раст возлагал очень большие надежды (которые, бтв, в большинстве своём, оправдались), и видеть в этом что-то, что считаешь неправильным, неприятно. Всё же хочется, чтобы хороший язык был ещё лучше.
А вы, батенька, ваще не шарите за крейты. Вы крейт с пакетом карго перепутали. У меня на один пакет запросто может быть несколько крейтов. Потому что крейт - это единица компиляции, а пакет это про cargo.toml...
Он в конце видео говорит, почему так сделал, но все равно выходит какая-то подмена понятий, что по итогу новички будут называть крейтом то, что является пакетом
Дело в том, что в сообществе Rust крейтом называют именно пакет. То есть делают так не только новички, но и опытные разработчики.
В конце видео я говорю, почему я так сделал. Почти всегда под понятием крейт в сообществе понимают именно пакет. Это особенно важно когда мы говорим о локальных зависимостях. Называть локальные пакеты пакетами - не звучит, поэтому всегда локальную зависимость называют крейтом. Тоже самое для онлайн-зависимостей, их также называют крейтами. Если честно, я наверное ни разу не слышал, чтобы кто-то использовал термин пакет, кроме книжки Rust. Это именно то, что вызвало у меня проблемы в начале пути и почему я решил построить видео именно таким образом.
лучший канал по расту на русском ютубе, я правда не видел лучше обьяснений по сложным темам в раст, чем у тебя в видео, даже на западном ютубе