rust обучение для новичков

Гайд для новичков в Rust – выживание с нуля в Раст

Rust – симулятор выживания для ПК от независимой британской студии Facepunch. Игра не оснащена обучающим материалом, как и многие другие игры жанра. По этой причине основы жестокой атмосферы игры придется узнавать с помощью метода проб и ошибок. Этот процесс долгий и мучительный. Для того, чтобы не терять время на познание досадных промахов, мы написали гайд для новичков, помогающий проходить первые этапы игры максимально безболезненно!

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Выбор сервера

Звучит просто, но на деле выбрать сервер, подходящий новичку, достаточно сложно. Заработанный и завоеванный лут остается на том сервере, где вы играли – на другой сервер их не утащишь. Не забываем о читерах, конечно же.

Первые шаги

Игрок появляется буквально голым в середине огромной карты. Первый шаг – скрафтить топор.

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Для этого нам понадобятся 30 деревьев и 5 камней. Сделали топор – убегаем от городов и мест возрождений. Потому что в городах много других игроков, которые не пощадят вас. Строим очаг в горах или лесах, для этого понадобится около 80 деревьев.

Дальнейшие шаги будут зависеть от того, как обострено чувство голода:

Поднимаемся с колен

Огонь привлечет других игроков, у которых, скорее всего, уже есть автоматы и прочие ништяки. Ночью ведем себя словно герои фильма «Тихое место», утром делаем печку, чтобы не умереть от холода, а также для плавки металла. Понадобятся 15 камней, 20 деревьев и 50 единиц топлива.

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Берем ипотеку

В теории, можно быть бродягой и вообще играть без дома. Но он выступает как в роли защиты, так и в роли хранения лута и шмоток. Суть игры – выживание, и дом для этого необходим.

Не торопитесь со строительством в начале игры, ибо остальные игроки не позволят вам спокойно строить дом. Альтернатива – пещеры, по следующим причинам:

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

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

Получается, что в пещере:

Вооружение

В самолетных дропах присутствуют дробаши, пистолеты, патроны, взрывчатые вещества, бронька и шмотки.

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Только помните, что не вы один можете заметить падающую с неба халяву.

Зеленые военные сундуки — вариант попроще. Найти можно на большинстве монументов.

Нападение на других игроков

Секреты и хитрости для начинающих по зачистке:

Готово! Теперь вы затеряетесь в (по началу) недружелюбном для новичков мире.

Источник

Гайд для новичков в Rust

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

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

Выбор сервера

Полезные советы новичками по выживанию в игре начинаются с банального выбора сервера. Это не самая простая задача, так как завоеванное в непростых ситуациях снаряжение остается там, где вы играли, а на другой сервер перенести возможности нет. К тому же, часто встречаются читеры, играть с которыми честным выживальщикам нет смысла.

Первые шаги

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

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Для изготовления топора понадобятся 30 деревьев и 5 камней. Дерево можно добыть из других деревьев или собрать из так называемых «кучек». На переполненных серверах их быстро разбирают, придется побыть дровосеком. Камни разбросаны по земле, однако поиск их может быть проблематичным. Крафт делает вас медленнее и лишает возможности бегать, поэтому стоит начинать создание на безопасном расстоянии ото всех.

Как только заработаете топор, стремитесь в самую дальнюю точку от городов и спаунов. Чем ближе город, тем больше число людей, которые готовы истребить любого живого на расстоянии выстрела. Им даже не нужны ваши пожитки, это всего лишь привычка. Выбирая место для строительства дома, остановитесь на глухих горах или лесах. Можно сделать постройку в виде маленькой хибары. На нее понадобится не более 80 штук деревьев.

Дальнейшие шаги будут зависеть от того, как обострено чувство голода:

Движение к комфорту

С наступлением активизируются игроки уже успевшие обзавестись автоматами и бронежилетами. Поэтому запрещается разводить огонь, чтобы не спровоцировать нападение. Если ваше присутствие будет замечено, последствия будут плачевными.

Строительство дома

