12 июля 2008

6 Optimization Tips for Ruby MRI

Отличный пост про оптимизацию руби кода для выполнения на MRI. Однако, один из советов одно время обходился мне граблями, примерно такого рода:


>> "barbarbarbar".gsub(/buz/,'foo')
=> "barbarbarbar"
>> "barbarbarbar".gsub!(/buz/,'foo')
=> nil

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

2 комментария:

Анонимный комментирует...

Кстати да, совсем недавно обнаружил у себя баг. Долго не мог догнать почему .gsub! ведет себя так неожиданно.

Анонимный комментирует...

разработка стратегии разработка сайтов http://web-miheeff.ru разработка стратегии