Názory k článku
Ruby on Rails 2.0: Evoluce, nikoliv revoluce
will_paginate
celé vláknoMezi další vyřazené věci patří hlavně různé acts_as_xxx z ActiveRecord, které se změnily na pluginy.
php frameworky
celé vláknoZend Framework, CakePHP, Symfony Project, Seagull Framework, WACT, Prado, PHP on TRAX, ZooP Framework, eZ Components, CodeIgniter - ale nejaka osobna skusenost a odporucenei by bodli. Dik a hlavne ziadne flamewar plz
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoCI vam vic rozvaze ruce, ale porad zajisti zakladni MVC separaci a par dalsich veci (na rozdil od Cake je tam dobre vyresena validace a par dalsich knihoven).
Re: php frameworky
celé vláknohttp://kohanaphp.com/
Kto ma rad vyhody PHP5 tak tu ich s radostou vyuzije. Migracia z CI na Kohanu je velmi jednoducha, kedze zakladny princip je rovnaky. Naozaj stoji za to.
A potom na stredne velke a velke projekty v PHP by som odporucal Agavi. Je to priamy nastupca frameworku Mojavi.
Re: php frameworky
celé vláknoAgavi vypada dobre, ale kdyz uz neco vetsiho, tak Stripes ;-) Ale to jaksi neni PHP...nastesti ;-)
Re: php frameworky
celé vláknoZatial ma Kohana 2500 stiahnuti, na necely mesiac co existuje stranka tak to neni zle.
Co sa tyka dynamickosti vyvoja tak sleduj TRAC TIMELINE. Kazdy den nejake zmeny, na verzii 2.1 sa pilno pracuje. CI je uz akosi 1 rok bez vyvoja. Su tu dokonca ochotni uzivatelia, ktori ti vedia odpovedat aj na uplne zaciatocnicku otazku. (dovie dokedy im to vydrzi :))
Ked uz nieco v Jave tak by som dal prednost Groovy nadstavbe, dufam, ze coskoro budu na neho nejake frameworky. Predsa Java sama o sebe je kanon. A web tolko toho nepotrebuje.
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoNikdo vas prece nenuti pouzivat cely Spring stack nebo Strutsy... JEE samo o sobe prece neni nic jineho, nez specifikace servletu, jsp a dalsich technologii, ktere muzete a nemusite pouzit. Nemusite pouzit vubec zadny framework na to, abyste mohl napsat alespon malou modularni a objektovou aplikaci. To se mi na tom libi. Navic nikde jinde jsem nenasel tak principielne genialni vec jako jsou taglibs u JSP -- do nekonecna rozsiritelny sablonovaci system... A to nemluvim treba o principu servlet filtru... "Pluggability" :) Centralne nastatovane error pages mapovane na druhy vyjimek, etc etc...
Nehlede na obrovske mnozstvi knihoven, ktere pro Javu jsou. A pro mnohe jinde alternativu nenajdete -- XSLT 2.0, XSL-FO a dalsi technologie...
Doporucuju vam se na Stripes mrknout. Mnoho javovskych frameworku me drive ci pozdeji odradilo tim, jak neco delaly zbytecne slozite, Stripes se to zatim nepodarilo :) O Stripes se uz pred rokem mluvilo jako o the new Rails.
Re: php frameworky
celé vláknoDo Javy som chcel kedysi preniknut, ovladal som (stale ovladam) PHP, ale Java mi prisla dost tazkopadna. Preto som toho nechal. Nepoznal som nejake jednoduche frameworky, okrem Spring, ale ten bol prilis velky na to, aby som sa do toho dostal jednoduchym sposobom.
Na Ruby a podobne derivaty som prechadzat nechcel, pretoze kedze som viac menej odchovany na PHP tak mi jeho syntax prisla zmatocna a nepochopitelna.
Zaujalo ma Groovy ako dynamicka odnos Javy. Kedze je to len nadstavba nad Javu, pouziva tej isty bytecode, cize s JVM nie je problem.
Zda sa, ze mate s tymto bohate skusenosti. Nemohli by ste ma odkazat na nejake kvalitne a hlavne prikladom obsiahle stranky ? Prilis obsiahla teoria na zaciatok mi nevonia a aj ked niekoho chcem nieco naucit, tak mu nebudem hovorit ake je vsetko krasne a co to dokaze, ale ukazem mu priklady a od toho sa odvijam.
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoRuby (Rails) sa mi trochu zhnusilo, uz len z toho principu, ze je okolo toho velmi velka modna vlna, co sa mi potom prieci prechadzat na to, len kvoli tomu, ze to je popularne.
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoOdradilo me to proto, ze ta popularita je z casti zpusobena Web 2.0 hype a tim, ze Railsy byly proste prvni (vicemene). Kdybych mel jistotu, ze ta popularita pochazi 100% z racionalnich pohnutek a ne ze stylu "Railsy jsou ted IN, tak se to naucim, abych byl jako taky ten webdevelopr", nevadilo by me to, jenze u Railsu tu jistotu nejak nemam...
Re: php frameworky
celé vláknoNeboli pointa - u kvalitního projektu je popularita plus, za tím si stojím. Ale kvalita je pro mě stejně vždycky prvním měřítkem a Railsy používám, protože jsou kvalitní. Ostatně začal jsem je používat v době, kdy v ČR byly neznámým pojmem.
Re: php frameworky
celé vláknoTo co si vymenoval (dovolym si tykat, ak to nevadi) su popularne produkty v odbornesej verejnosti. Uz vidim tych ludi co vykrikuju, ze Linux je najlepsi a pouzivaju nieco ine, lebo s tym nevedia (priklad hypu ukolo Ubuntu, taktiez moj pohlad).
Virtualizacia je super vec. V serverovom segmente velmi vykonna a bezpecna zbran. V deskotpe ju osobne tiez vyuzivam, ale to z toho dovodu, aby som sa mohol ak mam naladu ucit openSUSE, inak mam legalny Windows Vista.
PHP je velmi popularny, ale okolo neho necitim tu hype vlnu, kde kazdy vykrikuje, ze tento jazyk je najlepsi na web atd.
Ono je treba rozlisovat medzi popularnostou v odbornej casti a popularnostou medzi tymi, co sa drzia trendov.
Je mnoho velmi pouzitelnych projektov napisanych v PERL, Pythone, mozno aj PHP, ale zatial som nepostrehol podobne projekty v Ruby (opravte ma ak sa mylim). Ak by mal byt tak neskutocne prelomovy oproti inym jazykom tak by tu tie aplikacie boli.
Samozrejme ho neodsuduzjem, je to dalsi jazyk,ktory sa na nieco hodi a na nieco nie. Len mne zatial nevyhovuje. Urcite ma lepsi objektovy model, ktory by som uvital tiez v PHP.
Taktiez suhlasim s tym, ze Rails su velmi dobrym frameworkom, ktory dava velke moznosti v o vytvoreni pekneho aj hnusneho projektu. Vela inych frameworkov sa nim inspirovalo, co je len dobre. Lenze na moju smolu, ze som okolo Railsov, stretol ludi, ktori velmi vykrikovali, ze preco pouzivam este ten shit PHP. Vsak oni nedokazali ani dobre programovat a analyticky mysliet. Oni ocakavaju, ze ked dostanu do ruk lepsiu zbran, ze dokazu byt namakanejsi. Co si osobne myslim, ze pravda nie je.
Re: php frameworky
celé vláknoSamozřejmě jsem vyjmenoval jenom produkty mezi odbornou veřejností, protože tam se myslím pohybujeme.
Proč není v Ruby hromada použitelných produktů má vcelku jednoduchý důvod - Ruby je sice zhruba stejně staré jako Python nebo PHP, ale dlouho to byla jenom hračka pár Japonců. Teprve když vznikly Rails, tak se o tom vůbec někdo dozvěděl.
No a co se týče toho posledního, na to mám vcelku jednoduchou odpověď. Nevidím důvod, proč bych měl podobné lidi poslouchat, tak je neposlouchám. Railsy používám, protože jsem je vyzkoušel a vyhovují mi. Křiklouni se dají najít v každé skupině a důvod proč jsem se do téhle debaty zapojil byl můj zájem vědět, proč je lidi poslouchají a nebo proč řeší momentální hype :-)
Re: php frameworky
celé vláknoPopravde sa priznam, ze som chcel do Ruby trochu bastrngovat ked vyjdu Rails 2.0. No ony su to, ale citim, ze este asi nedosiel ten spravny cas. Cakal som, ze budu naviazane na Ruby 2.0, no este to nejako nedozrelo. Tak zase chvilu pockam :)
Trochu sa aj obavam inej syntaxe nez na aku som zvyknuty. Mohol by si povedat svoj postoj k tej syntaxe ? Kazdopadne ocakavam co najviac nezaujaty, len porovnanim s inymi typmi.
Re: php frameworky
celé vláknoRuby 2.0 je daleko, hlavní novinkou v něm má být nová VM. Jelikož ale v Rails, podobně jako ve všech webových frameworcích, je ve většině případů brzdou databáze, tak zrychlení jazyka velkou výhru nepřinese.
Co se týče syntaxe - nedělalo mi to žádný problém. Někdy je hloupá její přílišná volnost, která při práci více lidí na jednom projektu vyžaduje dát pravidla a dodržovat je. Například při volání funkcí můžou být závorky nebo taky nemusí, bloky se dají uzavírat pomocí end nebo celé mezi složené závorky atd. Pokud bych měl napsat věc, kterou považuju za největší opruz, tak to jsou jednoznačně chybějící operátory ++/-- :-)
Větší problém samozřejmě pro mě byl naučit se typické "jak se dělá to a to". Naštěstí IRC kanál Ruby je plný lidí, kteří zmigrovali z PHP, takže jsem jenom psal "something like xy in PHP".
Re: php frameworky
celé vláknoKazdopadne este chvilu potrva nez sa do niecoho podobneho pustim. Od Ruby 2.0 som ocakaval trochu striktnejsiu pracu s kodovanim, ale to co je v navrhu sa mi vobec nepaci.
Prave naopak. Databaza je da sa povedal najrychlejsou castou (pokial je spravne optimalizovana a dobre navrhnuty model), jedina brzda je skriptovaci jazyk a HTTP request. Pokial nie je kanal perzistivne otvoreny tak to je dost problem.
Ruby je samo o sebe strasny moloch co sa tyka interpretovania vlastneho kodu. V tomto ma velmi, ale velmi co dobiehat ine jazyky.
No zda sa, ze by sa to dalo zvladnut, lenze osobne si z financnych dovodov nemozem prechadzat na iny jazyk za behu. Mozno ho raz vyskusam alebo preskocim rovno na Groovy :)
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoa) Ve většině případů nejde o projekty, které by byly až tak heavy-loaded, ale o projekty, které musí být naprogramované nejpozději včera.
b) Serverový HW je neuvěřitelně levná záležitost. Vím, že za tenhle názor by mě spousta lidí sežrala, hlavně ti, kteří museli optimalizovat kód na rychlost/paměť, ale je to zkrátka fakt.
c) Rails mají propracované možnosti cachování až na úroveň jednotlivých fragmentů stránek.
d) Opravdu to není tak zlé :-) Na netu jsou srovnání rychlostí jazyků na algoritmech typu Hanojská věž apod. kde dostává Ruby samozřejmě hrozně na zadek, jenže to není typický příklad jeho použití. A navíc - už teď existují způsoby, jak výkonově náročný kód psát třeba v C a volat přímo z Ruby.
e) Pravděpodobně se to bude zlepšovat: http://en.wikipedia.org/wiki/YARV
Re: php frameworky
celé vláknoTo je podla mna tej problem, hodi sa tak na web kde sa vacsinou SELECTuju data z databazy. Na vacsi system by som sa to bal nasadit. Hlavne ak sa bude pracovat s velkym mnozstvom dat.
Cachovanie nie je vsemocne, samozrejme pomoze. Tuto by som sa trochu ohradil v pouzivani. Videl som vacsi projekt napisany pomocou Railsov a uz len generovanie cistej strany mu trvalo dost dlho, co potom praca s datami z formulara ?
Ono tie testy nie su az tak na zahodenie, ked si zoberies, ze pri generovani nejakej zlozitej stranky, kde sa cyklami dokaze prehadzat tisicka zaznamov je uz poznat. A ak je vykon celej aplikacie pomaly v tomto stadiu pri jednom uzivatelovi, co to urobi pri stovke uzivatelov za hodinu (priemerny portal) ? Toto nie je len o vykone serverov.
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoLen poznamka, nehovorim o cykloch, kde sa overuje WHERE, na to je SQL a ulozne procedury nie su vsemocne, niekde musis povinne prejst cele pole.
ALe to uz su debaty fakt o vykone. Osobne by som na vacsi projekt, ktory ma byt dostupny aj zvonku nenasadil railsy. Na veci typu CRM a pod sa da nad tym uvazovat.
Re: php frameworky
celé vláknoBohate zkusenosti, to bych o sobe netvrdil...jen me to posledni dobou dost chytlo :-) No nejdriv je asi dobre pochytit zakladni principy toho, jak fungujou JEE kontejnery a principy servletu a filtru. Sice starsi ale pro zacatek dobry serial je na Intervalu, psal ho dokonce vas krajan, takze pochopitelny by mel byt: http://interval.cz/clanky/java-servlets-predstavenie-technologie/
Dobre je taky se vzdelat v tom, jak aplikaci strukturovat, pokud dojde na nejakou interakci s datovym zdrojem. Tedy ze nebudete psat SQL dotazy v tele servletu :) Ale ze je fajn mit servisni vrstvu, pokud cekate, ze budete menit datove zdroje, tak mit i Data Access Object factories, ktere vam vrati dany DAO (najednou se rozhodnete, ze to nechcete mit v DB, ale v XML, tak zmenite DAO a zbytek aplikace o zmene data storage nebude vedet vubec nic) a ten se dotazuje bud primo pres JDBC do databaze, nebo pres nejakou perzistentni/ORM vrstvu. Ja osobne jsem si ted u jedne aplikace dovolil DAO nepouzit, JEE architekti by me asi radi nemeli, ale ja jsem to risknul a v servisni vrstve pracuju uz primo s kontextem Apache Cayenne, coz je dle meho nazoru skvela ORM/perzistencni knihovna na praci s databazi (dostali se do Google Summer of Code a pouziva to treba NHL.com). Take proto, ze obsahuje ve Swingu napsany GUI modeller, ve kterem si namodelujete vztahy v DB a on vam vygeneruje domenove tridy -- usetri plno prace.
Mimochodem tyhle vzory se daji stejne tak dobre pouzit v PHP, jen technologie se zmeni.
No a pak zkuste prolitnout tutorialy a priklady na Stripes (http://stripes.mc4j.org/confluence/display/stripes/Home) a nebo nejaky jiny framework podle gusta... Ale Stripes jsou podle meho v soucasne dobe to nejjednodussi a nejprehlednejsi ( a pritom mocne!), co ve svete Javy na webu existuje.
Re: php frameworky
celé vláknoAk sa mam pozerat na to zo strany cloveka a nie stroja tak je pre mna "1" a 1 na pohlad to iste. V tomto mam rad pristup PHP, ze ci je cislo ako string alebo integer, tak je to stale cislo. Kedze nemozes ocakavat co ti kto posle. Vystup z SQL, HTML a URL dostanes vzdy ako string, cize musis pretypovavat. Chapem, ze je to bezpecnejsie pretypovavat, ale "som lenivy" a ocakavam, ze nieco podobne za mna spravi framework.
Druha strana je z pohladu stroja. Pre neho je konzistiva dat velmi dolezita ako na "vykon" tak spravny chod.
Cize je to na dlhodobu debatu. Pri kompilovanych jazykoch typovu deklaraciu vitam, pri dynamickych som tomu zatial nedosiel na chut.
Len sa bojim toho, ze ak sa do toho dostanem tak zacnem rozmyslat ako stroj.
Inak aby sme sa vratili k teme, chyba mi na weboch clanky ako pracovat v inych frameworkoch ako Rails. Ci uz je to Django, Agavi alebo spomenuty Stripes ci Grails.
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoNetyka se tak ani vlastni beany, jako spis sestavovani J2EE aplikaci s podporou X frameworku, sestaveni... :)
Sice existuji silne nastroje jako Maven, ale bez predchozich znalosti.. no nevim nevim.
Jinak EJB3 jsou schopny podpory anotaci + dependency injection, ale v zakladu se nic moc nemeni.
Pokud zacnete psat serial o JSP a Servletech, tak nevim koho tim dnes oslovite. Uz jen z duvodu toho, ze bud se pouziva JSF (component) ci Struts (command) framework, ktery je dost odstinen od nejakych servletu.
Ja treba navic pouzivam jeste Seam, ktery je jeste castecne odstinen od JSF. Pisi vcelku velkou aplikaci a zatim jsem nemel potrebu jit do JSP ci Servletu, ktere jsou pro me v te chvili nizkourovnovy zpusob (asi jako JDBC vs ORM - Hibernate ci JPA).
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoRe: php frameworky
celé vláknoCo se tyka "peknych URL", tak ty je mozne pouzivat i v 1.4.x za pomoci rozsireni Clean URLs (http://remi.mongus.com/stripes-clean/), i kdyz je k tomu potreba trosku vice hackovani (musite odvodit novou tridu pro stripes:errors JSP tag, protoze ta stavajici nebere syntax clean URLs v uvahu a validacni chyby se vam tim padem nikdy nezobrazi -- ale jde jen o zmenu na par radkach). V 1.5 by vsechno tohle melo byt vyreseno interne.
Kazdopadne muzete ti pomoci UrlRewrite servlet filtrem, coz je obdoba mod_rewrite pro Apache (a umi vyuzivat i specificke vlastnosti kontejneru, ne jen interni presmerovani)Re: php frameworky
celé vláknoUrlRewriteFilter znám, ale přiznám se, že nejsem moc příznivcem podobných řešení (míněno pro pěkná URL), a to ani u servletů, ani u Apache. Připadá mi to odtržené od zbytku aplikace a hůř spravovatelné. Nepříliš elegantně se pak také řeší takové věci jako například lokalizovatelná URL.
Re: php frameworky
celé vláknoCo je podle vas spatne vyreseno na validaci v CakePHP, prosim?
Re: php frameworky
celé vláknoAsi se shodneme na tom, ze validace muze byt definovana jako proces zjisteni, zda data prichazejici od uzivatele vyhovuji nami vybranym kriterium.
Kdyz vezmete v uvahu tuhle definici, pak vas musi pristup CakePHP prastit do oci: proc nekdo vaze system validace na Model? To je ta zakladni chyba, ze validace je nejen konfiguracne vazana na Cake model (tedy to, co oni tak odvazne nazyvaji modelem, ale co je ve skutecnosti pouze servisni vrstva, na kterou bud musite zahaknout third-party ORM nebo se smirit s temi jejich PHP poli), ale i procesne -- defaultne probiha nekdy behem ukladani modelu do DB, ne? A pokud chcete v Cake validaci zaridit nejakym slusnym zpusobem, musite menit standardni chovani.
Zakladem me argumentace je totiz platne tvrzeni, ze k validaci muze dojit aniz by se nasledne cokoliv delo nad datovou zakladnou/Modelem/domenovou vrstvou (ci jak to nazveme) a take ze k validaci muze dochazet nad daty, ktera ani nikdy do databaze nemaji prijit -- a to uz stavi system validace v Cake do problemu.
Proto povazuju system validace v CI za mnohem lepsi, protoze je ABSOLUTNE nezavisly na tom, jake dalsi vrstvy jsou pod controllerem (a kolik jich je)
Mnou zminovany javovsky Stripes taktez -- validaci provadi pri databindingu na ActionBeanu. Absolutne si nedokazu predstavit, ze by validace formularovych dat mela probihat na servisni vrstve nebo snad DAO ci domenove.
S vasim oblibenym "convention over configuration" zde nepochodite, tohle je proste architektonicka chyba jak prase. Naopak, pochodim s tim ja proti CakePHP, protoze CI na rozdil od nej ma mnohem vice preddefinovanych validacnich kriterii, ktere snizuji potrebu "configuration" (4 vs. 11 + 5 pomocnych fci)
Re: php frameworky
celé vláknoPodle meho nazoru je naprosto v poradku, ma-li byt vrstva zodpovedna za nakladani s daty zaroven zodpovedna za jejich validaci. K vasemu 'platnemu tvrzeni ktere je zakladem vasi argumentace' - skoro to vypada jako by jste nevedel, ze validaci dat muzete v CakePHP provest i bez pokusu o jejich ulozeni.
Re: php frameworky
celé vláknoPresouvate teziste nekam jinam. Nehodlam s vami rozebirat rozdily mezi pojetim MVC v ruznych frameworcichNerozebiram tu MVC, validace dat nema s MVC nic spolecneho -- ani to kdy a kde se deje.
Podle meho nazoru je naprosto v poradku, ma-li byt vrstva zodpovedna za nakladani s daty zaroven zodpovedna za jejich validaci.Ale proc? Predstavte si, ze mate prichozi data z formulare, ktera potrebujete zvalidovat a potom nasypat napr. do generatoru faktury nebo je odeslat mailem a ta data ani neodpovidaji strukture zadneho z vasich modelu. Tak kam validaci date? V CI proste natahnu tridu validatoru, priradim ji validacni pravidla napsana pro tuto prilezitost a validator spustim. Jak napisete v Cake modelu validacni pravidlo pro pole, ktere v tom modelu neexistuje?..a i kdyby to slo, nebije vas to do oci, to takhle delat?
skoro to vypada jako by jste nevedel, ze validaci dat muzete v CakePHP provest i bez pokusu o jejich ulozeni.To, o cem tu celou dobu pisu, neni ZDA to jde udelat, ale JAK a jestli je ten nastroj dobre architektonicky uzpusobeny k tomu, aby to tak slo udelat.
To se rovnou muzeme shodnout na tom, ze udelat lze vsechno vsude a diskusi uzavrit. Ale ja tu mluvim o tom, ze tvurci Cake umistili mechanismus validace tak, ze vas v nezanedbatelnem procentu pripadu donut drbat se levou rukou za pravym uchem.....
Re: php frameworky
celé vláknocim viac stym robim, tym viac zistujem, ze autor myslel skoro na vsetko ;)
a trochu offtopic, ale odporucam aj http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html (v skrakte, vela veci nieje obmedzenych frameworkom, ale programatorm, tym ze nema dost skusenosti...)
Re: php frameworky
celé vláknoRe: php frameworky
celé vláknophp frameworky
celé vláknoKohana, CodeIgniter, Agavi, Akelos, Qcodo.
Informovat o konferenci a zeptat se na možnost předvedení můžete na mém mailu: stv(zavinac)seznam.cz
Souhrnné info o konferenci:
http://blog.php-group.cz/2007/11/16/registrace-na-konferenci-php-zima-2008/

