amarao (amarao_san) wrote,
amarao
amarao_san

Category:

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

В рефакторинге часто бывает момент, когда надо "подвигать строки". Слить две функции вместе, или распилить их на две части. Когда рефакторинг обдумывается, это мыслительный акт, в котором есть творческая составляющая, эстетика и сложные размышления. Но когда уже начинаешь процесс, это тупой грайнд, стыковка кусков пока "не заработает". Мелкие изменения имён переменных, место где они декларируются (если мы режим функцию на две - в первой или во второй) и т.д.

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

... Но на расте это совершенно другой уровень тыц-тыц-тыц. Куда мне этот let перенести? Можно сюда? Вроде, можно. А на уровень выше? Можно. А ещё выше? Фигак, нельзя, borrow-бла-бла-lifetime, вернул на место.

zero thinking required. Тыкать строчки пока не скомпилится. Скомпилировалсь? Работает.

Я, утрирую, конечно, но вот это ощущение тыц-тыц-влезло-значит-хорошо очень сильное. И это приятно, особенно, в свете того, что никаких тестов там (в штуке, которую я рефакторю) нету.
Tags: rust
Subscribe

  • 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.
  • 14 comments