Может возникнуть вполне закономерный вопрос «Зачем вообще строиться? Ведь в игре можно делать все, что угодно. Это же открытый мир!». Дом послужит вам и защитой, и хранилищем лута. Кроме того, перечисленные в этом гайде шаги помогут быть эффективнее и, увеличат шансы на выживание. А именно в этом и есть суть игры.

Как только вы появились на сервере, не торопитесь отстраиваться сразу же. Вокруг полно отморозков, которых я упоминал выше, и спокойного процесса созидания вам точно не видать. Так что для новичка это точно не вариант. По моему опыту отличная локация для постройки — пещеры. Причин несколько.

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

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

Получается, что в пещере:

Это создает почти идеальные условия для организации схрона. Такая строительная практика помогала моим домам спокойно стоять до следующего вайпа — обнуления сервера. Более того, есть хитрости, благодаря которым, можно так надежно спрятать ваш лут, что обнаружат его, разве что, разнеся дом по бревнышку вместе с фундаментом.

К сожалению, небольшая ложка дегтя в этой бочке меда — это отсутствие естественного освещения. Нужен источник света, закрепленный у вас на голове, так как руки потребуются для строительства или переноски вещей.

Кроме подземелий разместиться можно на поверхности около сферы неподалеку от магазина либо ангара. Это даст возможность собирать крутой лут из ящиков, которые переодически спаунятся(возникают) на сфере. В магазине и ангаре имеется переработчик, позволяющий разобрать абсолютно все, что можно крафтить. Процесс разборки обеспечивает возврат 50% от суммы, потраченной на крафт.

Вооружение

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Нюанс при таком раскладе в том, что его видите не только вы и поэтому надо успеть прибыть на точку сброса первым, опередив конкурентов. Очень повезет, если ящик дропнется в зоне видимости или хотя бы неподалеку. В противном случае про него лучше забыть. Есть все шансы просто не найти, куда он упал. Я, бывало, безуспешно блуждал в поисках по 20-30 минут. Если все же повезет обнаружить место падения, велика вероятность, что кто-то уже там побывал и вам достанентся кукиш, возможно, даже без масла или засада плохих парней.

Нападение на других игроков

Секреты и хитрости для начинающих по зачистке:

8 комментариев

Спасибо. Я только скачал игру и не знал с чего начать, буду держаться твоих советов.

Источник

Rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Холод
Появляется ночью из-за отсутствия одежды с одноименным параметром (минимум 20) или горящего костра, рядом с которым его перекрывает эффект комфорт.

Комфорт
Эффект, появляющийся при заженном костре. Восстанавливается жизнь, замедляется голод.

Кровотечение
Появляется при ранении от животного, другого игрока или падения с высоты.

Появляется при падении с высоты. Вы не можете двигаться, только ползти.
Исчезает сам примерно через 30 секунд.

Инвентарь
При нажатии Tab вы увидите свой инвентарь. Открытые вкладки регулируются кнопками сверху: Armor (броня), Inventory (ваши вещи) и Craft (создание вещей)

Кожа (Leather) добывается с медведей или путем переплавки Ткани (Cloth) в печке. Она нужна для брони из кожи и кевлара, для болт-винтовки (Bolt Action Riffle) и мешочков.

Практически любое строение на карте, не связанное с игроками, является местом спавна лута (различных вещей). Они все отображены на карте выше и все расположены в непосредственной близости от дороги. Открываешь ящики — перетаскиваешь.

Есть несколько нюансов:

1. Радиация. Большинство из этих зон радиоактивно в той или иной мере, об этом вам сообщит привычный со времен Сталкера счетчик Гейгера (который, видимо, припрятан в самом укромном месте). До 500 рад с вами ничего не случится, после — медленно начнется уменьшаться жизнь.

Сбавить радиацию можно несколькими способами: налутать антирадиоационные таблетки (кстати, у консерв и воды тоже есть небольшой подобный эффект) или одеть антирадиоационный костюм. Изначально его крафтить нельзя, но легко находится.

