Hlavní navigace

Názory k článku
Kniha Začínáme programovat v Ruby on Rails

ultra force 3000
ultra force 3000 (neregistrovaný)
10. 9. 2007 0:22 Nový

toz napis kera je lepsi

celé vlákno
nebo napis ty, vypada to, ze tomu rozumis
Láďa aura:100

Re: toz napis kera je lepsi

celé vlákno
Nejlepší je Agile Web Development with Rails od Pragmatic Programmers. V PDF se dá koupit za cca 25 USD.
polymorpheus
polymorpheus (neregistrovaný)
10. 9. 2007 15:11 Nový

Re: toz napis kera je lepsi

celé vlákno
- urcite Agile Web Development with Rails, ta pak urcite bude slouzit i jako referencni prirucka (jsou v ni i veci, ktere nikde jinde dokumentovane nejsou)

- ovsem pro zacatecniky je docela dobra i RailsSpace: Building a Social Networking Website with Ruby on Rails (prezvykava veci, jejichz vysvetlovanim se Dave Thomas v Agile neobtezuje a dobre dela)

- no a pak i Rails Cookbook, Rails Recipes, a zenedlouho ma vyjit nejaka knizka specielne o Active Record, viz apress.com. Osobne hodne ocekavam od planovane The Rails Way

Ruby bych se ale nejdriv urcite naucil zvlast, protoze jeho znalost bude dulezita pozdeji pri psani a uprave vlastnich pluginu (Learning Ruby, Ruby Cookbook, The Ruby Way, Programming Ruby).

toz tak
jezevec
jezevec (neregistrovaný)
10. 9. 2007 7:27 Nový

řadič

celé vlákno
... Že je controller přeložen jako „řadič“ je jen trochu neobvyklé ...

Co je NATOm neobvyklého.
Spíše mám pocit, že překlad "řadič" by mohl být chápán jako "referenční", či jak to říci...
A subjektivně se mi "řadič" jeví jako velmi povedený překlad.

Ve zbytku souhlasím s autorem.

J.
jos
jos (neregistrovaný)
10. 9. 2007 8:20 Nový

Re: řadič

celé vlákno
slovo controller by se mělo přeložit jako controller, v horším případě kontroler.
David Majda

Re: řadič

celé vlákno
Překlad "řadič" mi přijde trochu násilný, dal bych asi přednost jen počeštěnému anglickému slovu ("kontrolér" či "kontroler"). Ale tohle je subjektivní záležitost.
prudic
prudic (neregistrovaný)
11. 9. 2007 0:27 Nový

Re: řadič

celé vlákno
pardon chlapci, ale radic je pouzivan od doby co se zajimam o pocitace a to je vice nez 20 let. Co je na tom spatneho?
pavel
pavel (neregistrovaný)
12. 9. 2007 1:27 Nový

Re: řadič

celé vlákno
Presne tak, nechapu co se komu nelibi na prekladu radic. Je to pouzivany termin. Mozna nekdo nechape akorat jeho vyznam a predstavuje si pod nim jen "hardware" :-)
Let_Me_Be
Let_Me_Be (neregistrovaný)
10. 9. 2007 7:37 Nový

Souhlas

celé vlákno
Jj, je to hrozna kniha. Cesky preklad je priserny hlavne s ohledem na neuveritelny pocet drobnych chyb (ruzny preklad zdrojovy kod-text a podobne).
Hraesvelgr Odin
Hraesvelgr Odin (neregistrovaný)
11. 9. 2007 8:40 Nový

Re: Souhlas

celé vlákno
a navic toho chlapa nemeli davat na vrchni stranu, je vylozene odpornej, jeste jak se tvari a sedi, a co to ma za kosili? To vypada jako by ho sundali z obchodu z regalu pod napisem "Hnusny smrdutec" :-)
mys elf
mys elf (neregistrovaný)
11. 9. 2007 20:25 Nový

Re: Souhlas

celé vlákno
Verze pro bukvice vyjde v příštím kvartálu. ;-)
Lukas
Lukas (neregistrovaný)
10. 9. 2007 8:21 Nový

starsi zpusoby

