Groovy presentation on Exception #7 conference
Upcoming SlideShare
Loading in...5
×
 

Groovy presentation on Exception #7 conference

on

  • 5,166 views

http://voituk.kiev.ua/groovy-presentation-for-exception-7

http://voituk.kiev.ua/groovy-presentation-for-exception-7

Statistics

Views

Total Views
5,166
Views on SlideShare
2,419
Embed Views
2,747

Actions

Likes
0
Downloads
42
Comments
1

10 Embeds 2,747

http://voituk.kiev.ua 2713
http://www.linkedin.com 13
https://www.linkedin.com 10
http://www.slideshare.net 3
http://209.85.135.132 2
http://static.slideshare.net 2
http://74.125.77.132 1
http://209.85.129.132 1
http://webcache.googleusercontent.com 1
http://64.233.183.104 1
More...

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…

  • egfe

    <b>[Comment posted from</b> http://voituk.kiev.ua/groovy-presentation-for-exception-7/]
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Groovy presentation on Exception #7 conference Groovy presentation on Exception #7 conference Presentation Transcript

  • Groovy – другой взляд на Java Вадим Войтюк [email_address] http://voituk.kiev.ua/
    • современный динамический язык для платформы Java
    • вся мощь JVM и JRE
    • syntax-sugar из Python, Ruby, Smalltalk
    • современные парадигмы программирования
    • меньше кода «скучного» кода
    • поддержка концепции DSL (Domain Specific Languages)
    • повышение продуктивности разработчиков
    • упрощение автоматизированного тестирования
    • сохранение инвестиций в Java- технологии
    Groovy – это … Groovy – другой взляд на Java Киев, 15 марта 2008 г.
  • public class Filter { public static void main( String[] args) { List list = new ArrayList(); list.add( &quot;Rod&quot; ); list.add( &quot;Neeta&quot; ); list.add( &quot;Eric&quot; ); list.add( &quot;Missy&quot; ); Filter filter = new Filter(); List shorts = filter.filterLongerThan( list, 4 ); System.out.println( shorts.size() ); Iterator iter= shorts.iterator(); while ( iter.hasNext() ) System.out.println( iter.next() ); } public List filterLongerThan( List list, intlength ) { List result = new ArrayList(); Iterator iter= list.iterator(); while ( iter.hasNext() ) { String item = (String) iter.next(); if ( item.length() <= length ) result.add( item ); } return result; } } Пример: Java код Groovy – другой взляд на Java Киев, 15 марта 2008 г.
  • String mas[] = {”Rod”, “Neeta”, “Eric”, “Missy”}; List l = new LinkedList(Arrays.asList(mas)); for(Iterator i = l.iterator(); i.hasNext();) if(i.next().length() > 4) i.remove(); System.out.println(l.size()); for(String s: l) System.out.println(s); Пример: Java код (снова) Groovy – другой взляд на Java Киев, 15 марта 2008 г.
  • def list = [&quot;Rod&quot;, &quot;Neeta&quot;, &quot;Eric&quot;, &quot;Missy&quot;] def shorts = list.findAll{ it.size() <= 4 } println shorts.size() shorts.each { println it } Результат: 2 Rod Eric Пример: Groovy код Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • JRE + Огромное количесто уже написаного Java- кода (библиотеки, фреймворки, среды, ...)
    • Динамическая типизация, замыкания, билдеры GroovyBeans и другой syntax-sugar …
    • Метапрограммирование
    • Те же механизмы и инструменты поддержки процесса разрабоки
    • Grails – наш ответ RoR подходу
    • Прост в изучении и понимании
    • Groovy - это не JPython, не JRuby, не BeanShell
    Особенности Groovy Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • Динамическая и опционально статическая типизация int a = 2 def str = &quot;Hello&quot;
    • С интаксис для списков, хешей, массивов, RegExp -ов .. . def myMap = [&quot;Neta&quot;:33, &quot;Eric&quot;:35, new Date()] (&quot;1234567&quot; =~ /[0-9]+/).each {println it}
    • Работа с свойствами обьекта как с коллекциями assert document.all[“form”]==document.all.form
    • Замыкания myMap.each { name, age -> println &quot;$name is $age years old&quot; }
    • Перегрузка операторов + , - , /, * , <<, >> , [], ...
    Основы синтаксиса Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • Оператор ?. ( safe navigation ) и ?: (elvis operator) Obj?.method1()?.method2()?.method()… def x = (a!=null?a:b) => def x = a?:b
    • Категории и Expando - расширение ЛЮБОГО класса , даже final
    • Template Engine аля Velocity
    • Default Parameters void hello(name=&quot;World&quot;) {...}
    • Currying – замашки на Функциональное Программирование
    • Aliases def p = System.out.&println; p(&quot;Hello“)
    • Duck typing и приведение к интерфейсу (оператор AS )
    Расширенные возможности Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • String
    • - contains(), count(), execute(), padLeft(), center(),
    • - padRight(), reverse(), tokenize(), each(), etc.
    • Collection
    • - count(), collect(),join(),each(),reverseEach(),
    • - find/All(), min(), max(), inject(), sort(),etc.
    • File
    • - eachFile(), eachLine(), withPrintWriter(), write(), getText() ...
    • Методы можно добавлять самостоятельно
    GDK – JDK на стероидах Groovy – другой взляд на Java Киев, 15 марта 2008 г.
  • (new MarkupBuilder ()).records() { car(name:'HSV Maloo', make:'Holden', year:2006) { country('Australia') record(type:'speed', 'Pickup Truck, speed 271kph') } car(name:'P50', make:'Peel', year:1962) { 10.times{ country('Isle of Man') } record(type:'size', ‘Street-Legal Car at 59 kg') } car(name:'Royale', make:'Bugatti', year:1931) { country('France') record(type:'price', 'Most Valuable Car at $15Mln') } } Groovy Builder- ы – Пример – Код Groovy – другой взляд на Java Киев, 15 марта 2008 г.
  • <records> <car name='HSV Maloo' make='Holden' year='2006'> <country>Australia</country> <record type='speed'>Pickup Truck, speed 271kph</record> </car> <car name='P50', make='Peel', year='1962' > <country>Isle of Man<country> … … // 10 раз <record type='size’>Street-Legal Car at 59 kg</record> … … Groovy Builder- ы – Пример – Результат Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • Синтаксическая поддержка иерархических структур
    • - XHTML
    • - XML
    • - Ant
    • - Swing
    • - SWT - Hibernate Criteria
    • Возможность добавить свой Builder
    • - Objects
    • - GraphicsBuilder
    • - GraphBuilder
    Groovy Builder- ы – их есть... Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • GPath - XPath - like запросы по композиции обьектов
    • Extended Xml processing
    • Groovy SQL – расширение JDBC
    • Встроенный Ant
    • Grapplet
    • Groovlet, GSP, RESTlet – наш ответ Servlet -ам , JSP и REST
    • XML-RPC & GroovyWS & Gdata & Jabber RPC
    • GroovyMock & JUnit & TestNG и другие..
    • JSR 223: Scripting for the Java Platform
    • Groovy Scriptom – интеграция с COM/COM+
    Что ещё может Groovy? Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • Компилятор + Интерпретатор (groovyc/groovy)
    • Консоль+инспектирование (groovyConsole/groovysh + inspect)
    • Ant Task + Maven Plugin
    • Плугины к популярным IDE: Eclipse, IDEA, Oracle JDeveloper, Netbeans
    • … и редакторам: JEdit, Emacs, UltraEdit, vim
    Инструментальная поддержка Groovy – другой взляд на Java Киев, 15 марта 2008 г.
  • Идеологическая поддержка Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • http://groovy.codehaus.org
    • http://groovy.dzone.com
    • Книга “Groovy in Action”
    • Книга “Scripting in Java”
    • Groovy / Grails maillist
    • http://voituk.kiev.ua/groovy
    Источники знаний Groovy – другой взляд на Java Киев, 15 марта 2008 г.
    • Вопросы можно слать на e-mail [email_address]
    Вопросы? Groovy – другой взляд на Java Киев, 15 марта 2008 г.