В костюме, конечно, процесс облучения просто замедлится.

2. Зомби. Это вторая проблема подобных зон. Они есть не везде, но представляют достаточную опасность, если замешкаетесь. Теперь вместо зомби красные волки и медведи, с которых падают рюкзаки, да и еще немного животных ресурсов можно собрать.

3. Синдром хомячка. Не берите ненужные вещи. Точнее, выкидывайте из инвентаря после очистки ящика. Или поставьте хранилище, нуждающиеся сами возьмут, что им нужно. Не набивайте свой пентхаус лишним барахлом, это бессмысленно.

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

Можно сломать свою/соседа/врага часть дома (балка/стена/потолок/окно/решетка)?
По умолчанию сломать можно только предметы типа костра, печки, ящиков и мешков, а также деревянную дверь. На железную дверь вам понадобится 2 штуки C4 или 11 гранат. Для подробностей смотрите таблицу урона в разделе Гриффинг.

Как жарить мясо?
Скрафтить и поставить костер, открыть его, мясо положить в слот Cook, а дерево в Wood.

Как расплавить железо?
Скрафтить и поставить печку, открыть ее, положить дерево и руду, нажать Е.

Где взять Explosives?
Он падает только с самолета. Если на сервере воздушная поддержка отключена, то никак.

Когда прилетает самолет?
Когда на сервере находится нужное количество человек, указываемое администратором.

Могу ли я поставить железную дверь на будку?
Не можно, а нужно, если вам дорого содержимое.

Как открыть консоль?
F1.

Как умереть?
Ввести команду suicide в консоль.

Почему я во второй раз не появился у своего спальника после того как умер?
Должно пройти пять минут после последней смерти, чтобы снова среспавниться там.

Для чего нужны пакеты с кровью и шприцы?
Делать аптечки. Брать у себя кровь для аптечек.

Есть ли другая еда помимо мяса?
Да, шоколадки и консервы. Лутаются со спавнов и зомби. С них голода утоляется меньше, но у некоторых есть свойства антирадина.

Где все животные?
Если долго не видите животных со стаками камней и дерева — то скорее всего вы попали в «глухую зону» за пределы игровой карты. Либо понимайте, где вы оказались, и топайте домой, либо открывайте консоль (F1) и пишите suicide (самоубийство).

Как сделать железный дом?
Добываете железную руду (Metal Ore) из камней на скриншотах, ее переплавляте в печке, получая металлические фрагменты, из которых делаете железо (Low Quality Metal). Лутаете спавн-точки или зомби, находите детали железного дома, изучаете их с Research Kit. Крафтите и строите как обычный дом.

Для чего нужна бумага?
Раньше она была необходима для использования Research Kit.

Как использовать Research Kit? / Как изучать крафт предмета?
Встать около рабочего стола, в инвентаре навести мышкой набор на предмет, желаемый для изучения.

Для чего нужен сигнальный огонь?
Подсказывать самолету, куда сбросить груз ;]

Игра зависла на смайлике при запуске!
Скорее всего параметры компьютера не сходятся с рекомендуемыми.

Как открыть карту?
Никак, внутриигровой карты нет. Реалистично, правда?

Ничего не видно ночью!
Фонарик, флаер или повышение гаммы в настройках экрана вам помогут.

Источник

RUST: Советы и хитрости для начинающих 2021

У RUST есть много ниш внутри себя, таких как электрические и строительные системы, которые могут больше понравиться некоторым игрокам, чем система PVP. Что бы ни интересовало вас больше всего в игре, важно иметь всесторонние знания, потому что независимо от того, цените вы их или нет, вокруг вас всегда существуют параллельные системы.

Совет №1 – выбор сервера.

Выбирая свой первый сервер для игры, вы можете стремиться к менее чем 100 игрокам. А может, даже меньше 50 игроков. Таким образом, вы сможете быстрее прогрессировать и легче изучить механику игры, не убиваясь слишком много раз.

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