Souhlasím, kniha je fakt jen pro lehke seznameni a to jeste se spoustou chyb.
Navic mi v knize chybí popis migraci, ktere hodne usnadnuji praci pri manipulaci s tabulky databaze. A jelikož je to myslim kniha z roku 2005, tak je tam spousta veci, ktere se daji delat dnes jednoduseji (napr form_for pri naplneni a manipulaci dat s ActiveRecord (databazi).

Proto velmi doporucuji knihu "Agile Web Develolment with Rais" je psana sice anglicky, ale strasne hodne veci se v ni naucite
karotka
karotka (neregistrovaný)
10. 9. 2007 9:30 Nový

Preklad

No tak to je nestesti. Prekladatele by si meli uvedomit, ze pokud zacnou pouzivat sve vlastni terminy, povede to k tomu, ze spousta zacinajicich programatoru je bude pouzivat a pak budou vypadat slusne receno hloupe. Ale to je prece bolest cele rady ceskych prekladu podobnych publikaci
Pavel
Pavel (neregistrovaný)
10. 9. 2007 9:52 Nový

Ruby nebo Python

celé vlákno
Uvedomuju si, ze zacinam brutalni flame, ale nemuzu jinak. Jaky jazyk pouzit pro stredne velke webove projekty? Chapu, ze pro male je vhodnou volbou PHP, pro velke zase JSP, porad tady ale zbyva prostor pro stredni, kde by mel vyuziti dynamicky typovany interpretovany jazyk, pro ktery existuje kvalitni framework, s ponekud vetsi cistotou nez PHP. Takze Ruby nebo Python?
Pavel Sýkora aura:100

Re: Ruby nebo Python

celé vlákno
Na to se IMHO nedá jednoznačně odpovědět. Volba jazyka a frameworku není jen otázka "absolutní" kvality (i když o tom slově "absolutní" by se dalo docela diskutovat). Je potřeba zohlednit také to, s čím mají architekti a vývojaři zkušenosti (nebo jak rychle je dokáží získat), co nabízí poskytovatel (má-li to být provozováno na veřejném hostingu), co je schopen spravovat případný zákazník, a další případné aspekty.

Každopádně RaR jako takový je IMHO jeden z těch frameworků, který je jako stvořený pro střední projekty. Asi bych o něm uvažoval i o kandidátu na větší projekty, ale tam bych ale důkladně vážil rizika (možnosti rozdělení zátěže na servery, dlouhodobá stabilita při vyšším výkonu apod.). Na malinké projekty je RaR (IMHO) poněkud předimenzovaný - tedy pro začátečníka - tam bych povařoval za vhodnější např. framework Nitro/Og. Kdo má ale s RaR už nějaké zkušenosti, tak jej, myslím, bez zaváhaní použije i na malý projekt.
Jan Minárik
10. 9. 2007 14:43 Nový

Re: Ruby nebo Python

celé vlákno
Dovolím si oponovat hned vašemu výchozímu prohlášení - rozhodně mi nepřipadá, že PHP je vhodnou volbou pro malé projekty, ani že JSP pro velké.

Vzhledem ke "convention over configuration" koncepci jsou naopak Rails velice výhodné pro malé projekty. Pod tímto termínem se skrývá vlastnost, kdy každý prvek či modul má nějaké výchozí chování. Zjednodušeně řečeno: pokud explicitně nenapíšu ve volání žádné parametry, přesto Rails budou fungovat v jakémsi "default" režimu. Pokud chci, aby se daný prvek choval jinak, zavolám ho s parametry.

V Rails jde tento přístup až do extrému, kdy jsou přímo některé funkce implicitně i volány, ačkoliv programátor ono volání nenapsal. Tento přístup v důsledku umožňuje celou aplikaci naprogramovat v několika řádcích. Rails za programátora v tomto případě řeší téměř vše důležité a pokud "malým projektem" nemyslíte Hello world aplikaci, rozhodně vám v Rails půjde rychleji od ruky než v PHP.

Ve větších projektech, kdy je programátorem požadováno zcela specifické chování a obvykle se stejně programují vlastní knihovny a rozhraní, už tato vlastnost tolik nepomůže. Jisté ale je, že vývoj v posledních několika letech ukázal, že pokud web, tak určitě ne Java. Pro efektivní vývoj velkých projektů je totiž nutné, aby jazyk umožňoval dynamické konstrukce, např. generování tříd na základě externích dat - např. struktury databáze, vizuálního návrháře, UML diagramu, apod (zjednodušeně řečeno, odborníci snad prominou :).

V Javě se této vlastnosti dosahuje čtením velkého množství XML konfiguračních souborů a dynamického vytváření instancí na základě přečtených názvů tříd. Tento přístup ale zcela popírá filosofii Javy jako striktně staticky typového jazyka a vytváří jakýsi hybrid, kdy v části aplikace se můžete spolehnout na compile-time kontrolu kódu a v části se jazyk chová jako Ruby či Python, ovšem s tím velkým rozdílem, že kód je zapsán v XML. Tedy programátor kód nemůže ani rozumně číst, natož ladit, nefunguje správně kontrola typů, volání, refaktoring, code-completion, apod.

Pro velké projekty bych proto doporučil nějaký ověřený, objektově orientovaný dynamický jazyk s co nejúspornější syntaxí. Tomuto popisu odpovídá jak Ruby, tak Python. Rozdíly mezi těmito jazyky jsou dost přeceňované a jsou spíš o osobních preferencích a vkusu než o nějakém jednoznačném soudu, že jeden je lepší než druhý. Naše firma si vybrala jako vývojový nástroj Ruby on Rails zejména proto, že komunita vývojářů kolem Rails je řádově větší než kolem jakéhokoliv frameworku v Pythonu, což je samozřejmě velká výhoda - ať už v oblasti dostupných modulů, programátorů, podpory anebo školení.
polymorpheus
polymorpheus (neregistrovaný)
10. 9. 2007 15:24 Nový

Re: Ruby nebo Python

celé vlákno
jenom jedna drobna poznamka:

Na Rails me fascinuje, ze mi pripominaji... SQL! Tzn. tim, ze jsou na mnoha mistech deklarativni (asociace, validatory) - rikam co chci, aby Rails udelaly, a ony to fakt udelaji:-) a nepisu, co a jak se ma dit. A kdyz chci nejakou novou funkcnost, nebo upravit stavajici, kouknu do kodu (ktery se cte velice snadno) a napisu/upravim si plugin

