<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.multimediaexpo.cz/mmecz/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=Groovy</id>
		<title>Groovy - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=Groovy"/>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=Groovy&amp;action=history"/>
		<updated>2026-07-31T06:11:15Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=Groovy&amp;diff=603382&amp;oldid=prev</id>
		<title>Sysop: 1 revizi</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=Groovy&amp;diff=603382&amp;oldid=prev"/>
				<updated>2014-04-14T11:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;1 revizi&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 14. 4. 2014, 11:26&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=Groovy&amp;diff=603381&amp;oldid=prev</id>
		<title>Sysop: + Vylepšení</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=Groovy&amp;diff=603381&amp;oldid=prev"/>
				<updated>2010-10-21T16:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;+ Vylepšení&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Groovy''' je [[objektově orientované programování|objektově orientovaný]] [[programovací jazyk]] pro [[Platforma Java|platformu Java]]. Jde o alternativu k programovacímu jazyku [[Java (programovací jazyk)|Java]]. Můžeme se na něj dívat jako na [[skriptovací jazyk]] pro javovskou platformu. Inspiraci čerpal z jazyků [[Python]], [[Ruby]], [[Perl]] a [[Smalltalk]]. Využívá výhody objektového programování, ale zároveň poskytuje zjednodušenou „skriptovací“ syntaxi, která umí zabalit a rozbalit často opakované části kódu. Jedním z jeho cílů je redukovat „povinný“ kód a zjednodušit tak tvorbu webových, databázových či desktopových aplikací. Kompilace je prováděna přímo do „bytecode“, takže jej můžeme použít všude tam, kde funguje Java. &lt;br /&gt;
&lt;br /&gt;
== Nastavení prostředí ==&lt;br /&gt;
Pro vývoj v jazyce Groovy je potřeba stáhnout binární distribuci např. z domovské stránky. A mít nainstalováno vývojové prostředí Java. Pak už jen stačí nastavit některé proměnné prostředí:&lt;br /&gt;
*přidat GROOVY_HOME proměnnou na adresář, ve kterém je uložena distribuce&lt;br /&gt;
*do PATH  proměnné přidat cestu do adresáře GROOVY_HOME/bin&lt;br /&gt;
*a nastavit JAVA_HOME proměnnou na adresář, ve kterém je vaše JDK. &lt;br /&gt;
Následně je možné spustit groovy shell příkazem „groovysh“ nebo GUI konzolu příkazem „groovyConsole“.&lt;br /&gt;
&lt;br /&gt;
== Některé vlastnosti jazyka Groovy ==&lt;br /&gt;
Jednoduchým příkladem může být vypsání věty „Vítej světe!“ na konzolu. V Javě je potřeba kromě samotného příkazu definovat třídu a hlavní metodu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 class VítejSvěte {&lt;br /&gt;
   public static void Main(String args[]) {&lt;br /&gt;
      System.out.println (&amp;quot;Vítej světe!&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ten samý cíl je v jazyce Groovy umožněn například následujícím jednoduchým způsobem:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 println &amp;quot;Vítej světe!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Takže Groovy doplní všechen ostatní kód (definici třídy a hlavní metody, detaily syntaxe jako jsou závorky) potřebný pro překlad v Javě. Jednotlivé příkazy není zapotřebí zakončovat středníkem.&lt;br /&gt;
&lt;br /&gt;
Dalším zjednodušením je oblast datových typů. Datový typ se implicitně nadefinuje dle vložené hodnoty. A co víc, v případě použití pole, seznamu atd. je možné libovolně vkládat různé datové typy jako je to v následujícím příkladě:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 seznamČísel = [1776, -1, 33.3333, &amp;quot;pět&amp;quot;, 928734928763]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nebo můžeme vytvořit jednoduchou mapu následovně:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 výška = [&amp;quot;Martin&amp;quot;:190, &amp;quot;Helena&amp;quot;:155, &amp;quot;Věra&amp;quot;:&amp;quot;Neuvedla&amp;quot;]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Groovy častokrát umožňuje více variant správné syntaxe, jako v následujícím příkladě:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 println &amp;quot;Martinova výška je: &amp;quot; + výška.Martin&lt;br /&gt;
 println &amp;quot;Martinova výška je: &amp;quot; + výška[&amp;quot;Martin&amp;quot;]&lt;br /&gt;
 println &amp;quot;Martinova výška je: ${výška.Martin}&amp;quot; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V posledním řádku je proměnná volána zevnitř složených závorek díky znakům  ${}, které upozorňují, že uvnitř se nachází Groovy výraz.&lt;br /&gt;
Dále můžeme vložit jednoduchý cyklus na procházení výše uvedené mapy včetně podmínky pro vypsání obsahu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 výška.each{&lt;br /&gt;
    if(it.value == &amp;quot;Neuvedla&amp;quot;){&lt;br /&gt;
        println it.key + &amp;quot; neuvedl/a svou výšku.&amp;quot;&lt;br /&gt;
    }else {&lt;br /&gt;
        if(it.value&amp;lt;170){&lt;br /&gt;
            println it.key + &amp;quot; měří méně než 170 cm.&amp;quot;&lt;br /&gt;
        } else {&lt;br /&gt;
            println it.key + &amp;quot; měří nejméně 170 cm.&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Klíčové slovo „it“ představuje automatickou proměnnou, do které se ukládá aktuální hodnota nebo objekt. V tomto případě je to aktuální záznam v mapě.&lt;br /&gt;
V příkladu je vidět i použití booleanovských operátorů, které jsou podobné jako v Javě a zahrnují následující možnosti:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 ==&lt;br /&gt;
 !=&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
 &amp;gt;=&lt;br /&gt;
 &amp;lt;&lt;br /&gt;
 &amp;lt;=&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Na rozdíl od Javy však v Groovy operátor  = =  znamená logickou rovnost pro všechny typy atributů. V Javě se např. pro porovnání obsahu dvou atributů obsahujících řetězec musí použít metoda equals().&lt;br /&gt;
&lt;br /&gt;
===Closures===&lt;br /&gt;
Dalším zjednodušujícím prvkem Groovy je tzv. “closure”. V následujícím příkladu je vidět jak můžeme celou třídu nahradit jednoduchým closure:&lt;br /&gt;
&lt;br /&gt;
''Třída''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 public class DruháMocnina {&lt;br /&gt;
   public static int umocni(int číslo){&lt;br /&gt;
        return číslo * číslo;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
''Closure''&lt;br /&gt;
 def c = { číslo -&amp;gt; číslo * číslo }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V prvním případě musíme pro vypsání mocniny čísla získat instanci třídy DruháMocnina a poté volat danou metodu. U closure je metoda uložena v atributu c a pro vypsání mocniny např. čísla 99 nám stačí následující příkaz:&lt;br /&gt;
 println c(99)&lt;br /&gt;
Atribut, ve kterém je closure uložena pak můžeme předávat napříč programu, jako kterýkoliv jiný atribut. &lt;br /&gt;
Closure se na první pohled podobá klasickému bloku. Blok je však prováděn hned jak na něj překladač natrefí. Closure je potřeba explicitně zavolat. &lt;br /&gt;
&lt;br /&gt;
Předcházející closure můžeme definovat ještě jednodušeji s využitím klíčového slova „it“&lt;br /&gt;
 def c = { it * it }&lt;br /&gt;
Proměnná „it“ v sobě automaticky ukládá parametr, který je při volání closure zadán.&lt;br /&gt;
&lt;br /&gt;
===Práce se soubory===&lt;br /&gt;
Relativně jednoduchá je i práce se soubory. Následujícím scriptem vypíšeme na konzolu obsah textového souboru „test.txt“, přičemž každý řádek bude začínat řetězcem „Řádek souboru:“&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 soubor = new File(&amp;quot;C:\\test.txt&amp;quot;)&lt;br /&gt;
 tiskniŘádekSouboru = { println &amp;quot;Řádek souboru: &amp;quot; + it }&lt;br /&gt;
 myFile.eachLine( printFileLine )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V definici cesty k souboru je stejně jako v Javě použito dvou lomítek, jelikož se jedná o escape sekvenci.&lt;br /&gt;
&lt;br /&gt;
===GUI===&lt;br /&gt;
V Groovy je možné využít všechny třídy z Javovské knihovny AWT či Swing. Avšak Groovy poskytuje i svůj vlastní „SwingBuilder“, který umí vytvářet plnohodnotný GUI deklarativním způsobem. Využívá přitom tzv. Builders, které se postarají o vytváření komplexních objektů, jako například vytváření instancí potomků či volání Swingových metod. Nasledující příklad vytvoří malé aplikační okno s tlačítkem, které po každém stisknutí vypíše součet všech stisknutí od začátku aplikace.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 import groovy.swing.SwingBuilder&lt;br /&gt;
 import java.awt.BorderLayout as BL&lt;br /&gt;
 &lt;br /&gt;
 počet = 0&lt;br /&gt;
 new SwingBuilder().edt {&lt;br /&gt;
  frame(title:'Okno', size:[300,300], show: true) {&lt;br /&gt;
    borderLayout()&lt;br /&gt;
    textlabel = label(text:&amp;quot;Click the button!&amp;quot;, constraints: BL.NORTH)&lt;br /&gt;
    button(text:'Click Me',&lt;br /&gt;
         actionPerformed: {počet++; textlabel.text = &amp;quot;Kliknuto ${počet} krát.&amp;quot;; println &amp;quot;kliknuto&amp;quot;},&lt;br /&gt;
         constraints:BL.SOUTH)&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Grails framework==&lt;br /&gt;
Jedním z frameworků postavených na Groovy jazyce je Grails framework. Ten umožňuje rychlejší vytváření náročných webových aplikací. V současnosti je tento framework přímo podporován například i ve vývojovém prostředí NetBeans (od verze 6.8), které se o většinu základní konfigurace postará, a tak si můžete snadno vyzkoušet ukázkové příklady, které v sobě zahrnuje, nebo které jsou k dispozici na domovské stránce Grails. Samotný vývoj pomocí tohoto frameworku je postaven na principu „Convention over Configuration“. To znamená, že vývojář je co nejvíce odlehčen od zdlouhavého rozhodování a konfigurování, přičemž se však musí uspokojit s přednastavenou implementací.&lt;br /&gt;
&lt;br /&gt;
Grails se vyznačuje tzv. [[Model-view-controller]] (MVC) přístupem. Výsledkem je přehledně strukturovaná aplikace, která si i v případě velké robustnosti, zachovává relativně snadnou obsluhu a modifikovatelnost.&lt;br /&gt;
&lt;br /&gt;
==IntelliJ IDEA==&lt;br /&gt;
S jazykem Groovy a Grails frameworkem je ve značné míře spojováno i vývojové prostředí „[[IntelliJ Idea]] (Intelligent Java IDE)“, které je zaměřené především na produktivitu vývojářů. Umožňuje zlepšení kódu díky asistenci  a analýze  kódu, více než 50 refactoringům a spoustě dalších funkcí. Podporuje také masivní kombinaci implementovaných vývojových nástrojů a pomáhá zvětšit jejich funkčnost i pomocí mnoha zásuvných modulů třetích stran. Plná klávesnicová podpora (PDF) umístí každou funkci nebo akci přímo pod prsty uživatele.&lt;br /&gt;
&lt;br /&gt;
IntelliJ IDEA se přirozeně integruje s nejpopulárnějším VCS včetně Perforce, StarTeam, Subversion, CVS, Visual SourceSafe a také s novým týmovým řešením pro kontinuální aplikační vývoj -- TeamCity.&lt;br /&gt;
&lt;br /&gt;
== Externí odkazy ==&lt;br /&gt;
* [http://groovy.codehaus.org/ domovská stránka jazyku Groovy]&lt;br /&gt;
* [http://www.grails.org/ domovská stránka frameworku Grails]&lt;br /&gt;
* [http://www.jetbrains.com/idea/ domovská stránka IntelliJ IDEA]&lt;br /&gt;
* [http://www.root.cz/serialy/groovy-v-prikladech/ Root.cz – Seriál o jazyku Groovy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Článek z Wikipedie}}&lt;br /&gt;
[[Kategorie:Počítačové jazyky]]&lt;br /&gt;
[[Kategorie:Java]]&lt;/div&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	</feed>