Обычно лучше всего просматривать сервер сообщества или модифицированный сервер с активным персоналом, который будет следить за игроками и запрещать хакеров, читеров или любого, кто злоупотребляет ограничением размера группы, что дает вам больше шансов. Если вы обнаруживаете, что прогресс немного медленный, вы можете попробовать перейти на сервер 2x вместо этого, чтобы немного ускорить работу с Rust.

Я бы не рекомендовал использовать сервер выше 3х, иначе это не совсем Rust. Вы можете проверить всю эту информацию в описании сервера в большинстве случаев, просто щелкнув сервер в списке серверов.

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Совет №2: научитесь PVP.

Совет №3: научитесь строить.

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

Большинство людей используют основание один на два или два на два. Если вы не уверены, есть много руководств по этому поводу на YouTube и других базах для начинающих.

Совет №4: выбирайте, где строить.

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

Вы хотите строить достаточно близко к деревьям, чтобы вы могли обрабатывать древесину, и достаточно близко к холмистой местности, чтобы были узлы для фермы для камня, металла и серы. Вы также захотите построить довольно близко к дороге и радому городу, чтобы вы могли добывать лом и компоненты. Но будьте осторожны, насколько близко, поскольку они, как правило, являются горячей точкой для других игроков, которые хотят PVP и получить добычу.

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

Совет №5: не фармите слишком много, пока не получите базу.

Не фармите больше, чем нужно, и не фармите там, где вы появляетесь. Бегите прямо туда, где хотите поселиться, и постройте базу, как только у вас будет достаточно ресурсов. Чрезмерное количество фарма – одна из основных причин того, что люди рано умирают и бросают курить, потому что они продолжают терять все свои кровно заработанные материалы и предметы.

Если у вас есть база, даже если она одна за другой, вы можете хранить свою добычу каждые несколько минут, чтобы минимизировать свои потери.

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Совет №6 – спальные мешки.

Поступая так, вам не придется сталкиваться с длинными мешками каждый раз, когда вас убивают. Вы можете посмотреть мои другие видео с советами и приемами, чтобы увидеть, насколько близко могут быть друг к другу сумки, прежде чем они начнут показывать таймер возрождения.

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

Совет № 7 – смотреть назад.

Хотя это может показаться глупым, он может пригодиться, когда вы бежите, фармите или занимаетесь чем-то еще. Если вы нажмете alt, вы сможете свободно смотреть, не меняя направления бега или взгляда.

Это означает, что вы можете фармить узел или дерево перед собой, глядя назад и в сторону. Вы также можете осматриваться, пока бежите по прямой, что действительно помогает увидеть, не гонится ли за вами кто-то.

Совет № 8 – это сельскохозяйственный лом.

Если вы обнаружите, что сельское хозяйство на дороге не очень хорошо для вас, потому что вы продолжаете умирать для других игроков или не можете найти никакой добычи, то это отличная идея попробовать выращивать лом в океане. Не так много людей склонны собирать металлолом в океане, особенно в начале вайпа, поэтому есть больше возможностей найти больше добычи и меньше шансов умереть. Вам просто нужно научиться использовать лодки в Rust, и оттуда это довольно просто.

Хотя у лодок действительно низкая стоимость топлива, вы обычно можете покрыть это разбиванием красных бочек, которые вы собираете на найденных плотах. Это означает, что поддержание ваших морских трофеев практически не требует затрат.

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

Совет № 9 – выращивание ресурсов.

Если вам сложно фармить ресурсы, потому что вы не можете их найти или снова продолжаете умирать, это поможет. Попробуйте отправиться в более тихую часть карты для фарма. Основные ресурсы, которые вам нужны, – это древесина, металл, камень, сера, ткань и продукты животного происхождения, такие как жир, для получения низкосортных продуктов.

Древесину можно более или менее найти где угодно на карте. В первую очередь в зеленых зонах и более густо в лесных районах, которые можно найти в коричневатых областях карты. Дерево, металл и камень снова можно найти где угодно на карте. Однако гораздо более плотно он появляется в горах на карте, которые обычно белые.