Ovsem rozdily mezi Python a Ruby nejsou IMHO nezanedbatelne - Ruby velmi stavi na code blocks (aka closures), coz je proste genialni vec, umoznujici na casto i jednom radku ("one-liner") __srozumitelne__ vyjadrit, co bych v jinem jazyce musel rozepisovat na mnoha radcich, a to je jeho velka prednost
Jan Minárik
10. 9. 2007 16:07 Nový

Re: Ruby nebo Python

celé vlákno
Souhlasím, mně osobně přijde všechno v Ruby jaksi elegantní a výrazově silné a úsporné. Nicméně objektivně trvám na tom, že rozdíly nejsou tak velké - např. closures v Pythonu jsou, buď jako předávání reference na funkci, definovanou uvnitř metody, nebo jako lambda výraz. Nebo například mixiny, které jsou v Ruby, mi sice sedí líp, ale poměrně hezky implementovaná vícenásobná dědičnost v Pythonu je v podstatě stejně silná.
polymorpheus
polymorpheus (neregistrovaný)
10. 9. 2007 16:22 Nový

Re: Ruby nebo Python

celé vlákno
asi je to opravdu nakonec o osobnich preferencich, takze jako hlavni "prodejni argument" pro RoR bych videl prave to, ze Rails jsou jedny (pythonich frameworku spousty) -> vetsi komunita, vetsi 'soustredenost' na jeden projekt -> Rails jsou dnes z frameworku vystavenych na dynamickych jazycich urcite nejdal (obcas kouknu na Django a prijde mi, ze trochu skomira)
erg
erg (neregistrovaný)
10. 9. 2007 16:28 Nový

Re: Ruby nebo Python

celé vlákno
No, myslim, ze jste co se tyka Javy docela zaspal dobu. Vetsim mnozstvim konfiguraci v XML JAva trpela nekdy v dobe Java EE 1.4, ktera se datuje nekam do roku 2003 :-)

