Logo

java

Oracle Text - vyhledávejte na úrovni

Vložil Pavel Klobasa, 7. Únor 2010 - 22:35

Internetové obchody musí mít košík, redakční systémy autory a články, webové prezentace nápaditou grafiku… ale je jedna vlastnost, kterou by měly mít všechny internetové aplikace a která bývá u webových aplikací často odbytá – fulltextové vyhledávání. Přitom jde o důležitou vlastnost, webové aplikace by měly počítat s nepoučeným uživatelem, který na stránky přijde poprvé, nevyzná se v nich a něco hledá – a právě zde by mělo nastoupit fulltextové vyhledávání.

Než se dostaneme k technologii Oracle Text, pojďme si projít alternativy…

UUID - inteligentní IDčka

Vložil Pavel Klobasa, 24. Leden 2010 - 19:33

Snad tento článek je zbytečný a jeho napsaní nošením sov do Athén. Snad ony 128bitové identifikátory ve formátu UUID jsou již natolik běžné,že jsou obsaženy ve většině informačních systémů a také jsou skryty na pozadí většiny internetových aplikací. Nevím. Považují UUID za užitečné, tak jsem se jim rozhodl věnovat tento text.

Není model jako model

Vložil Pavel Klobasa, 31. Srpen 2008 - 21:30

Důležitým pojmem při vývoji software je model. Zpravidla se tento pojem odkazuje na návrhový vzor MVC. Zdatnější vývojář se pak při vyslovení tohoto pojmu odkáže jednak Swing a jednak na Struts, který model přinesl do světa webového vývoje. Jenže, přiznejme si to, pojmy model a MVC jsou poněkud mlhavé a neurčité. Pojďme se tedy podívat na různé implementace modelu v několika frameworcích – za základ vezmu tři oblíbené: Swing, Spring MVC a Apache Wicket.

Ukázkový příklad – zobrazujeme kočky

Použití modelu bych chtěl ukázat na tabulce, která zobrazuje atributy následující třídy Kočka. (Kočka je užitečná entita – používají ji i autoři dokumentace Spring Frameworku.)

public class Cat {
   String name;
   int age;

   public String getName(){
      return name;
   }
   public void setName(String name){
      this.name=name;
   }

   public int getAge(){
      return age;
   }
   public void setAge(int age){
      this.age=age;
   }
}

AJAX v komponentových frameworcích

Vložil Pavel Klobasa, 5. Červenec 2008 - 15:16

Vytvořit AJAXovou či přímo RIA aplikaci se zdá být snadné – stačí umět JavaScript a HTML a vhodně použít XMLHttpRequest… Jenže tak jednoduché to není. Nedávno jsem nalezl článek, který přirovává problémy AJAXového vývoje k vývoji rezidentních programů v DOSu. (Nevím, jestli ty doby pamatujete: šlo o programy čekající na pozadí na systémové volání OS.) Zde je můj zkrácený překlad:

  • JavaScriptový engine v prohlížeči neumí multithreading (stejně jako DOS).
  • Velikost kódu je limitovaná (v DOS bylo limitem 640kB RAM).
  • JavaScript nepodporuje složitější kolekce, které známe např. z Javy.
  • Na serveru i ve Win32/Linuxové aplikaci si můžete vybrat programovací jazyk.
  • Horší možnosti debuggingu.

Co s tím? Odpověď je jednoduchá a tradiční: využít práce jiných programátorů a použít framework. Chtěl bych v následujícím textu projít několik frameworků. Nejprve ale jednoduchý případ užití, který najdete v každém internetovém autobazaru – a to spřažená komba pro výběr značky a modelu auta:

Jde o to, aby se po výběru značky nabízely jen odpovídající modely aut. Jsou tři možnosti řešení:

  • serverové – po výběru značky překreslí celou stránku
  • javascriptové – po výběru značky JavaScriptový kód prohodí obsah komba s modely
  • AJAXové – po výběru značky odešle požadavek na data na server a stáhne z něj modely aut.

Spring Framework - aplikační server jinak

Vložil Pavel Klobasa, 3. Červen 2008 - 16:46

