Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Java na webovém serveru: první web

Honza Marek
Honza Marek (neregistrovaný) ---.klfree.cz
15. 1. 2010 0:44 Nový

Re: Java na webovém serveru: první web

celé vlákno

Díky za článek. Jen co se týče formy, příště bych omezil použití tagů abbr s vyskakovacím title. Blbě se to čte.

Miki
Miki (neregistrovaný) ---.fmm.cz
18. 1. 2010 19:35 Nový

Re: Java na webovém serveru: první web

celé vlákno

Naopak, mě to text oživuje…

Vít Šesták aura:72
18. 1. 2010 19:37 Nový

Re: Java na webovém serveru: první web

celé vlákno

Jo, pokud máš prohlížeč, který to podporuje. Já bych na to pro Operu mini potřeboval nějaký šílený bookmarklet.

avatar
avatar (neregistrovaný) ---.antik.sk
24. 1. 2010 10:45 Nový

Re: Java na webovém serveru: první web

celé vlákno

Yet another useful article …

b*d
b*d (neregistrovaný) ---.net.upc.cz
15. 1. 2010 9:44 Nový

JavaEE vs. Plone/Zope/Python

celé vlákno

Po předcházejícím článku jsem se pustil po prozkoumávání ostatních technologií. Našel jsem video, kde člověk píše všechny xml atp. pro JavuEE v emacsu (a že píše rychle). V Netbeans nebo Eclipse takové problémy až tak viditelné nejsou. A pochvaloval si Plone/Zope.
Je to už starší video (odkaz na stránkách plone.org). Po prozkoumání:
mají ear/war říkají tomu egg. Egg se může taky psát ručně, ale většinou se generuje. Mají viewlety, templaty, etc. kromě toho že obohacují tagy vlastními attributy proti samostatným v jsp je to hodně podobné.
Pro mně z toho vyplynulo, že Plone/Zope se přibližuje Javě a Java Zope.
Rails, TurboGrears, atp. bylo jaksi mezi těmito světy.
Asi není náhodou, že Python a Java jsou asi nejoblíbenější u Googlu.

Python má výhodu, že netáhne s sebou břemeno C/C++. Ale jako programátor v C++ musím příci, že mnoho věcí to se považuje za hype se ve větších týmech zakáže. Ono je totiž sranda napsat jednu web-aplikaci s pár stránka v málo lidech. Pokud to má aplikace mít life-cycle delší (i několik let) tak ukecanost a restrikce Javy se poměrně hodí.

I když „properties“ z Pythonu by byly skvělé. Už jenom proto, že psát triviální inline getry/setry je opravdu vopruz a alespoň má člověk možnost dostat se ke getru při dědění, pokud ho autor „zapoměl“. Bezpečnost tu nemá smysl, může vracet kopii (data jsou má).

Peter Rybar aura:13
15. 1. 2010 10:38 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

V Jave mi tiez chyba referencia na metodu a analog dekoratoru v pythone.

Vyborne zhrnutie tvorby web aplikacii je
http://oodt.jpl.nasa.gov/…-web-app.mov

b*d
b*d (neregistrovaný) ---.net.upc.cz
15. 1. 2010 11:14 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

No pravě že „už“ moc ne. Java a frameworky už jsou na úrovni Python a programovaní je už skoro myší.

To porovnání by lepší pokud by tam dal Zope vs Java EE app server.

Je jasné, že Emacs není IDE na úrovni Eclipse. Já jsem nenapsal SQL ani xml (web.xml atp.) už dlouhou dobu. Všechno zařídí IDE. Další věc je, že jsem ho neviděl udělat ani jeden test!

b*d
b*d (neregistrovaný) ---.net.upc.cz
15. 1. 2010 11:42 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Reference se nepoužívají. Já jsem vůbec rád, že tyhle věci v Javě nejsou. Problém je s lidmi bez praxe. Asi si dokážete živě představit, jak by jejich commit vypadal.

Dekorátor – to samozřejmě je (třeba ve Springu se používá velmi hodně – deklarativní bezpečnost, transakce atd.). Např. vyhodím-li RuntimeException provede se rollback i na session.

Ale na druhou stranu, přemýšlím že pro start-up low/medium scale projekty začnu využívat více Plone. Teď jenom přijít na to, jak ho skinovat.

Peter Rybar aura:13
15. 1. 2010 12:07 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Zasa sa asi nerozumieme :)

> Reference se nepoužívají. Já jsem vůbec rád, že tyhle věci v Javě nejsou. Problém je s lidmi bez praxe. Asi si dokážete živě představit, jak by jejich commit vypadal.

