Отведал Рельсов 2.1
Nov. 20th, 2008 10:44 pmкак следствие переезда с Ubuntu Hardy на Intrepid.
И если выразить это словами, то мне показалось, что они шире, чем 2.0.
Т.е. без дополнительной адаптации поезда в них проваливаются :>
Вот, например, в модуль Enumerable они давно уже добавляют метод group_by. Удобная штука, чтоб делать хэши из массивов и прочих контейнеров. И вот в Rails 2.0 этот метод возвращает простой и всем знакомый Hash, а в 2.2 - некий ActiveSupport::OrderedHash. Который весьма похож на Hash, только не имеет метода has_key?. В результате пришлось мне из OrderedHashа довльно примитивным и лишним телодвижением делать просто Hash, только для того, чтобы в дальнейшем юзать этот has_key?, как встарь.
Я знаю и люблю эту инженерскую поговорку, что система достигает совершенства не тогда, когда к ней нечего добавлять, а когда из неё нечего выбрасывать. Но по-моему, это не тот случай. Если в названии вашего класса есть Hash, то согласно duck typingу и принципу подстановки Барбары Лисков всё ж хочется питать надежду, что вести он себя будет как Hash. Если, конечно, метод has_key? не объявлен устаревшим и ему не подыскана более современная замена.
Даже переезд с Рельсов 1.2 на 2.0 со сменой старшей версии прошёл у меня гладше. Понадобилось только добавить в указанное место произвольную строку в качестве шифровального ключа для stateless-session-cookies.
Там ещё умельцы из Canonical скрутили головку courier-maildropу в Intrepide.
Но это уже другая история, хотя и столь же малоприятная.
И если выразить это словами, то мне показалось, что они шире, чем 2.0.
Т.е. без дополнительной адаптации поезда в них проваливаются :>
Вот, например, в модуль Enumerable они давно уже добавляют метод group_by. Удобная штука, чтоб делать хэши из массивов и прочих контейнеров. И вот в Rails 2.0 этот метод возвращает простой и всем знакомый Hash, а в 2.2 - некий ActiveSupport::OrderedHash. Который весьма похож на Hash, только не имеет метода has_key?. В результате пришлось мне из OrderedHashа довльно примитивным и лишним телодвижением делать просто Hash, только для того, чтобы в дальнейшем юзать этот has_key?, как встарь.
Я знаю и люблю эту инженерскую поговорку, что система достигает совершенства не тогда, когда к ней нечего добавлять, а когда из неё нечего выбрасывать. Но по-моему, это не тот случай. Если в названии вашего класса есть Hash, то согласно duck typingу и принципу подстановки Барбары Лисков всё ж хочется питать надежду, что вести он себя будет как Hash. Если, конечно, метод has_key? не объявлен устаревшим и ему не подыскана более современная замена.
Даже переезд с Рельсов 1.2 на 2.0 со сменой старшей версии прошёл у меня гладше. Понадобилось только добавить в указанное место произвольную строку в качестве шифровального ключа для stateless-session-cookies.
Там ещё умельцы из Canonical скрутили головку courier-maildropу в Intrepide.
Но это уже другая история, хотя и столь же малоприятная.
no subject
Date: 2008-11-25 09:27 pm (UTC)