Aplikační server je výkonná vrstva ve třívrstvé architektuře. V javovém světě se pod pojmem aplikační server myslí běhové prostředí s podporou EJB. Zkusme se na chvíli povznést nad oba zažité pojmy a představme si, že aplikační server je prostě prostředí pro běh serverové aplikace. Ano, přesně to je Spring Framework. (V dokumentaci ovšem najdeme označení Application Framework). Pojďme se na něj krátce podívat.

Log4J - logujeme s přehledem

Vložil Pavel Klobasa, 18. Květen 2008 - 19:01

Jednou z knihoven, kterou vaše aplikace „musí mít“, je knihovna pro logování Log4J. Každá aplikace, která je víc než jen školní úlohou, by měla kvalitně logovat. Co znamená kvalitně? V přiměřené míře podrobnosti (aby bylo možné najít chybu), ale zároveň v přiměřeném objemu (aby logovací soubory neúměrně nenarůstaly). Aby bylo možné logovat podle různých politik (jeden nebo víc souborů a jejich rotace, logování do databáze atp.) Všechno tohle a ještě mnohem víc knihovna Log4J umožňuje. Nejde o složitou knihovnu, přesto její naučení a pochopení její vnitřní logiky chvíli trvá.

V následujícím článku nechci Log4J dopodrobna rozebírat, ale rád bych tuto knihovnu přiblížil začátečníkům.

Inversion of Control - změna programátorského paradigmatu

Vložil Pavel Klobasa, 8. Květen 2008 - 22:44

Inversion of Control, zkráceně IoC, je návrhový vzor, česky bychom ho mohli nazvat obrácené řízení. Nejde o nic převratného, a přece, pokud tento princip vezmeme za svůj, může se tím charakter vaší aplikace změnit. Změny půjdou udělat snadněji, bude přehlednější a srozumitelnější…

Sventon - webový klient Subversion

Vložil Pavel Klobasa, 30. Duben 2008 - 22:54

Možná vám bude připadat divné, proč mít nainstalovaného na serveru webového klienta k Subversion. Vždyť existuje mnoho nástrojů k tomuto verzovacímu systému, nemluvě o integraci do IDE. Přinejmenším dva důvody by tu však byly, oba vycházejí z webové podstaty tohoto klienta:

  1. Můžete poslat odkaz mailem na konkrétní soubor zdrojového kódu či jeho verzi
  2. Nemusíte si nic instalovat, nemusíte checkoutovat…

Webový klient, který bych vám chtěl ukázat, je Sventon. Jde o klienta napsaného v Javě a vydaného pod licencí BSD.

Jak na zásuvný modul do JSPWiki

Vložil Pavel Klobasa, 26. Duben 2008 - 19:22

Technologické informace jsou v naší firmě důležité, takže ani my jsme neodolali pokušení používat Wiki. Existuje množství wiki engine v různých jazycích, naše volba byla javová – zvolili jsme JSPWiki.

Chtěl bych vám ukázat, jak je snadné v JSPWiki vytvořit zásuvný modul, neboli vlastní Wiki značku. Příkladem bude modul, který umožňuje vložit do stránek soubor ve formátu SVG. Nejprve krátce o tomto formátu.

SVG

SVG vektorový grafický formát, který je možné zobrazit ve webové stránce. Pokud je mi známo, je to jediný standartizovaný vektorový formát, který je možné na webu použít. Bohužel není příliš známý ani rozšířený, ale velmi často je v prohlížeči implicitně nainstalován nebo je možné prohlížeč rozšířit zásuvným modulem od Adobe.

Maven - výhody a nevýhody prakticky

Vložil Pavel Klobasa, 13. Duben 2008 - 17:38

Apache Maven je jedněmi nadšeně přijímán a masivně propagován a jinými zatracován. Podle mého názoru je problém s Mavenem v jeho propagaci – nejčastěji je prezentován jako „deklarativní Ant“. Maven dělá něco podobného jako Ant, ale dělá to jinak a umí leccos nového. (Jakoby ona odlišnost od všeho, co v Javě známe, byla vyjádřena i velmi specifickým logem se sedícím programátorem…)

© 2005-2008 oXy Online s.r.o., všechna práva vyhrazena.