Совет № 10 – это почетные упоминания.

Если у вас более 100 часов в ржавчине или у вас есть другие полезные советы, обязательно оставьте комментарий ниже.

Источник

Первые шаги по Rust

rust обучение для новичков. Смотреть фото rust обучение для новичков. Смотреть картинку rust обучение для новичков. Картинка про rust обучение для новичков. Фото rust обучение для новичков

Всем привет. Недавно познакомился с новым для себя языком программирования Rust. Я заметил, что он отличается от других, с которыми мне до этого доводилось сталкиваться. Поэтому решил покопать глубже. Результатами и своими впечатлениями хочу поделиться:

Сразу поясню, что я около десяти лет пишу на Java, так что рассуждать буду со своей колокольни.

Killer feature

Rust пытается занять промежуточное положение между низкоуровневыми языками типа C/C++ и высокоуровневыми Java/C#/Python/Ruby… Чем ближе язык находится к железу, тем больше контроля, легче предвидеть как код будет выполняться. Но и имея полный доступ к памяти намного проще отстрелить себе ногу. В противовес С/С++ появились Python/Java и все остальные. В них нет необходимости задумываться об очистки памяти. Самая страшная беда — это NPE, утечки не такое уж частое явление. Но чтобы это все работало необходим, как минимум, garbage collector, который в свою очередь начинает жить своей жизнью, параллельно с пользовательским кодом, уменьшая его предсказуемость. Виртуальная машина еще дает платформонезависимость, но на сколько это необходимо — спорный вопрос, не буду его сейчас поднимать.

Rust является низкоуровневым языком, на выходе компилятор выдает бинарник, для работы которого не нужны дополнительные ухищрения. Вся логика по удалению ненужных объектов интегрируется в код в момент компиляции, т.е. сборщика мусора во время выполнения тоже нет. В Rust так же нет пустых ссылок и типы являются безопасными, что делает его даже более надежным чем Java.

В основе управления памятью лежит идея владения ссылкой на объект и одалживания. Если каждым объектом владеет только одна переменная, то как только кончается срок ее жизни в конце блока, все на что она указывала можно рекурсивно очистить. Также ссылки можно одалживать для чтения или записи. Тут работает принцип один писатель и много читателей.

Эту концепцию можно продемонстрировать в следующем куске кода. Из метода main() вызывается test(), в котором создается рекурсивная структура данных MyStruct, реализующая интерфейс деструктора. Drop позволяет задать логику для выполнения, перед тем как объект будет уничтожен. Чем-то похоже на финализатор в Java, только в отличие от Java, момент вызова метода drop() вполне определен.

Вывод будет следующим:

Т.е. перед выходом из test() память была рекурсивно очищена. Позаботился об этом компилятор, вставив нужный код. Что такое Box и Option опишу чуть позже.

Таким образом Rust берет безопасность от высокоуровневых языков и предсказуемость от низкоуровневых языков программирования.

Что еще интересного

Далее перечислю черты языка по убыванию важности, на мой взгляд.

Тут Rust вообще впереди планеты всей. Если большинство языков пришли к тому, что надо отказаться от множественного наследования, то в Rust наследования нет вообще. Т.е. класс может только имплементировать интерфейсы в любом количестве, но не может наследоваться от других классов. В терминах Java это означало бы делать все классы final. Вообще синтаксическое разнообразие для поддержания OOP не так велико. Возможно, это и к лучшему.

Для объединения данных есть структуры, которые могут содержать имплементацию. Интерфейсы называются trait и тоже могут содержать имплементацию по умолчанию. До абстрактных классов они не дотягивают, т.к. не могут содержать полей, многие жалуются на это ограничение. Синтаксис выглядит следующим образом, думаю комментарии тут не нужны:

Из особенностей на которые я обратил внимание, стоит отметить следующее:

Еще немного безопасности