Nic z toho, co pisete, uz davno neni pravda (a ona to nebyla pravda uplne asi ani predtim, kod se v Jave opravdu v XML nikdy nepsal).

Napr. co se tyka tech externich dat, JPA tohle resi, ostatni veci jsou vygenerovani kodu z nejake staticke predlohy - z cehoz vznikne normalni Javovska trida (a opravdu bych zde nechtel vest debatu o tom, zda je lepsi dynamicke typovani nebo staticke - berte to jako jiny pristup, s jinymi vyhodami).


A mimochodem, Java EE na webu taky neni zdaleka jedinym Java resenim pro web. Viz tuny dalsich frameworku, ktere mohou byt pro urcite aplikace efektivnejsi a jednodussi (Seam, Spring, ...).
Jan Minárik
10. 9. 2007 18:01 Nový

Re: Ruby nebo Python

celé vlákno
Webové aplikace jsem v Javě programoval před třemi lety, to by tak souhlasilo :)

Mám zkušenosti např. s Hibernate, kde se ona "dynamičnost" řeší generováním kódu, jak popisujete. Vzorem pro generátory byly ovšem opět XML soubory, kterých nebylo málo, ale strašně moc. Na vaše doporučení jsem si prohlédl krátký tutorial k JPA a nemám pocit, že by to bylo jinak: http://www.jpox.org/docs/1_2/tutorials/jpa_tutorial.html - XML kódu je tam víc než Javy a nejsou to jen konfigurační soubory, je v nich logika.

Nicméně pokud byste mě nasměroval na nějaký zajímavý webový framework v Javě, který ponechává výhodu statického typování, nepotřebuje logiku vepsanou do XML souborů a psaní v něm je efektivní a přehledné, budu velice rád. Dodnes jsem se domníval, že nic takového neexistuje.
erg
erg (neregistrovaný)
10. 9. 2007 18:28 Nový

Re: Ruby nebo Python

celé vlákno
No to by souhlasilo, pred Java EE 1.5 to byl des. Moznosti sice hodne, umelo to hdone, ale prace a ucebni krivka byla dost neefektivni a celkem vzato to byl dost opruz v tom neco programovat.

Kazdopadne co se tyka JPA, tak dnes se na to daji pouzivat pouze anotace a jediny XML soubor je persistence.xml, kde se nakonfigurje, jake data source se ma pouzit (resp. definuji se tam tzv. persistence provideri)

Kouknete treba na http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/jsf-jpa-tutorial.html nebo rovnou na Java EE 5 tutorial http://java.sun.com/javaee/5/docs/tutorial/doc/

A tohle vse je soucasti standardni Javy EE 5, neni na to potreba dalsi framework.

Ja osobne pri vyvoji nejprve navrhnu databazi v nejakem ER modelovacim nastroji, z databaze necham IDE (Netbeans) vygenerovat tridy, s kterymi se pak muze uz jednoduse pracovat. Vyhodou je, ze to negeneruje zadne konfiguracni soubory, je to pouze uplne normalni trida co ma jenom nekolik anotaci.
Tomas
Tomas (neregistrovaný)
10. 9. 2007 23:23 Nový

Re: Ruby nebo Python

celé vlákno

Frameworkem v Javě, který nemá logiku zapsanou v XML je třeba Tapestry. Ze začátku je to náročné čtení, protože architektura je velmi rozdílná oproti Struts a spol. Screen casty jsou ke stažení zde.

Koncepčně Tapestry hodnotím jako veliký krok. Stejně veliký jak od PHP/HTML mixu k MVC design přístupu.

Na Tapestry je postaven i framework Trails, který je vytvořen v duchu Ruby on Rails nebo Naked Objects.

martin
martin (neregistrovaný)
10. 9. 2007 17:16 Nový

Re: Ruby nebo Python

celé vlákno
Devet z deseti programatoru voli Ruby.

Tak neco konstruktivniho: Zacinal jsem na Pythonu. Udelal jsem v tom par projektu predevsim na tema sitoveho managementu a monitoringu. Nemohu si pomoci, ale navrh jazyka je fakticky odflaknuty. Prijde mi to jen o malo lepsi nez "objekty" v Perlu. To uz je to jednodussi napsat v Jave.

