Enviar pesquisa
Carregar
Groovyノススメ
•
7 gostaram
•
1,556 visualizações
Takuma Watabiki
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 57
Baixar agora
Baixar para ler offline
Recomendados
Meetup C++ A brief overview of c++17
Meetup C++ A brief overview of c++17
Daniel Eriksson
Live in shell
Live in shell
Tiến Nguyễn
FunctionalJS - George Shevtsov
FunctionalJS - George Shevtsov
Georgiy Shevtsov
Groovy and Grails talk
Groovy and Grails talk
desistartups
Groovify your java code by hervé roussel
Groovify your java code by hervé roussel
Hervé Vũ Roussel
Functional programming with Immutable .JS
Functional programming with Immutable .JS
Laura Steggles
Composition in JavaScript
Composition in JavaScript
Josh Mock
Theming Plone with Deliverance
Theming Plone with Deliverance
Rok Garbas
Recomendados
Meetup C++ A brief overview of c++17
Meetup C++ A brief overview of c++17
Daniel Eriksson
Live in shell
Live in shell
Tiến Nguyễn
FunctionalJS - George Shevtsov
FunctionalJS - George Shevtsov
Georgiy Shevtsov
Groovy and Grails talk
Groovy and Grails talk
desistartups
Groovify your java code by hervé roussel
Groovify your java code by hervé roussel
Hervé Vũ Roussel
Functional programming with Immutable .JS
Functional programming with Immutable .JS
Laura Steggles
Composition in JavaScript
Composition in JavaScript
Josh Mock
Theming Plone with Deliverance
Theming Plone with Deliverance
Rok Garbas
Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)
Sumant Tambe
Facilite a vida com guava
Facilite a vida com guava
Romualdo Andre
JavaScript for Web Analysts
JavaScript for Web Analysts
Lukáš Čech
Java 7
Java 7
Bipul Sinha
Let's talks about string operations in C++17
Let's talks about string operations in C++17
Bartlomiej Filipek
Javascript3
Javascript3
mozks
C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012
Sumant Tambe
Functional programming in javascript
Functional programming in javascript
Boris Burdiliak
Quicli - From zero to a full CLI application in a few lines of Rust
Quicli - From zero to a full CLI application in a few lines of Rust
Damien Castelltort
งานPop pornapa
งานPop pornapa
Pw Mlp
GoLightly: A Go Library For Building Virtual Machines
GoLightly: A Go Library For Building Virtual Machines
Eleanor McHugh
Vocabulary Types in C++17
Vocabulary Types in C++17
Bartlomiej Filipek
Reactive Programming Patterns with RxSwift
Reactive Programming Patterns with RxSwift
Florent Pillet
Ragel talk
Ragel talk
elliando dias
Easily mockingdependenciesinc++ 2
Easily mockingdependenciesinc++ 2
drewz lin
第一回MongoDBソースコードリーディング
第一回MongoDBソースコードリーディング
nobu_k
Thinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.js
Artur Skowroński
Ruby on Rails Intro
Ruby on Rails Intro
zhang tao
2018 cosup-delete unused python code safely - english
2018 cosup-delete unused python code safely - english
Jen Yee Hong
Groovy for java developers
Groovy for java developers
Puneet Behl
Understanding java streams
Understanding java streams
Shahjahan Samoon
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
DEVTYPE
Mais conteúdo relacionado
Mais procurados
Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)
Sumant Tambe
Facilite a vida com guava
Facilite a vida com guava
Romualdo Andre
JavaScript for Web Analysts
JavaScript for Web Analysts
Lukáš Čech
Java 7
Java 7
Bipul Sinha
Let's talks about string operations in C++17
Let's talks about string operations in C++17
Bartlomiej Filipek
Javascript3
Javascript3
mozks
C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012
Sumant Tambe
Functional programming in javascript
Functional programming in javascript
Boris Burdiliak
Quicli - From zero to a full CLI application in a few lines of Rust
Quicli - From zero to a full CLI application in a few lines of Rust
Damien Castelltort
งานPop pornapa
งานPop pornapa
Pw Mlp
GoLightly: A Go Library For Building Virtual Machines
GoLightly: A Go Library For Building Virtual Machines
Eleanor McHugh
Vocabulary Types in C++17
Vocabulary Types in C++17
Bartlomiej Filipek
Reactive Programming Patterns with RxSwift
Reactive Programming Patterns with RxSwift
Florent Pillet
Ragel talk
Ragel talk
elliando dias
Easily mockingdependenciesinc++ 2
Easily mockingdependenciesinc++ 2
drewz lin
第一回MongoDBソースコードリーディング
第一回MongoDBソースコードリーディング
nobu_k
Thinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.js
Artur Skowroński
Ruby on Rails Intro
Ruby on Rails Intro
zhang tao
2018 cosup-delete unused python code safely - english
2018 cosup-delete unused python code safely - english
Jen Yee Hong
Mais procurados
(19)
Fun with Lambdas: C++14 Style (part 2)
Fun with Lambdas: C++14 Style (part 2)
Facilite a vida com guava
Facilite a vida com guava
JavaScript for Web Analysts
JavaScript for Web Analysts
Java 7
Java 7
Let's talks about string operations in C++17
Let's talks about string operations in C++17
Javascript3
Javascript3
C++11 Idioms @ Silicon Valley Code Camp 2012
C++11 Idioms @ Silicon Valley Code Camp 2012
Functional programming in javascript
Functional programming in javascript
Quicli - From zero to a full CLI application in a few lines of Rust
Quicli - From zero to a full CLI application in a few lines of Rust
งานPop pornapa
งานPop pornapa
GoLightly: A Go Library For Building Virtual Machines
GoLightly: A Go Library For Building Virtual Machines
Vocabulary Types in C++17
Vocabulary Types in C++17
Reactive Programming Patterns with RxSwift
Reactive Programming Patterns with RxSwift
Ragel talk
Ragel talk
Easily mockingdependenciesinc++ 2
Easily mockingdependenciesinc++ 2
第一回MongoDBソースコードリーディング
第一回MongoDBソースコードリーディング
Thinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.js
Ruby on Rails Intro
Ruby on Rails Intro
2018 cosup-delete unused python code safely - english
2018 cosup-delete unused python code safely - english
Semelhante a Groovyノススメ
Groovy for java developers
Groovy for java developers
Puneet Behl
Understanding java streams
Understanding java streams
Shahjahan Samoon
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
DEVTYPE
How to write rust instead of c and get away with it
How to write rust instead of c and get away with it
Flavien Raynaud
サイ本 文
サイ本 文
Takashi Takizawa
2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws
loffenauer
Java 7 & 8 New Features
Java 7 & 8 New Features
Leandro Coutinho
Java 7 LavaJUG
Java 7 LavaJUG
julien.ponge
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Uehara Junji
Groovy Basics
Groovy Basics
Wes Williams
JavaSE7 Launch Event: Java7xGroovy
JavaSE7 Launch Event: Java7xGroovy
Yasuharu Nakano
The Beauty of Java Script
The Beauty of Java Script
Michael Girouard
The Beauty Of Java Script V5a
The Beauty Of Java Script V5a
rajivmordani
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
Productive Programming in Groovy
Productive Programming in Groovy
Ganesh Samarthyam
ekb.py - Python VS ...
ekb.py - Python VS ...
it-people
Sbaw091006
Sbaw091006
Atsushi Tadokoro
모던자바의 역습
모던자바의 역습
DoHyun Jung
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET Application
Joni
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
julien.ponge
Semelhante a Groovyノススメ
(20)
Groovy for java developers
Groovy for java developers
Understanding java streams
Understanding java streams
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
How to write rust instead of c and get away with it
How to write rust instead of c and get away with it
サイ本 文
サイ本 文
2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws
Java 7 & 8 New Features
Java 7 & 8 New Features
Java 7 LavaJUG
Java 7 LavaJUG
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Groovy Basics
Groovy Basics
JavaSE7 Launch Event: Java7xGroovy
JavaSE7 Launch Event: Java7xGroovy
The Beauty of Java Script
The Beauty of Java Script
The Beauty Of Java Script V5a
The Beauty Of Java Script V5a
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Productive Programming in Groovy
Productive Programming in Groovy
ekb.py - Python VS ...
ekb.py - Python VS ...
Sbaw091006
Sbaw091006
모던자바의 역습
모던자바의 역습
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET Application
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
Mais de Takuma Watabiki
「普通の設計」をするということ
「普通の設計」をするということ
Takuma Watabiki
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
JGGUG Community LT 2016
JGGUG Community LT 2016
Takuma Watabiki
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
Spock's world
Spock's world
Takuma Watabiki
スーパー戦隊進化論
スーパー戦隊進化論
Takuma Watabiki
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
Takuma Watabiki
Spockを使おう!
Spockを使おう!
Takuma Watabiki
G*Magazineを読もう
G*Magazineを読もう
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
Mais de Takuma Watabiki
(16)
「普通の設計」をするということ
「普通の設計」をするということ
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
JGGUG Community LT 2016
JGGUG Community LT 2016
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Gradleどうでしょう
Gradleどうでしょう
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Spock's world
Spock's world
スーパー戦隊進化論
スーパー戦隊進化論
Gws in fukuoka
Gws in fukuoka
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
Spockを使おう!
Spockを使おう!
G*Magazineを読もう
G*Magazineを読もう
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Último
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Nanddeep Nachan
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Zilliz
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
Último
(20)
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Groovyノススメ
1.
Groovy 2009.12.12 DevLOVE 2009
Fusion takuma.watabiki@jggug.org
2.
JGGUG
Grails/Groovy twitter id : bikisuke
3.
Groovy 10
4.
Groovy
5.
Groovy
6.
Groovy • JVM
7.
Groovy • JVM •
8.
Groovy • JVM • •
9.
Groovy • JVM • • • Java
10.
Groovy • JVM • • • Java •
Ruby Python, Smalltalk
11.
Java
12.
13.
Java
C)
14.
Java
Groovy C)
15.
Groovy
Java Java
16.
Groovy
Java Java
17.
18.
ERROR Java Groovy
19.
import java.io.*; import java.util.regex.*; public
class ErrorExtractor { public static void main(String[] args) { BufferedReader br = null; BufferedWriter bw = null; try { br = new BufferedReader(new InputStreamReader( new FileInputStream(new File("/work/server.log")))); bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("/work/errorlist.log"))); String line = null; Pattern p = Pattern.compile(".*ERROR.*"); while((line = br.readLine()) != null) { Matcher m = p.matcher(line); if(m.matches()) bw.write(line + "¥n"); } } catch (Exception e) { } finally { try { br.close(); bw.close(); } catch(Exception e) {} Java } } }
20.
import java.io.*; import java.util.regex.*; public
class ErrorExtractor { public static void main(String[] args) { BufferedReader br = null; BufferedWriter bw = null; try { br = new BufferedReader(new InputStreamReader( new FileInputStream(new File("/work/server.log")))); bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("/work/errorlist.log"))); String line = null; Pattern p = Pattern.compile(".*ERROR.*"); while((line = br.readLine()) != null) { Matcher m = p.matcher(line); if(m.matches()) bw.write(line + "¥n"); } } catch (Exception e) { } finally { try { br.close(); bw.close(); .groovy } catch(Exception e) {} } } }
21.
import java.util.regex.*; BufferedReader br
= null; BufferedWriter bw = null; try { br = new BufferedReader(new InputStreamReader( new FileInputStream(new File("/work/server.log")))); bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("/work/errorlist.log"))); String line = null; Pattern p = Pattern.compile(".*ERROR.*"); while((line = br.readLine()) != null) { Matcher m = p.matcher(line); if(m.matches()) bw.write(line + "¥n"); } } catch (Exception e) { } finally { try { br.close(); bw.close(); main } catch(Exception e) {} }
22.
import java.util.regex.*; BufferedReader br
= new BufferedReader(new InputStreamReader( new FileInputStream(new File("/work/server.log")))); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("/work/errorlist.log"))); String line = null; Pattern p = Pattern.compile(".*ERROR.*"); while((line = br.readLine()) != null) { Matcher m = p.matcher(line); if(m.matches()) bw.write(line + "¥n"); } br.close(); bw.close(); try-catch
23.
File f =
new File("/work/errorlist.log") new File("/work/server.log").eachLine { line -> if(line =~ ".*ERROR.*") { f.append(line + "¥n") } } Groovy
24.
25.
import java.io.*; import java.util.regex.*; public
class ErrorExtractor { public static void main(String[] args) { BufferedReader br = null; BufferedWriter bw = null; try { br = new BufferedReader(new InputStreamReader( new FileInputStream(new File("/work/server.log")))); bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("/work/errorlist.log"))); String line = null; Pattern p = Pattern.compile(".*ERROR.*"); while((line = br.readLine()) != null) { Matcher m = p.matcher(line); if(m.matches()) bw.write(line + "¥n"); } } catch (Exception e) { } finally { try { br.close(); bw.close(); } catch(Exception e) {} } } }
26.
File f =
new File("/work/errorlist.log") new File("/work/server.log").eachLine { line -> if(line =~ ".*ERROR.*") { f.append(line + "¥n") } }
27.
28.
• • Expando Meta
Class • Grape • Mixin • AST • ...
29.
Groovy
30.
31.
Groovy
32.
Groovy
33.
Groovy
34.
35.
Hudson kkawa Groovy
※
36.
Hudson kkawa Groovy
※ ※2008 SDC SQUARE
37.
Groovy Q&A
38.
Q.
39.
A. Hudson CLI
groovy groovysh
40.
Q.
Scala
41.
A.
Groovy
42.
Q.
43.
A. Groovy
! Groovy @torazuka
44.
Q. Groovy
45.
A.
Groovy JOJO Groovy
46.
A.
Groovy JOJO Groovy
47.
Q. Groovy
48.
A.
49.
Groovy
50.
Groovy
JGGUG
51.
Groovy
JGGUG
52.
53.
54.
55.
Groovy
JVM Java
Baixar agora