Как я уже говорил Rust уделяет большое внимание надежности кода и пытается предотвратить большинство ошибок на этапе компиляции. Для этого была исключена возможность делать ссылки пустыми. Это мне чем-то напомнило nullable типы из Kotlin. Для создания пустых ссылок используется Option. Так же как и в Kotlin, при попытке обратиться к такой переменной, компилятор будет бить по рукам, заставляя вставлять проверки. Попытка же вытащить значение без проверки может привести к ошибке. Но этого уж точно нельзя сделать случайно как, например, в Java.

Мне еще понравилось то, что все переменные и поля классов по умолчанию являются неизменяемыми. Опять привет Kotlin. Если значение может меняться, это явно надо указывать ключевым словом mut. Я думаю, стремление к неизменяемости сильно улучшает читабельность и предсказуемость кода. Хотя Option почему-то является изменяемым, этого я не понял, вот код из документации:

Перечисления

В Rust называются enum. Только помимо ограниченного числа значений они еще могут содержать произвольные данные и методы. Таким образом это что-то среднее между перечислениями и классами в Java. Стандартный enum Option в моем первом примере как раз принадлежит к такому типу:

Для обработки таких значений есть специальная конструкция:

А также

Я не ставлю себе целью написать учебник по Rust, а просто хочу подчеркнуть его особенности. В этом разделе опишу, что еще есть полезного, но, на мой взгляд, не такого уникального:

Ложки дегтя

Этот раздел необходим для полноты картины.

Killer problem

Главный недостаток происходит из главной особенности. За все приходится платить. В Rust очень неудобно работать c изменяемыми графовыми структурами данных, т.к. на любой объект должно быть не более одной ссылки. Для обхода этого ограничения есть букет встроенных классов:

И это неполный список. Для первой пробы Rust, я опрометчиво решил написать односвязный список с базовыми методами. В конечном счете ссылка на узел получилась следующая Option >:

Выглядит так себе, итого три обертки вокруг одно объекта. Код для простого добавления элемента в конец списка получился очень громоздкий, и в нем есть неочевидные вещи, такие как клонирования и одалживания:

На Kotlin то же самое выглядит намного проще:

Как выяснил позже подобные структуры не являются характерными для Rust, а мой код совсем неидиоматичен. Люди даже пишут целые статьи:

Тут Rust жертвует читабельностью ради безопасности. Кроме того такие упражнения еще могут привести к зацикленным ссылкам, которые зависнут в памяти, т.к. никакой garbage collector их не уберет. Рабочий код на Rust я не писал, поэтому мне сложно сказать насколько такие трудности усложняют жизнь. Было бы интересно получить комментарии практикующих инженеров.

Сложность изучения

Долгий процесс изучения Rust во многом следует из предыдущего раздела. Перед тем как написать вообще хоть что-то придется потратить время на освоение ключевой концепции владения памятью, т.к. она пронизывает каждую строчку. К примеру, простейший список у меня занял пару вечеров, в то время как на Kotlin то же самое пишется за 10 минут, при том что это не мой рабочий язык. Помимо этого многие привычные подходы к написанию алгоритмов или структур данных в Rust будут выглядеть по другому или вообще не сработают. Т.е. при переходе на него понадобится более глубокая перестройка мышления, просто освоить синтаксис будет недостаточно. Это далеко не JavaScript, который все проглотит и все стерпит. Думаю, Rust никогда не станет тем языком, на котором учат детей в школе программирования. Даже у С/С++ в этом смысле больше шансов.

В итоге

Мне показалась очень интересной идея управления памятью на этапе компиляции. В С/С++ у меня опыта нет, поэтому не буду сравнивать со smart pointer. Синтаксис в целом приятный и нет ничего лишнего. Я покритиковал Rust за сложность реализации графовых структур данных, но, подозреваю, что это особенность всех языков программирования без GC. Может быть, сравнения с Kotlin было и не совсем честным.

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

Почитать

Если вас заинтересовал Rust, то вот несколько ссылок:

UPD: Всем спасибо за комментарии. Узнал много полезного для себя. Исправил неточности и опечатки, добавил ссылок. Думаю, такие обсуждения сильно способствуют изучению новых технологий.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *