Migracja Rails => Merb

Witam,

Mam projekt w Rails 2.2 ~30 modeli i ~40 kontrolerów. Naszemu klientowi ktoś poopowiadał o merbie i tak mu się spodobało, że teraz wypytuje o migrację z railsów na merba. Miał ktoś z was [nie]przyjemność przeprowadzać taką migrację? Ile czasu może zabrać i gdzie spodziewać się największych problemów?

  • Wiem oczywiście, że Rails 3.0 = Merb i jak już to warto migrować po wydaniu 3.0, ale klient tego nie rozumie i zrozumieć nie chce.

Jak klient tego nie rozumie, to jest idiotą i powinien się słuchać tego co mu mówią programiści.

Merb już praktycznie nie jest wspierany, od czasu do czasu wypuszczają jakieś bugfixy. Dopiero po tym jak railsy dotrą do wersji 3, merb prawdopodobnie dostanie dodatkowe funkcjonalności (Yehuda o tym ostatnio pisał - na razie nic nie robią, bo nie ma sensu dodawać czegoś do merba jeżeli nie wiadomo jak to dokładnie będzie wyglądało w railsach 3).

Dlatego ja bym spróbował wytłumaczyć klientowi, że bezsensowanie wyda kasę na 2 lub 3 przesiadki. Najpierw na merba, później na nowszą wersję merba, a później na railsy 3 (chyba, że pominąć przesiadkę na nowszego merba.

Jeżeli chodzi o sedno pytania to:

  • modele mogą zostać nieruszane właściwie, merb jest orm agnostic, więc tutaj nie widze problemów
  • routesy nie wydają mi się problemem - router do merba jest bardziej funkcjonalny, nie ma co prawda funkcji _path i _url, ale można to załatwić method_missing
  • kontrolery się niewiele różnią, ale trzeba będzie mozolnie przejść po wszystkich i zmienić callbacki, nazwy kontrolerów, flash messages
  • widoki - tutaj widzę największy problem - helpery się chyba najbardziej różnią… mozolna to będzie robota

Ogólnie jeden wielki bezsens w tych dniach, więc mam pytanie: jakie są argumenty klienta? :slight_smile: Może mam jakieś niesamowite szczęście, ale nigdy nie spotkałem klienta, który “wie lepiej”. Czasami trzeba trochę podyskutować, ale nigdy bym nie pomyślał, że coś takiego… rewrite to ostateczna ostateczność dla aplikacji biznesowej. jak aplikacja działa i ma się dobrze, to jest to jeszcze większy bezsens.

Przepisywać projekt w Railsach na Merba ?!? To prawie jak kupić nowy samochód marki Subaru Impreza, sprzedać go, do uzyskanych pieniądzy dołożyć trochę żeby kupić samochód marki Subaru Impreza tyle, że model którego już nie produkują i bez skórzanej tapicerki :wink: Kto naopowiadał klientowi, przyznać się ! :slight_smile:

Skoro klient wie lepiej jaka technologia bardziej pasuje do projektu, to oddajcie mu projekt jak najszybciej i unikajcie jak ognia. Klient który “wie lepiej” i nie ufa inżynierom w ich decyzjach prędzej czy później staje się koszmarem.

Dzięki za odpowiedzi. Oczywiście chcielibyśmy mieć klientów dających pełną specyfikację, wiedzących dokładnie czego chcą i nie zmieniających zdania po 3 razy. Tylko tacy klienci, chyba wyginęli wraz z dziewicami w liceach… Cczy jednak się myle i macie klientów, kótrym nie można nic zarzucić? Naszemu klientowi przedstawiamy właśnie czas i koszty migracji co powinno go skutecznie zniechęcić do pomysłu.

Tacy klienci nigdy nie istnieli, a nadzieja na nich zdechła wraz z Agile Manifesto. Nie jest mi przykro.
Klient ma pełne prawo zmieniać zdanie, zwłaszcza jeśli płaci za roboczogodziny.
Ale to zupełnie coś innego od “klient może/powinien narzucać rozwiązania technologiczne i ‘wiedzieć lepiej’ w sprawach, na których się zwyczajnie nie zna”.