Myslel som to, comu sa v c# hovori delegat.

> Dekorátor – to samozřejmě je (třeba ve Springu se používá velmi hodně – deklarativní bezpečnost, transakce atd.). Např. vyhodím-li RuntimeException provede se rollback i na session.

Java ako jazyk NEMA obdobu dekoratora v Pythone, nieco ako wrapper nad metodou.

ahl
ahl (neregistrovaný) 86.61.140.---
15. 1. 2010 12:36 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Jenomže v javě nic takového jako samostatná metoda neexistuje. Reference na metodu je tedy nesmysl, protože když chci volat metodu a nevím jakému objektu/třídě patří, tak se může dít skoro cokoliv(metoda může měnit atributy toho objektu/třídy). Reference na metodu se v javě implementuje jako rozhraní s jednou definovanou funkcí. Z toho důvodu se mi nelíbí ani ty delegáty v c#.

Peter Rybar aura:13
15. 1. 2010 13:37 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

> Jenomže v javě nic takového jako samostatná metoda neexistuje.

Nevidim dovod na to aby som nemohol vediet referencovat metodu danej triedy (a zvlast staticku).

Velmi sa mi paci signal-slot v jazykoch QT, gtkmm, Python, Vala, …
Ale v Jave je to skrabanie sa cez hlavu (vela kodu pre malickost). Je to skratka Java. :(

alef0
alef0 (neregistrovaný) ---.78-99-7.t-com.sk
16. 1. 2010 10:21 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Delegáty nie sú, hej, rieši sa to cez implementáciu interfejsu, prípadne anonymné vnútorné triedy. Potom to v takom v Swingu to vyzerá dosť masakrálne.

Počkajte na Javu 7, budú closures, už je to schválené.

jondy
jondy (neregistrovaný) 217.77.171.---
15. 1. 2010 13:40 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Dekoratory v Jave samozrejme existuji … rika se tomu AOP :-). Delaji se s tim presne ty same veci

Peter Rybar aura:13
15. 1. 2010 14:34 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Skutocne viete co je dekorator v jazyku Python a ste si isty, ze to iste je v jazyku Java? :)

AOP je programovacia paradigma a Python dekorator je prvok jazyka.
Neplette si prosim pomarance s hruskami.

Priklad pre lepsie pochopenie:
To ze mozem jazdit na bicykli aj na koni este neznamena, ze kon je bicykel a naopak. :))
Jazdit na koni je nieco ine ako jazdit na bicykli, verte mi. :)

\
\ (neregistrovaný) ---.138.broadband4.iol.cz
15. 1. 2010 15:03 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Ale ucel se dostat z bodu A do bodu B bude stale stejny…

Peter Rybar aura:13
15. 1. 2010 15:11 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Ale mne ide o ten vyrazovy prostriedok, nie len o ucel. :)

Nie je mi totiz jedno ako sa dostanem z Bratislavy do Prahy (alebo naopak). Vlakom ci na bicykli? To mi skutocne jedno nie je. :(

*) Naucme sa vyjadrovat presne. Naucme sa chapat vety, tak ako ich autor napisal. Nie iba kazde druhe solovo.

xtr
xtr (neregistrovaný) ---.net.upc.cz
31. 1. 2010 1:43 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Ja teda nevim, dekorator – aspon pokud myslite ten navrhovy vzor – se da realizovat v jave a klidne i v javascriptu, nebo ne?

b*d
b*d (neregistrovaný) ---.net.upc.cz
15. 1. 2010 16:43 Nový

Re: JavaEE vs. Plone/Zope/Python

celé vlákno

Tak po dvou dnech s Plone/Zope/Python končím. Ony legendární vlastnosti, s tím jak se požadavky posunují od konkrétního k obecnému, zanikli. Je to vlastně už jako v Javě. Akorát jde o ten směr vývoje: Konkrétní->Obecné Python
Obecné Java

Dokumentace je k =censored= Next skáče na další kapitolu a né sekci, takže se to ani nedá číst.

Celkově mám dojem, že té komunitě chybí směr a cíl. Na jedné straně je snaha nebýt bloated JavaEE, na druhé nabídnout dostatečnou obecnost. Jenže tam naráží Konvence oproti Konfiguraci.

Ve zmíněném videu je totož vynecháno, že část IDE je vlastně zahrnuta v app serveru / Plone. Takže se něco dělá tady, něco tam…