Nastesti si toto core team uvedomuje, takze novy Python nebude stary Python, ale dost vlastnosti si vezme z Ruby. Jestli je to dobra vyzitka Pythonu, necht kazdy posoudi sam.
mys elf
mys elf (neregistrovaný)
10. 9. 2007 23:15 Nový

Ale no tak

celé vlákno
Změny v Pythonu 3000 nemají skoro nic společného s Ruby.

1. Unicode apod. - to není silná stránka Ruby, Python se inspiroval u Javy.

2. I/O knihovna - kosmetické změny, nekomentuju.

3. Formátování řetězce - ano, tady se Python u Ruby inspiroval, ale jednak je tahle změna kontroverzní (všeobecně se Python vydává vstříc Javě a tohle je spíš PHP přístup) a jednak to v zásadě málo souvisí s jazykem. Ano, operátor % pro formátování končí, tak teda jo. Podle mě ale nebyl zas tak špatný. Ruby má zase perlovské regulární výrazy, což je podle mě podobná zahozeníhodná část syntaxe.

4. Dekorátory tříd - rozšiřuje koncept Pythonu z metod na třídy. Z Ruby to nevychází.

5. Anotace - v zásadě obšlehnutá deklarace typů z Common Lispu.

6. Metatřídy Ruby pokud vím nemá.

7. Slovník atributů tříd - totálně nonRuby přístup.

8. Dynamická specifikace nadtříd - Ruby pokud vím nemá (a násobnou dědičnost teprve ne).

9. __new__ apod. Ruby taky nemá. Nebo jo?

10. __instancecheck__ a __subclasscheck__ jsou podle mě spíš pitomosti a Ruby to nemá.

11. ABC - nevím,jestli to je koncept Ruby, ale mně to přijde jako vcelku zbytečnost.

12. Pořádek ve výjimkách je chvályhodný, ale žádná revoluce se nekoná.

13. Operátory / a // - tohle Ruby snad taky nemá.

14. Iterátory namísto seznamů u slovníků apod. - to je asi vcelku logické zjednodušení, ale je to dvojsečná zbraň. No ale budiž. Když líně, tak líně.

15. Pořádek v porovnávacích operátorech - ano, tady nebyla pythonovská implementace šťastná. Ale že by byla inspirace nějakým super řešením u Ruby? Myslím, že ne.

16. Příkaz nonlocal - kontroverzní, nelíbí se mi.

17. Zjednodušené super()? Super, ale taky asi nejde o žádný posun k Ruby.

18. Syntaktický cukr pro množiny? Nepodstatné.

19. Vyhození klasických tříd - ano, Python se vyvíjel, klasické třídy jsou dědictvím dětských let.

20. Nepodstatné věci, snad kromě unicode identifikátorů, což je podle mě úlitba Javě.

Můj závěr? Python se ve skutečnosti mění relativně málo a těžko se dá obecně říct, že směrem k Ruby. Myslím, že i Python 2.x je velmi dobrý jazyk a obecně mi přijde podstatně čitelnější a pochopitelnější pro neprogramátory a programátory zvyklé na většinu ostatních prog. jazyků (zejména kromě Smalltalku, samozřejmě). Kolem Pythonu ale existuje spousta zajímavých projektů (Psyco, PyPy...) a z pragmatického hlediska je to ve spoustě případů dobrá volba - podle mě.

Rád se nechám ovšem poučit, pokud se v některém z těch 20 bodů mýlím.
april-child
april-child (neregistrovaný)
10. 9. 2007 23:57 Nový

Re: Ale no tak

celé vlákno
ad 6) - tady bych asi hledal inspiraci. metaclass programovani je v Ruby na slusne urovni. Python to nicmene uz leta umoznuje taky.

ad dalsi body - je moc pozde vecer.. :)
mys elf
mys elf (neregistrovaný)
11. 9. 2007 20:32 Nový

Re: Ale no tak

celé vlákno
S metaprogramováním nepřišel Python ani Ruby (a vlastně ani s většinou jiných vlastností), ty inspirace jdou všemi směry a je to dobře. Nicméně debata je o novinkách v Pythonu 3000 a bod 6) podle mě nepřináší žádný příklon k Ruby. Nebo jo?
Zasílat nově přidané příspěvky e-mailem