Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
Search
Yasuharu Nakano
March 25, 2023
Programming
0
15
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
Yasuharu Nakano
March 25, 2023
Tweet
Share
More Decks by Yasuharu Nakano
See All by Yasuharu Nakano
GroovyServ - Technical Part
nobeans
0
81
JavaOne2010 Groovy/Spring Roo
nobeans
0
49
Groovy's Builder
nobeans
0
37
How about Gradle?
nobeans
0
17
JavaSE7 Launch Event: Java7xGroovy
nobeans
0
24
The report of JavaOne2011 about groovy
nobeans
0
22
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
nobeans
0
25
OSS Product feat. Gradle
nobeans
1
31
Java開発の強力な相棒として今すぐ使えるGroovy
nobeans
0
52
Other Decks in Programming
See All in Programming
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
OSS開発者という働き方
andpad
5
1.7k
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
670
AI時代のUIはどこへ行く?
yusukebe
18
8.8k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
500
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
310
testingを眺める
matumoto
1
140
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
420
Cache Me If You Can
ryunen344
2
680
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
140
AIコーディングAgentとの向き合い方
eycjur
0
270
Kiroで始めるAI-DLC
kaonash
2
580
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Site-Speed That Sticks
csswizardry
10
810
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
How to train your dragon (web standard)
notwaldorf
96
6.2k
A better future with KSS
kneath
239
17k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Statistics for Hackers
jakevdp
799
220k
For a Future-Friendly Web
brad_frost
180
9.9k
Code Review Best Practice
trishagee
70
19k
Transcript
Java ( ΤίγεςϜฤ
8IPBN* 㾎ࢯ໊ɿத༃࣏ʢBLBOPCFBOTʣ 㾎ॴଐɿ/55ιϑτΣΞגࣜձࣾ 㾎ϒϩάɿ౾ແه IUUQEIBUFOBOFKQOPCFBOT 㾎4USJOHUS ΛίϯτϦϏϡʔτ͠·ͨ͠ 㾎(SPPWZ4FSW࡞ͬͯ·͢
$ time groovy -e 'println "Hello, world!";' Hello, world! real
0m1.806s user 0m1.321s sys 0m0.171s $ time groovyclient -e 'println "Hello, world!";' Hello, world! real 0m0.029s user 0m0.001s sys 0m0.002s
$ time groovyserver GROOVY: /Users/ynak/Developer/runtime/groovy/bin/groovy GROOVYSERV_HOME: /usr/local/Cellar/groovyserv/0.5/libexec starting.... groovyserver 71209(1961)
is successfully started real 0m5.038s user 0m0.015s sys 0m0.048s
http://www.flickr.com/photos/turyddu/2682923190/ lݟΑɺ͋Ε͕ (SPPWZεΫϦϓτ ͍ୡͷرͰ͋Δz
http://groovy.dzone.com/news/dzone-interviews-yasuharu
None
Java એ͓ΘΓ
( ΤίγεςϜ
ΤίγεςϜ cc ੜଶܥ http://www.flickr.com/photos/philippeguillaume/4027168508
l͋ΔΛڞ༗͠ɺؔ Λ࣋ͭछʑͷߏཁ ૉ͕ͦͷ׆ಈΛҡ࣋͠ ͯߦͨ͘ΊͷΈz http://www.venturenow.jp/column/ogawa/20100721008569.html
ͪͭ ͨΕͭ
4QPDL
4QPDL ͪͭ
4QPDL ͨΕͭ
4QPDL ࣮༻తͳϥΠϒϥϦɾ πʔϧ܈શ෦ͻͬ͘ ΔΊͯ(SPPWZͰ͢
Γ࣌ؒͰɺ(SPPWZΤ ίγεςϜͷओཁϓϩμ ΫτΛϥΠτχϯάհ ͠·͢
4QPDL
㾎ϑϧελοΫͷ8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ 㾎(SPPWZ൛ɺ3VCZPO3BJMT 㾎ݱࡏ4QSJOH4PVSDFࣾͷϥΠϯφοϓͷͭ 㾎4QSJOH.7$ 4QSJOH'SBNFXPSL )JCFSOBUFͳͲͷσϑΝΫ τͳϓϩμΫτΛج൫ͱͯ͠࠾༻ 㾎໘ͳઃఆʮنˍ%4-ʯͰ·Ζ͔ʹϥοϐϯά 㾎ϓϥάΠϯ͕ศརʂ 㾎ೝূػೳʁˠͦΕɺ4QSJOH4FDVSJUZϓϥάΠϯͰ
SZ 㾎$47ΤΫεϙʔτʁˠͦΕɺ&YQPSUϓϥάΠϯͰ SZ 㾎ৄ͘͠+((6(໊ݹࢧ෦ͷ!UZBNB͞Μʹʂ
㾎4XJOHϕʔεͷ3*"ϑϨʔϜϫʔΫ 㾎(SPPWZͷ4XJOH#VJMEFSΛϑϧ׆༻ 㾎(SBJMTͷΞʔΩςΫνϟΛͦͷ··౿ऻ 㾎+BS "QQMFU +84ͳͲʹύοέʔδϯάՄೳ 㾎কདྷతʹ+BWB'9ͷରԠ༧ఆ 㾎ৄ͘͠+((6(ؔࢧ෦ͷ!LJZUBLB͞ Μʹʂ
㾎ฒߦϓϩάϥϛϯάͷͨΊͷϥΠϒϥϦ 㾎(SPPWZ͔Βඪ४Ͱόϯυϧ͞Εͨʂ 㾎ฒߦॲཧɺඇಉظॲཧɺࢄॲཧͷͨΊͷײ తͰ҆શͳํ๏Λఏڙ 㾎ίϨΫγϣϯͷฒߦॲཧʢ.BQ3FEVDF෩ 㾎&SMBOH4DBMBͷΞΫλʔϓϩάϥϛϯάϞσϧ 㾎$MPKVSFͷΤʔδΣϯτ 㾎 ۚ ͷH
XPSLTIPQͰ;͞Μ !GVNPLNN ͕ൃද༧ఆͰ͢ʂ
㾎 ϙετ.BWFOͷ૯߹తͳϓϩδΣΫτཧπʔϧ 㾎 .BWFO͔ͳΓҙࣝͯ͠·͢ 㾎 σΟϨΫτϦߏ.BWFOํࣜΛ౿ऻ 㾎 ͪΖΜɺґଘϥΠϒϥϦཧͰ͖Δʢ*WZར༻ 㾎 ֤छϓϥάΠϯʹΑΔ؆୯ػೳՃʢએݴΛՃ͢Δ͚ͩʣ
㾎 (SPPWZ .BWFO &DMJQTF 04(J 4DBMB FUD 㾎 શ໘తʹ(SPPWZϕʔεͷ%4-Λ࠾༻ 㾎 ॊೈͳϚϧνϓϩδΣΫτߏ͕࣮ݱͰ͖Δ 㾎 ͋ͷ)JCFSOBUF(SBEMFʹҠߦͨ͠ʂ 㾎 ৄ͘͠υΩϡϝϯτຊޠ༁Ϧʔμ!MJUFSBMJDF͞Μʹʂ
㾎(PPHMF"QQ&OHJOF༻πʔϧΩοτ 㾎(SPPWZͷ1SPKFDU-FBEͰ͋Δ(VJMMBVNF -BGPSHFࢯ͕։ൃ 㾎("&ͷ"1*Λ(SPPWZ෩ʹ͢ΔͨΊͷബ͍ϥούʔ 㾎(SPPWZϥΠΫͳ%4-ه๏Λϑϧ׆༻ 㾎πΠολʔ#PUఔͳΒָʑ 㾎ৄ͘͠+((6(ӡӦҕһ݉ࣥචϦʔμͷ !LB[VDIJLB͞Μʹʂ
㾎#%%ʢϏϔΠϏΞۦಈ։ൃʣϑϨʔϜϫʔΫ 㾎1PXFS"TTFSUͷग़ 㾎"45มΛ׆༻ͯ͠ɺΘ͔Γ͍͢Ξαʔ γϣϯϝοηʔδΛදࣔͰ͖Δ 㾎(SPPWZͰຊՈʹऔΓࠐ·Ε͍ͯΔ 㾎؇ืɿຊ(SPPWZքͷϛελʔεϙοΫ 4QPDL
// ʮ0ʙ9ʹؚ·ΕͯΔۮͷݸ4ݸͩΑͶʁʯʢҧ def list = [0, 1, 2, 3, 4,
5, 6, 7, 8, 9] assert list.findAll{ it % 2 == 0 }.size() == 4 ʢࢀߟʣ1PXFS"TTFSU !!!!!!!!!!!!!!!!!!!!!!!!!! Caught: Assertion failed: assert list.findAll{ it % 2 == 0 }.size() == 4 | | | | | [0, 2, 4, 6, 8] 5 false [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ૣ͗͢Δʁ Α͘Θ͔Βͳ͍ʁ ਓʹৼΓ͗͢ʁ αϯϓϧίʔυ͕ͳ͍ʁ
ষ
!"#"$%&'"()*+&',,-.%/*0'%&',1# ! " # " $ % & ' WPM
$ P O U F O U T (SBJMT. ϦϦʔεɹۓٸاը ݕূ (SBJMT ͷੈքʜʜʜʜʜʜʜʜ !"#$"%&'( (SJ⒎PO ෆఆظศ ʙୈ ճόΠϯσΟϯάฤʙ ʜʜʜʜʜʜʜʜʜ !"#$"%&') $PEF/BSD Λར༻ͯ͠ (3007: ͷίʔυ࣭Λ্͛Δ ʙୈ ճ։ൃπʔϧͱ࿈ܞʙ ʜʜʜʜʜʜʜʜʜ !"#$"%&'* ͠৽ਓঁࢠ +BWB ϓϩάϥϚ͕ ʰ(SPPWZ ΠϯɾΞΫγϣϯʱΛಡΜͩΒ ʙୈ̍ষɹ͔ʰ(SPPWZ ΠϯɾΞΫγϣϯʱͱग़ձͬͨʙ ʜ !"#$"%&'+ (SBJMT1MVHJO ୳๚ ʙୈ ճ.POHP%#(03.ϓϥάΠϯʙ ʜʜʜʜ ,-./#012$/- ϦϦʔεใʜʜʜʜʜʜʜʜʜʜʜʜʜʜʜ +((6( ̐ίϚອըʮ͙ΔʔͼʔͨΜʯୈ ʜʜ http://grails.jp/g_mag_jp/ ͍·͙͢μϯϩʔυ