amarao (amarao_san) wrote,
amarao
amarao_san

Category:

рефакторинг в расте

Наверное, это pleasure point в языке. У питона pleasure point - где-то в районе "быстро написать". Т.е. вжик - и готово. Прям не успел оглянуться, всё сделано. Если где-то застрял, всегда есть простой локальный метод срезать угол и продолжить. (В малых формах, разумеется).

У rust'а вжик и готово не получается. Компилятор из тебя всю душу вынет, пока ты ему не докажешь, что выхода за пределы массивов нет, что все типы до самого зачуханного err где-то там в невозможном случае совпадают.

Но зато pleasure point - это локальный рефакторинг. Глобального я пока не пробовал, не скажу.

У любого рефакторинга какой главный страх? Не то, что не получится (не получится - можно попробовать заново), а что оно "получится", но "не так как было". И это "не так как было" обнаружится спустя N последующих изменений и будет больно и обидно.

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

Разумеется, никто от алгоритмических ошибок не спасает. Если хотел ко всем числам добавить +1, а вместо этого умножил на 2 - ну сам себе дурак. Но по-крайней мере компилятор (в некоторых ситуациях) проверит, что умножение можно, и может быть, что даже "для всех".

Вот я только что поменял код с array на vec (одно статически задаётся, второе в рантайме) и заменил содержимое с Option на types. (т.е. перененёс проверку границы диапазона с .unwrap() на [] у vec'а).

Компилятор на меня несколько раз ругнулся, я его успокоил - фигак, и с десяток несвязных изменений в двух файлах скопмилировался и работает. Ровно так же, как работал раньше. Pleasure point.
Tags: rust
Subscribe

  • innernet

    Кто-то с ним работал? https://blog.tonari.no/introducing-innernet Пока что по описанию оно звучит как офигенно.

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments