Witam.
Bardzo gorąca prośba do wszystkich RoR’owców.
Od ponad 2 lat programuję w php i js (o xhtml i css nie wspominam).
Niedawno wpadła mi w ręcę książka pt.“Rails Space” M.Hartl’a i A.Prochazki.
Trochę mnie ta lektura nakręciła na poznanie Rails.
Mam w związku z tym pytania.
Czy warto poświęcić czas na naukę Rails.
Co z hostingiem ? Do php wystarczy mi za 50 zł netto rocznie (w tym nieograniczona ilość poddomen, czyli osobnych stron www).
Współpraca z J-Query. Jak się układa?
Obsługa serwera. Słyszałem, że trzeba znać basha, a z linuksami itp. nigdy nie miałem doczynienia.
Co jest takiego w Rails, czego nie ma w php, że jest tak zachwalane ? Po ilości wątków na forach widzę, że bezproblemowy ten framework wcale nie jest.
Widzę w książce, że ma prostszą składnię.
Język włoski też ma prostszą składnię niż angielski, a jednak ludzie wolą się angielskiego uczyć.
Znam w miarę php. Mamy w pracy swój własny autorski framework.
Właściwie wszystko da się w tym zrobić.
Jednak chętnie poznałbym coś nowego.
Bardzo się będę cieszył jak ktoś mi odpisze i poda jakieś konkrety.
bardzo dobrze (co prawda domyślny jest prototype, ale nie ma przeszkód w używaniu jQuery, a i jest plugin dający wsparcie jak prototype’owi)
nauczysz się, nie jest to jakiś gigantyczny skok - no i można pisać, rozwijać i uruchamiać aplikację railsową pod Windows
poznasz, to zobaczysz w dużym skrócie jest to język ruby i jego filozofia
Jeśli PHP Cię w pełni zadowala i nie udaje Ci się nienawidzieć tego języka czy widzieć jego wad, niedoróbek i kwasów - zostań przy PHP. Nie ma sensu zmieniać narzędzia, z którym czujesz się doskonale. Nikt Cię tu na siłę nawracał nie będzie. Zwłaszcza że chyba każdy tutaj ma doświadczenie z co najmniej php, a i spora część z javą EE – i pamiętamy jak to jest, kiedy wydaje się że, dotychczasowy język/narzędzie/środowisko jest tym i dokładnie tym czego mi trzeba. To generalnie jeszcze nie jest pora na zmianę technologii
Moim zdaniem do rubiego oraz railsów i ich filozofii trzeba “dojrzeć”, mając dość właśnie np. php czy javy.
Zajmij się railsami jednego z tych wieczorów, kiedy się porzygasz niedoróbkami, brakami i “głupstwami” php oraz jego bibliotek, od których nawet Twój framework nie jest w stanie Cię uchronić.
Albo zobacz screencasta “blog in rails in 15 minutes” i daj się porwać magii. Ostrzegam tylko, że wciągnięcie w ruby i railsy brutalnie przyspiesza moment porzygania się pehapem
Sam kiedyś sobie zadawałem to pytanie. Dla mnie podstawowe sprawy to: brak chaosu wśród parametrów funkcji, nadpisywanie i dodawanie metod w locie, składnia sympatyczna i dająca przyjemność (jakoś bardziej się mogę skoncentrować na logice niż myśleniu co i jak - tutaj pisanie się szybko staje bardzo naturalne), w samych Rails - społeczność, dostępność pluginów, miałem doświadczenie z frameworkami w PHP - daleko im do Rails, ale próbują jak najlepiej naśladować. I wiele, wiele innych. Faktem dla mnie jest to, co powtarzał mi znajomy: “zakosztuj Ruby i będziesz miał niechęć do PHP”, w pełni się z nim zgadzam i Tobie polecam. Btw. nikt Ci tego nie wyjaśni dopóki sam nie spróbujesz i nie słuchaj tych co mówią o problemach z hostingiem, z serwerami etc, wszystko szybko i łatwo można opanować, do tego jak się przekonałem najczęściej, jest kosmiczna różnica w jakości pomiędzy hostingiem PHP za 50zł na rok, a hostingiem z Rails. (chociaż bywają wyjątki).
Chciałem jeszcze zauważyć, że dopóki nie będziesz miał dobrego odniesienia do PHP to jego wad nie zauważysz, pobaw się trochę Ruby i wróć do PHP - gwarantuje mały szok.
[quote=Andrzej_Mazurkiewicz]Znam w miarę php. Mamy w pracy swój własny autorski framework.
Właściwie wszystko da się w tym zrobić.[/quote]
Wszystko będzie dobrze, póki nie przyjdzie Ci wdrożyć nagle 3 nowe osoby w ten autorski framework. A może już to przerabiałeś i masz jakieś spostrzeżenia?
[quote=underley][quote=Andrzej_Mazurkiewicz]Znam w miarę php. Mamy w pracy swój własny autorski framework.
Właściwie wszystko da się w tym zrobić.[/quote]
Wszystko będzie dobrze, póki nie przyjdzie Ci wdrożyć nagle 3 nowe osoby w ten autorski framework. A może już to przerabiałeś i masz jakieś spostrzeżenia? ;)[/quote]
Taa.
Było, jak ktoś Zend_framework sobie ubzdurał (ale to kiedyś, dawno temu).
Kolesie co po 3-5 lat mieli doświadczenia przez kwartał jakoś się wbić w to nie mogli.
Powiem brzydko - była kupa z tego pomysłu.
We własny frame łatwiej kogoś wbić, bo to właściwie kilknaście klas.
Ale transakcji czy innych rzeczy na wyższym poziomie się już nie zrobi.
Trza samemu.
Mam możliwość dorabiania jako freelancer i pomyślałem o Railsach, jako o środowisku przyspieszającym pracę,
bo dużo czasu bym nie miał na dodatkowe zajęcie.
Przerobiłem Rails_Space do połowy właściwie w kilka wieczorów i wygląda to wszystko bardzo ciekawie.
Ale scaffolding np. już wogóle nie zaskakuje w nowszej wersji Rails i nie wiem, jak to będzie z kompatybilnością wstecz w przyszłości.
No i jak przeskoczyć jeden mały szczególik: w życiu nie miałem doczynienia z administrowaniem.
Linuxa znam z nazwy.
W hostingu Rails, czy Java - Bash, SSH i te sprawy trzeba mieć opanowane.
Jest sposób na pozbycie się tego problemu ?
Wiem, że jest firma Megiteam, gdzie wszystko jest ustawiane automatycznie,
ale powiedzmy, że ceny hostingu mają wysokie.
Raczej nie. Co prawda akurat od strony hostingu można tego uniknąć czy to zminimalizować (deploy na apache z passenger / mod_rails), a aplikację rozwijać na własnym komputerze pod Windows. Niemniej pewnych komend railsów, odpalanych z konsoli, nie da się odpalić inaczej (z wyjątkiem może Netbeans), więc nie można uciekać z przerażeniem na widok czarnego okienka.
A zautomatyzowany deployment (capistrano) to już w ogóle wymaga wiedzy co-to-za-komenda i o-co-tu-chodzi, zwłaszcza kiedy coś się posypie.
Potraktuj Railsy jako świetną okazję do bardzo łagodnego i delikatnego uczenia się konsoli oraz linuksowych narzędzi. Bo naprawdę akurat jeśli o to chodzi, railsy eksponują Cię na bardzo łatwy do nauczenia podzbiór komend unixowych
Kiedyś linux może i był czarną magią dla niektórych, ale teraz poziom skomplikowania drastycznie spadł. Instalujesz sobie ubuntu i:
sudo apt-get install ruby apache2
wget tutaj_url_do_rubygems_1.3.1
tar -zxvf rubygems-1.3.1.tgz && cd rubygems-1.3.1 && sudo ruby setup.rb
sudo gem install rails passenger
sudo passenger-install-apache-module
sudo /etc/init.d/apache2 reload
Tworzysz vhosta i już masz załatwione railsy. (powyższe komendy pisałem z palca, więc mogą się różnić nazwy paczek itp)
Jeżeli chodzi o hosting, to jeżeli chcesz robić projekty za kasę, to wystarczy jakiś VPS na początek. Uderzaj do PaK na forum - na IRCu dał linka do jakiegoś VPSa, którego używa - dobry stosunek moc obliczeniowa/cena.
[quote=drogus]Kiedyś linux może i był czarną magią dla niektórych, ale teraz poziom skomplikowania drastycznie spadł. Instalujesz sobie ubuntu i:
sudo apt-get install ruby apache2
wget tutaj_url_do_rubygems_1.3.1
tar -zxvf rubygems-1.3.1.tgz && cd rubygems-1.3.1 && sudo ruby setup.rb
sudo gem install rails passenger
sudo passenger-install-apache-module
sudo /etc/init.d/apache2 reload
[/quote]
Tak się robiło jak po ziemi chodziły jeszze dinozaury, teraz już nie trzeba.
Po pierwsze - gems 1.3.1 jest w Ubuntu 8.10 i nie trzeba go kompilować.
Po drugie - jest ruby-enterprise, które udostępnia paczkę dla Ubuntu w której jest ruby 1.8.6. gems 1.3.1 i kilka przydatnych gemów (w tym passenger). Po instalacji i dodanie do PATH /opt/ruby-enterprise/bin wszystko śmiga bez problemów. Pobrać ją można z http://www.rubyenterpriseedition.com/download.html
Weźcie nie straszcie człowieka
Andrzej, zassij BitNami RubyStack (http://bitnami.org/stack/rubystack) i napisz swoją pierwszą aplikację jeszcze na windowsach. Zanim skończysz, będziesz tak wkręcony w railsy, że nawet nie zauważysz łyknięcia artykułów o deploymencie
Chciałem polecić InstantRailsy, ale niestety ich rozwój stoi już ponad rok. Bitnami ma przynajmniej railsy w 2.1.1 - bez rewelacji, ale do nauczenia i inspiracji wystarczy.
Bardzo dziękuję za wszelkie porady.
Wszystkie przestudiuję dokładnie.
W sumie poznanie kilku dodatkowych rzeczy w kwestii obsługi SSH itp. jest niczym
w porównaniu do zagłębiania się np. w Cake-php, który to podobno naśladuje Railsowskie MVC.
Zasięgnąłem opinii tu i tam i jestem w miarę pozytywnie nastawiony, choć nie sądzę by bez problemów
się obeszło.
Ktoś jeszcze polecał mi Merba, czy Python-Django, ale widzę, że literatury do Rails jest w miarę,
choć wszędzie piszą jeszcze o scaffoldingu (tak przynajmniej wnioskuję ze spisów treści), a z tego co się
dowiedziałem już się tego nie stosuje.
Wielkie dzięki.
Do usłyszenia.
[quote]Ktoś jeszcze polecał mi Merba, czy Python-Django, ale widzę, że literatury do Rails jest w miarę,
choć wszędzie piszą jeszcze o scaffoldingu (tak przynajmniej wnioskuję ze spisów treści), a z tego co się
dowiedziałem już się tego nie stosuje.[/quote]
Developerzy Merba i Railsów łączą swoje siły, dlatego Rails 3.0 = Merb 2.0
Jeśli chodzi o rozwój i niekompatybilności to jest to istotnie pewien problem, w szczególności dla ludzi zaczynających naukę. W sieci jest pełno tutoriali, które nie działają z aktualnymi wersjami Railsów. Natomiast pewnym rozwiązaniem tego problemu jest ostatnio zwiększenie prac jakie poświęcone są dokumentowaniu Railsów i tworzeniu “oficjalnych podręczników” - zgodnych z aktualnymi wersjami.
Co do scaffoldu, to prawda wygląda tak, że dynamiczny scaffold został usunięty, ponieważ był jedną wielką niedoróbką. Natomiast zwykły, statyczny scaffold dalej jest i raczej nie zniknie
[quote=apohllo][quote]Ktoś jeszcze polecał mi Merba, czy Python-Django, ale widzę, że literatury do Rails jest w miarę,
choć wszędzie piszą jeszcze o scaffoldingu (tak przynajmniej wnioskuję ze spisów treści), a z tego co się
dowiedziałem już się tego nie stosuje.[/quote]
Developerzy Merba i Railsów łączą swoje siły, dlatego Rails 3.0 = Merb 2.0
Jeśli chodzi o rozwój i niekompatybilności to jest to istotnie pewien problem, w szczególności dla ludzi zaczynających naukę. W sieci jest pełno tutoriali, które nie działają z aktualnymi wersjami Railsów. Natomiast pewnym rozwiązaniem tego problemu jest ostatnio zwiększenie prac jakie poświęcone są dokumentowaniu Railsów i tworzeniu “oficjalnych podręczników” - zgodnych z aktualnymi wersjami.
Co do scaffoldu, to prawda wygląda tak, że dynamiczny scaffold został usunięty, ponieważ był jedną wielką niedoróbką. Natomiast zwykły, statyczny scaffold dalej jest i raczej nie zniknie :-)[/quote]
Bardzo dziękuję
Jeszcze jedna uwaga w kwestii autorski frameworków. Przeczytaj sobie Rails Security Guide i szczerze odpowiedz sobie na pytanie, czy Twój autorski framework odporny jest na wszystkie wymienione tam typy ataków. Możne na większość? A może na żaden?
IMHO to jest jedna z największych zalet oprogramowania open-source - kiedy tylko rozpoznany jest nowy sposób ataku niemal natychmiast
wprowadzane są poprawki. Co więcej - zawsze możesz sam zweryfikować poprawność zaproponowanego rozwiązania, bo masz kod źródłowy.