2009-08-30 10 views
5

Jestem (całkiem) doświadczonym programistą, ale całkowicie nowym dla Ruby i Ruby on Rails.Ostatnie 20% w Ruby on Rails

RoR świetnie wygląda, aby szybko działać, zwłaszcza automatyczne generowanie ekranu dla operacji CRUD.

To naprawdę szybko przynosi produktywność.

Pytania dotyczą ostatnich 20% pracy, kiedy muszę dokończyć aplikację. Czy konwencje RoR nie staną mi na drodze? Ponieważ nie każda tabela bazy danych musi być dostępna dla wszystkich użytkowników, a nie wszyscy użytkownicy mogą edytować wszystkie kolumny i/lub wszystkie wiersze, a widoki muszą być dostosowane do wyglądu i sposobu mojej witryny itp.

Rozumiem, że RoR został z powodzeniem stosowany w witrynach na żywo, ale jak dokładnie uzyskuje się wystarczającą prędkość w RoR, aby uniknąć grawitacji po wypaleniu pierwszej fazy.

+7

Wydajesz się być mylącym "stanąć na mojej drodze" z "nie wykonuj pracy dla mnie", przynajmniej sądząc z twoich przykładów. (Musisz zaprojektować widoki do pracy z wyglądem i stylem twojej strony? Jak to jest na przykład z Railsami?) – Chuck

+0

Dobra robota, Chuck. –

Odpowiedz

7

Nie sądzę, że rusztowanie przyniesie Ci 80%. Rusztowanie jest fajne, ponieważ pokazuje, w jaki sposób kawałki Railsów pasują do siebie, ale nie zbudowałbym mojej aplikacji z kodu rusztowania. Teraz, gdy jesteś pod wrażeniem rusztowania, najlepiej zapomnieć o wszystkim. :)

Tam, gdzie Rails naprawdę świeci w mojej głowie, jest niesamowita dynamika ActiveRecord i ekosystem pluginów.

Jest wiele rzeczy do nauczenia się, decydując się na Rails. Masz nowy język, nowe środowisko i nowe wtyczki - ale jeśli poświęcisz czas, aby nauczyć się tych rzeczy, możesz być bardzo produktywny dzięki Railsom.

+6

Och, geez, bez żartów. Rusztowanie nie jest * przeznaczone *, aby zabrać Cię w dowolne miejsce w pobliżu pełnej aplikacji. +1 – Chuck

+0

Używam rusztowań, ale tylko z niestandardowymi generatorami. –

1

Czy konwencje RoR nie staną mi na drodze? Ponieważ nie każda tabela bazy danych musi być dostępny dla wszystkich użytkowników, a nie wszyscy użytkownicy mogą edytować wszystkie kolumny i/lub wszystkie wiersze, a widoki musi być dostosowany do wygląd mojej strony i czuć, itp

To jest trochę nie sequitur. Rails to framework, który został usunięty z aplikacji świata rzeczywistego. Te aplikacje miały również do czynienia z tymi wszystkimi problemami, a także z innymi, których być może jeszcze nie wymyśliłeś. Ogólnie rzecz biorąc, konwencje ułatwiają życie, gdy się ich nauczysz.

Inną kwestią jest to, że konwencje są jedynie konwencjami. Nie musisz ich przestrzegać. Nawet nie musisz używać RoR do wszystkiego, chociaż nie znalazłem jeszcze przypadku, w którym nie mogłem/nie mogłem, generalnie staram się wcisnąć tak dużo w warstwę DB lub cache, jak to możliwe.

5

Od jakiegoś czasu robię ruby ​​na szynach. Problem 80/20 nie jest unikalny w przypadku szyn. Dotyczy to ogólnie całego świata. Nie wiem też o żadnej strukturze, która może po prostu logikę biznesową dla ciebie.

Aby odpowiedzieć na konkretne pytania. Konwencje nie staną na przeszkodzie, robiąc 20%. Zamiast tego konwencje ułatwią ci przejście o 20% szybciej.

Osobiście do uwierzytelniania użytkownika używam Authlogic. W celu autoryzacji użytkownika korzystam z wtyczki Lockdown lub Authorization w zależności od potrzeb klienta.

Używam również inherited_resource w większości moich projektów, aby uprościć kod kontrolera. To kolejna moc konwencji.

Aby przyspieszyć rozwój, będziesz musiał nie tylko znać Railsy, ​​ale także klejnoty/wtyczki, które robią właściwe rzeczy dla Ciebie, więc nie musisz ponownie wymyślać kół. Znajomość języka Ruby jest niezbędna do szybkiego rozwoju ponad 80%.

Ruby Toolbox dostarcza niektóre z najpopularniejszych klejnotów i wtyczek używanych w typowych projektach szyn przeznaczonych dla określonych domen. Możesz przeglądać odpowiednie kategorie i wiedzieć, czego większość ludzi używa. (I prawdopodobnie warto używać popularnych, dobrze utrzymanych klejnotów)

Opracowanie stylu TDD/BDD pomoże również przyspieszyć w dłuższej perspektywie.

Wreszcie ostrzeżenie: jeśli odejdziesz od konwencji szyn, ogólnie będzie to bolesny czas.

P.S. Użyłem Merb przedtem. Mam wrażenie, że konwencje pomagają tobie, ale nie dostaniesz za dużo kar za nieprzestrzeganie ich. Jednak moje doświadczenie z Railsami polega na tym, że jeśli zdecydujesz się nie podążać za konwencją rails podczas tworzenia aplikacji rails, wróci cię, by cię ugryźć w taki czy inny sposób! Więc pomyśl dwa razy, kiedy naprawdę próbujesz oderwać się od konwencji szyn ... (To z mojego własnego doświadczenia i oczywiście subiektywnego, ale możesz myśleć o tym jak o ostrzeżeniu ...)

0

Ja nie wierzę, że kiedykolwiek będziesz mieć poważny problem z konwencjami Rails. Po prostu trzymaj się konwencji i zaufaj systemowi RoR. Osoby odpowiedzialne za Rails włożyły wiele wysiłku w te konwencje, aby obsługiwać 99% powszechnych scenariuszy użycia.

Jeśli naprawdę potrzebujesz czegoś poza konwencjami, szybko się skomplikuje. Jednak nie jesteś sam. Istnieje wiele doskonałych zasobów w sieci, aby uzyskać pomoc (na przykład społeczność StackOverflow).

Podsumowując: