Problem z RoR
RoR ma jeden, podstawowy problem - brak dokumentacji i ciągłe zmiany. Jest to bardzo potężny ale jednocześnie bardzo zgubny framework. Co gorsza duża część kursów pokazuje jak nie programować w Railsach
Bardzo przydatną, choć nie pokazywaną na animacjach cechą Railsów są na przykład restful routes. Z jednej strony mamy przydatne narzędzie a z drugiej jest to coś co przeczy 'prostocie' i 'przyjazności' środowiska. Innym przykładem są migracje, które w stosunkowo małej ilości kursów (jest przynajmniej jeden screencast :) ).
Ostatnio przeczytałem, że zmieniono nazewnictwo plików z .(rhtml|rjs|rxml) na .output.input(na przykład .html.erb). Niby nic takiego, zmiana w dobrym kierunku, a wprowadza chaos (nie mówiąc już o problemach z systemami, zarówno operacyjnymi jak i IDE, rozpoznającymi pliki po rozszerzeniach). Nie mam zielonego pojęcia skąd się tego dowiedziałem (nie do końca 'oficjalnymi' kanałami - ktoś opisywał jakieś problemy z tym na którejś z planet).
W dużej mierze wiedza na temat railsów jest 'społecznościowa'. Żeby coś zrobić poprawnie i elegancko trzeba przejrzeć prezentacje, screencast i blogi (wybierając to, na którym dana informacja się znajduje). Nie wiem jakie jest rozwiązanie, ale IMHO Railsy są za mało udokumentowane (a właściwie dokumentacja jest zbytnio rozproszona).
Komentarze do wpisu
Możesz śledzić odpowiedzi poprzez kanał RSS. Możesz dodać komentarz lub zostawić ślad (trackback) ze swojego bloga.
Radarek
Chyba przesadziłeś i to dosyć ostro. Brak dokumentacji? http://api.rubyonrails.org/, http://ar.rubyonrails.com/ (ActiveRecord), http://wiki.rubyonrails.org/, masa książek (zobacz na amazonie), tutoriali, blogów, screencastów. Nic nie wiem o zmianach o których piszesz, jeśli nawet są to dotyczące wersji dev, której nikt o zdrowych zmysłach nie używa do czegoś innego niż zabawa z railsami. Wersją stabilną jest 1.2.3 i większość wspomnianych materiałów dotyczy tej wersji. Migracje w małej ilości kursów? Chyba korzystamy z innego internetu. „Bardzo przydatną (...) są restful routes. Z jednej strony mamy przydatne narzędzie a z drugiej jest to coś co przeczy ‘prostocie’ i ‘przyjazności’ środowiska.” Nie czaję. To jest właśnie prostota i przyjazność.
Oczywistym jest, że bez poznania podstaw sama dokumentacja to za mało – jest zbyt skąpa. Ale potem okazuje się, że jest dobra, bo jak czegoś nie pamiętam to zaglądam do dokumentacji i nie przedzieram się przez masę tekstu. Poza tym railsy są takim projektem, który wymaga także pewnego wkładu od jego użytkowników. Trzeba „bawić” się dużo konsolą railsową, a nawet czasem zaglądnąć do źródeł (to na prawdę nie boli).
09 września 2007, 15:06:25
Uzytkownik
1. Oficjalna dokumentacja jest, hmm. zbyt bogata. Załóżmy, że nie wiesz jak się nazywa ta funkcja która dokładała REST. http://api.rubyonrails.org/ W tym nie pomoże (co nie jest wcale wadą – ma inne zastosowania i często z tej strony korzystam [albo z wersji na dysku]). Wiki mam wrażenie, że nie przyciągneło krytycznej lidzby osób, które chciałyby się nim zająć (mam takie własne, subiektywne wrażenie).
2. Książki -> opisy mało którego frameworku tak się dezaktualizują jak railsów (nie mówie o zmianach w wersji 0.0.1 -> 0.0.2 ;) ). Jeśli przyrównywać to do zmian w językach to taka rewolucja zaszła w Javie 1.5 (na przestrzeni całej historii tego języka). Pewne konwencje zmieniają się i dosyć trudno to śledzić poprzez kupowanie książek… (tak – śledzę planety na temat RoR i Ruby).
3. Byc może jest duża ilość kursów – w ‘mojej części Internetu’ dostaje tylko jak to automagicznie ActiveRecord pobiera dane z bazy danych (i CREATE TABLE bezpośrednio w SQL). :)
4. „Bardzo przydatną (...) są restful routes. Z jednej strony mamy przydatne narzędzie a z drugiej jest to coś co przeczy ‘prostocie’ i ‘przyjazności’ środowiska.” Nie czaję. To jest właśnie prostota i przyjazność.
Dlatego dodałem „’”. Jest to bardzo przydatne narzędzie tylko trudno pokazać to w screencast’ie. Trudno jest pokazać dlaczego to jest lepsze.
Tak jak z konsolą. Jest to proste i przyjazna. Spróbuj to wytłumaczyć komuś, kto całe życie pracował z GUI.
5. > Trzeba „bawić” się dużo konsolą railsową, a nawet czasem zaglądnąć do źródeł (to na prawdę nie boli).
Wiem, że nie boli – robie to dosyć często :)
6. Wydaje mi się, że o ile dla początkujących jest masa dokumentacji, zaawansowani są ‘w temacie’ to dla średnich jest pewna pustka.
Pozdrawiam
09 września 2007, 15:31:34
Radarek
No więc jak widać nie ma co aż tak bardzo narzekać na dokumentację :). Trzeba przy tym dodać, że trzeba się dokształcać w tej dziedzinie (ruby, railsy, gemy, metaprogramowanie, dsl i tak dalej :)) cały czas. Dużo pomagają video z przeróżnych prezentacji/wykładów. Przykładowo: http://www.scribemedia.org/2006/07/09/dhh/, http://rubyhoedown2007.confreaks.com/ (niektóre na prawdę świetne), http://mtnwestrubyconf2007.confreaks.com/, http://video.google.pl/videoplay?docid=2939556954580527226. Nic nie jest bezcelowe. W zamian za nasz wkład railsy odwdzięczają się tysiąckrotnie, niejeden raz się o tym przekonałem :).
09 września 2007, 15:41:37
Uzytkownik
Dzięki za linki – ograniczłem się do blogów. Generalnie znacznie bardziej cenie komunikacje tekstową niż audiowizualną. Staram się zdobyć na temat RoR jak najwięcej informacji ale wydaje mi się, że RoR’y mogą podzielić los PHP (z tym, że to drugie ma również kiepski projekt) – duża ilość osób piszących w tym języku praktycznie go nie znając. Rozproszenie informacji wcale IMHO nie pomaga temu.
09 września 2007, 15:48:53
Radarek
Wiesz, jeszcze kilka miesięcy temu byłem zdania, że Ruby wraz z RoR zajmie miejsce Php (chodzi o skalę zastosowań), jednak teraz mam zupełnie inne zdanie. Tak jak wspomniałem RoR wymaga trochę (znacznie więcej na początek niż php) od programistów. Na sam początek dostajesz po oczach MVC (co samo w sobie nie jest trudne, ale jeśli się wcześniej tego nie znało to już jest co poznawać), zaraz potem unit, functional tests. Równocześnie uczysz się Rubiego, którego podstawy są proste do opanowania, ale dalej już nie jest tak łatwo (metaprogramowanie, dsl, mixins). Myślisz, że to koniec ale ciągle napotykasz nowe rzeczy, które jak się okazuje najczęściej są nieodzowną częścią tworzenia projektu w railsach (tdd, bdd, continuous integration, autotest, capistrano, load balancing i tak dalej…). Owszem, da się żyć bez tych wszystkich, jakby się mogło wydawać, „zbędnych” dodatków. Ale… Do czego zmierzam… Ruby (oczywiście to jest moja teoria) nie podzieli losów Php, ani też nie zdetronizuje go. Php jest dla mas, a Ruby dla ludzi, którzy prezentując odpowiednio wysoki poziom, są wstanie zapanować nad tym wszystkim, ciągle się uczyć i zdobywać wiedzę na „własną rękę”. Tutaj statystyczny phpowiec po prostu odpada. Po prostu Ruby ma (na pewno ciągle powiększa) swoich programistów, którzy są na tyle dobrzy by sprostać jego wymaganiom. Dlatego nic tu nie ma prawa upaść :). I mam nadzieję, że moja teoria się sprawdzi, bo na prawdę nie chciałbym by ta „krytyczna phpowa masa” przechodziła nagle na Rubiego/RoR. Społeczność nie wytrzymałaby chyba tych częstych pytań w stylu „co to jest mvc, routing?”, „dlaczego
, a nie@”, „dlaczego jak nie dam @ to w widoku nie widzę tej zmienne?”. Obym się nie mylił :D.09 września 2007, 16:07:31
Uzytkownik
Mam nadzieje, że masz racje.
09 września 2007, 18:01:12
Uzytkownik
Przejżałem linki i wszystkie to prezentacje audiowizualne. Bede narzekał ;)
- Z prezentacji nie zrobisz C-c C-v – Prezentacji nie możesz przejrzeć by dotrzeć do interesującego Cię fragmentu – W prezentacji jest przekazywanych mniej informacji/h niż w tekście (mówie o video – na żywo to trochę co innego :) ).
09 września 2007, 20:42:23
Radarek
Ależ oczywiście, że tak. Nie po to one są, nie po to są one :). Spełniają zupełnie inną rolę. Prowadzą je przeważnie znakomite osoby, z tzw „nazwiskiem” (dhh, chad fowler, marcel molina, dave thomas itd) więc możemy mieć zaufanie do tego co tam jest. Poza tym takie prezentacje to pierwszy krok do czegoś. Np. po prezentacji o CRUD, REST (a tu pierwszy raz się z tym spotkałem) zainteresowałem się tym i zacząłem poszerzać wiedzę o tym. Wszak wcześniej być może widziałem te hasła, ale omijałem je szerokim łukiem. Prezentacja Davida nie tylko dała mi podstawową wiedzę (a była to wiedza tylko teoretyczna, bo przecież celem takiej prezentacji nie jest pokazywanie kodu) na ten temat ale od razu (co najważniejsze!) wyjaśniła powody i cele istnienia tej (REST) technologii. Dzięki tym przytoczonym prezentacjom (np z RailsConf) można zobaczyć, że społeczność Ruby/RoR jest dość spora i są w niej znakomite osobistości (np martin fowler, znakomity inżynier, projektant oprogramowania). Dzięki tym nagraniom można dowiedzieć się historii, a także przyszłości dotyczącej np. Rubiego. Dzisiaj sztuką jest połączenie wszystkich źródeł wiedzy i czerpanie z każdego z nich jak najwięcej. Bo czy z tekstu czytanego jesteśmy w stanie dowiedzieć się jak bardzo zakręcony jest jeden z najbardziej znanych członków community Rubiego, jakim jest why the lucky stiff? (http://www.scribemedia.org/2006/11/25/why-oh-why/ – polecam obejrzeć, zakręcone na maksa :D)
09 września 2007, 20:53:03
Dodaj komentarz