kb
10.08.2012 16:05 04a3831c
Как же я не люблю рефакторинг. Последние пол дня моей работы состояли из прогресса вида:
FAILED (errors=10, failures=41)
FAILED (errors=9, failures=28)
FAILED (errors=5, failures=13)
FAILED (errors=1, failures=5)
и нехилой такой прокастинации.
i know that feel, bro
поэтому уважаю статическую типизацию. С ней рефакторить всяко проще. (конечно, это не серебрянная пуля.)
согласен (в теории, практики не имею), но только не в этом случае совершенно. ну и в ней кроме борьбы с тестами прибавляется еще борьба с компилятором такая же.
согласен про то, что есть сцуко очень разные случаи. Сам уже полторы недели рефакторю статически-типизированное, высокоуровневое, точнее, подгоняю под новые требования. Логики много, той, что не проверить хиндли-милнером, а на coq перетащить ниасилил, "я только учусь".
Но в моих случаях обычно не "борьба с компилятором", а "компилятор подсказывает, какие места программы необходимо обойти вниманием", на основании таки типов и кое-чего ещё. Например, sum types / record types — первые всегда, а вторые периодически разбираются паттерн-матчингом, который, кроме очевидного "нет такого конструктора/поля" и "такой-то конструктор не заматчен", говорит "а вот тут ты матчишь все конструкторы, и, если добавятся, то прощёлкаешь", или "тут ты разбираешь все поля записи, они добавились, ты вероятно прощёлкал".