Btw. v soutěži o jednoduchý publikační systém vyhrál WordPress a co se týče dalšího mid sized, tak se bude psát v Jetty₊Hiber­nate+Spring(Web­flow, JPA, IceFaces). Je to rychlejší v tom, že se to dá na 90% naklikat v dobrém IDE (MyEclipseIDE v kombinaci s MDA toolem).

dm
dm (neregistrovaný) ---.tcl-digitrade.com
15. 1. 2010 10:29 Nový

Webové programování v Javě trochu jinak ...

celé vlákno

Zájemcům o webové programování v Javě doporučuji prohlédnout projekt
http://www.playframework.org . Je to odlišný přístup, než jsou klasické ‚servlet based‘ javovské frameworky, hodně inspirováno systémy je např. Django . A je vidět, že to vyvíjí někdo, kdo to taky sám používá :-)

David

Vít Šesták aura:72
15. 1. 2010 20:03 Nový

Re: Webové programování v Javě trochu jinak ...

celé vlákno

Hmm, pěkný, ale Groovy jako jazyk pro šablony asi bude znamenat nemalý slowdown, možná třeba Scala by byla vhodnější. Platforma Java prostě nebyla určena pro dynamicky typované jazyky. A hlavně, pro komfort programátora je důležité, že tím ztrácí statickou typovou kontrolu.

xtr
xtr (neregistrovaný) ---.net.upc.cz
31. 1. 2010 1:48 Nový

Re: Webové programování v Javě trochu jinak ...

celé vlákno

Play framework je jiste krok zajimavym smerem, treba pro mensi dynamicke weby. Ad rychlost groovy v sablonach – urcite i v Play existuje moznost zkompilovanou sablonu dat do kese ; jinak, nemylim-li se, Django dnes uz spustite pod Jython 2.5 , chcete-li ho provozovat nad JVM.

Vít Šesták aura:72
31. 1. 2010 13:45 Nový

Re: Webové programování v Javě trochu jinak ...

celé vlákno

No dokonce bych se i divil, kdyby ten bytecode nebyl cacheován. Pro dobrý výkon je důležité nejen cacheovat bytecode, ale i v paměti načtené třídy (verifikace bytecode, optimalizace jako třeba inlineování virtuálních metod, JIT cache apod.).

Jenže u dynamicky typovaného jazyka se řádově hůře optimalizuje. Virtuální metody ve staticky typovaných jazycích bývají v Javě volány přes invokevirtual. Jak jsou volány metody u dynamicky typovaných jazyků? Nevím, ale nabízí se mi tu dvě možnosti:
* Reflection, IMHO celkem slowdown
* invokedynamic (mám pocit, že přibude v Javě 7)
V obou případech jsou optimalizace zřejmě mnohem složitější.
Navíc se podívej na různé benchmarky: http://www.google.cz/search?q=java+groovy+preformance&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:cs:official&client=firefox-a

Michal Augustýn
15. 1. 2010 10:43 Nový

velmi pěkný článek

celé vlákno

Super článek!

Docela bych uvítal nějaký slovníček pro ASP.NET vývojáře (jako jsem já), protože mám pocit, že tu existuje mapování téměř 1:1. Rovnou můžu začít (v Javě jsem web nikdy nedělal, takže to je jen nástřel a klidně mě opravte):
  • Servlet = HTTP Handler
  • JSP = ASPX
  • Filtr = HTTP Module
  • JavaBean = POCO splňující určité konvence, instance obhospodařované nějakým kontejnerem
  • <jsp:scriptlet> == <script runat=„server“>
  • web.xml = web.config
jondy
jondy (neregistrovaný) 217.77.171.---
15. 1. 2010 11:06 Nový

Re: velmi pěkný článek

celé vlákno
Trochu vysvětlení:
  • Servlet = HTTPHandler ± OK
  • JSP = ASPX už pokulhává. ASP.NET je hlavně komponentová technologie. JSP je hlavně šablonovací technologie. JSP vám nedefinuje ani nemapuje žádné komponentní třídy na pozadí. Spíš JSP = staré ASP :-)
  • Filtr = HTTP Module ± OK
  • JavaBean (označované také jako POJO) = POCO sedí
  • <jsp:scriptlet> == <script runat=„server“> ± OK:
    V ASP.NETu uvnitř scripletu definujete tělo třídy která vzniká překladem ASPX souboru (tedy metody a property třídy výsledné stránky). Kdy se co volá je pak dáno lifecyklem (děsný slovo) třídy Page od které výsledná třída stránky dědí.
    JSP soubor se přeloží – vytvoří pouze jednu metodu výsledné třídy a tedy scriplet se vkládá právě do toho místa výsledné metody kde je uvedený. Umístění scripletu v JSP definuje kdy se jeho kód volá (častý zdroj mučivých nocí JSP začátečníků :-D).
  • web.xml = web.config sedí
Daniel Kvasnička ml. aura:82
15. 1. 2010 14:21 Nový

Re: velmi pěkný článek

celé vlákno

Kdyz uz, tak spis JSF ~ ASPX…

b*d
b*d (neregistrovaný) ---.net.upc.cz
15. 1. 2010 16:30 Nový

Re: velmi pěkný článek

celé vlákno

A jsf tady máme proto, aby jsme mohli používat IceFaces (icefaces.org)

Michal Augustýn
15. 1. 2010 16:37 Nový

Re: velmi pěkný článek

celé vlákno

Díky za upřesnění a doplnění.

Btw. ASP.NET není komponentová technologie (tedy pokud neuvažujeme pouze o Handlerech a Modulech, příp. Providerech). Pravděpodobně jsi měl na mysli ASP.NET WebForms. Ono je důležité se hlavně teď vyjadřovat přesně, protože tu máme ještě moje oblíbené ASP.NET MVC.
Právě v ASP.NET MVC jsou ASPX stránky degradovány na úroveň šablon. To byl ten motiv, proč jsem napsal JSP = ASPX.

Pokud se orientuješ v Javovském prostředí, jaké jsou protějšky ASP.NET MVC (Spring?) a ASP.NET WebForms?

Jakub D.
Jakub D. (neregistrovaný) ---.252.broadband.iol.cz
15. 1. 2010 17:26 Nový

Re: velmi pěkný článek

celé vlákno

ASP.NET MVC = Treba Struts nebo Spring MVC
ASP.NET WebForms = JSF

Asi nejvetsi rozdil mezi .NET a Javou je v tom, ze vam nikdo nerika, jaky framework nebo databazi mate pouzit. Kdysi jsem cetl knizku o tvrobe webu pomoci .NET 1.1 a trochu me vydesilo treba to, jak se lisila uroven podpory databazi pro MS SQL Server a ty ostatni. Treba pojmenovane parametry SQL dotazu byly podporovany jen pro MS SQL a rozdil vykonu dle autoru pry cinil 20%, coz mi prisel vendor-lockin jako prase.

K vasi otazce – V Jave si muzete vybrat z mnoha technologii pro generovani frontendu a ty muzete dale doplnit dalsimi knihovnami pro generovani konkretnich prvku HTML. Treba standard JSF ma implementace od Sunu (Mojara) i Apache (MyFaces) a obe muzete doplnit temito velkymi knihovnami: http://www.jsfmatrix.net/, plus tuny dalsich – mensich. Nutno dodat, ze na JSF se muzete uplne vykaslat a pouzit treba Struts, Spring MVC, Wicket nebo Tapestry. Prave tohle je opravdova sila Javy – naprosta svoboda, naprogramujte si to, v cem chcete :-))

JSP bych snad ani nezminoval, to je mrtva technologie, nahrazena Facelety, jez jsou nyni primo soucasti standardu JEE 6. Nekde v diskusi zaznelo, ze JSP jsou pro sablonovani, coz je blbost, protoze sablonovani v JSP je spise parodie, vykonove je to take bida.

tom
tom (neregistrovaný) ---.net.upc.cz
16. 2. 2010 23:09 Nový

Re: velmi pěkný článek

celé vlákno

Ano,
To je typický argument pro Javu. Máme takový a makový framework pak můžete použít ještě ten čtvrtý a pátý. A když to všechno dohromady zkombinujete tak to bude fakt super. On pak vznikne takový špagetový propletenec ve kterém se vyzná akorát autor aplikace.

Každý z těchto frameworků má životnost cca 2–4 roky. Pak přestává být podporovaný a nastupuje jiný framework. Málokdo si však uvědomuje že velké aplikace mají životnost daleko delší. Přejít na nový framework u těchto aplkací nelze protože neexistuje zpětná kompatibilita.
ASP .NET kontinuálně rozvíjí svojí funkcionalitu. Přidává nové komponenty a funkcionality ale hlavně je to všechno kompatibilní.
Nemusíte se učit framework za frameworkem. Prostě se naučíte ASP .NET. Když přijde nová verze tak projekt otevřete pouze v novém prostředí a pod novou verzí. To je TO ZA CO SE PLATÍ. A teď nemluvím o webu o 10–20 stránkách.

Co se musím naučit v Javě když chci programovat web na nějaké profi úrovni:

Vývojové prostředí (Netbeans například)
Aplikační server (GlassFish například)
Java Server Pages
Servlety (do těch se to kompiluje takže znalost by měla být)
Java Server Faces
Icefaces
Struts
Spring
Facelety

Co se musím naučit v .NET když chci programovat web na nějaké profi úrovni:

Vývojové prostředí Visual Studio
ASP .NET + IIS Server
ASP.NET MVC (možná, já ho nikdy nepoužil)

jondy
jondy (neregistrovaný) ---.net.upc.cz
16. 1. 2010 9:44 Nový

Re: velmi pěkný článek

celé vlákno

No plne ekvivalentni technologie jako takove asi neexistuji. Spis nektere frameworky jsou postavene na podobne filosofii, ale dost se lisi pristupem.

Napr JSF je puvodne klasicka MVC technologie, ale pomoci ruznych dalsich frameworku se pouziva typicky jako komponentova (protoze JSF je soucast JEE specifikace ktera je koncipovana jako komponentova). Z toho u predchozich verzi vznikalo hodne averze vuci JSF protoze takovyhle ohnuti se podepisovalo na vykonu a kompikovanosti programovani. Aktualni verze JSF + JSP uz tohle resi, ale je moc brzo hodnotit jak dobre :-)

Ono vubec mi prijde ze nejaky striktni deleni MVC, MVP a komponentove frameworky je hodne umele. V predchozim zamestnani jsme napriklad jeli MVC i ve starem APS.NETu 2.0. Jednoduse jsme ignorovali cast toho co MS do .NETu cpe, napsali par knihoven a byla to klasicka ukazka MVC (odesel jsem akorat, kdyz se zacalo pro model vrstvu integrovat NHibernate).

Me osobne nejvic vyhovuje Apache Wicket jako komponentova technologie. Hodne lidi kteri programovali v ASP.NET WebForms presli prave na Wicket, protoze ma podobne principy skladani a programovani komponent. Na druhou stranu Wicket se da pouzit jako klasicky MVC framework :-). Je navrzeny tak, ze AJAX a REST aplikace se v nem tvori uplne prirozene.

Mozna srovnani s .NETem jako takovym je Spring. Resi priblizne stejny rozsah funkcionality (vcetne webovych aplikaci), ale hodne se lisi pristupem. .NET ma tradicnejsi imperativni pristup (ne striktne ale spis principialne) a Spring spis jde deklarativnim pristupem (dependecy injection, AOP, COC)

mich
mich (neregistrovaný) ---.pilsfree.net
16. 1. 2010 16:36 Nový

Re: velmi pěkný článek

celé vlákno

JavaBean se neoznačují POJO.

http://en.wikipedia.org/…_Java_Object

Ondra Kučera aura:45
15. 1. 2010 16:49 Nový

parráda :]

celé vlákno

Tož pěkný článek, už se těším na pokračování ;]

Vít Šesták aura:72
15. 1. 2010 20:15 Nový

Chyby: Uživatelům radši nic podrobně neříkat

celé vlákno

Pokud nastane nějaká přípustná chyba (= se kterou bylo počítáno) způsobená uživatelem, třeba 404, pak ji co nejlépe popsat.
Pokud nastane vnitřní chyba, pak:
Jsem-li ve vývojovém prostředí, pak klidně popsat pokud možno co nejlépe.
Jsem-li v produkčním prostředí, pak se slušně omluvit a popsat co nejobecněji. Uživatele přece nezajímá, co se stalo. Tomu stačí, že to nefunguje a že on za to nemůže. Jestli je problém s databází nebo nastal NullPointerEx­ception může být uživateli úplně fuk. Komu to naopak fuk být nemusí je útočník.
Tolik k mému přístupu.

YF
YF (neregistrovaný) ---.25.broadband13.iol.cz
16. 1. 2010 22:46 Nový

Re: Chyby: Uživatelům radši nic podrobně neříkat

celé vlákno

Vito – chvalim te za tvuj pristup – jen tak dal! Takovy utocnik kdyz dostane do ruky takovou NPE – tak pak nastava skutecne peklo!

Vít Šesták aura:72
17. 1. 2010 14:11 Nový

Re: Chyby: Uživatelům radši nic podrobně neříkat

celé vlákno

Tak konkrétně NPE bez stacktrace je zpravidla na nic. (BTW: už jsem viděl blíže nespoecifikovanou banku jak ukázala něco podobného i se stacktrace :D)

Ale třeba info o problému s DB může inspirovat náhodného kolemjdoucího po zadání apostrofu k SQL injekci. A to si necucám jen tak z prstu.

Zasílat nově přidané příspěvky e-mailem