groovy joint

Post on 15-Jan-2015

1.370 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Groovy Joint is a simple DI framework.

TRANSCRIPT

JavaFX で Javascriptを

テストする

presented by @mike_neck

JavaFXにはWebkitを搭載したWebViewがあります。

皆さんご存知とおもいますが、

だから…

JavascriptのテストをJavaでやることができるんです!

JavascriptでJavaではありません

型安全

カターンゼン

(∩´∀`)∩

バンザーイ

なにっ(・・;)

ところが…

JavaFXやる

(;・∀・)ハッ?

余裕なかった

んで

(ΦωΦ)!!!!!!!!!!!!!!!!!!!!!!!!

なんもやって

ません

(´・ω`・)エッ?

おあり

……

|д゚)チラッ

………

(´;ω;`)ブワッ

ダメだよね…

サボってないよ(゚д゚)(。_。)(゚д゚)(。_。) ウンウン

最近やってた

こと

ε-(´∀`*)ホッ

話します

JavaFXからずいぶんと離れるな…

Swingの

レガシーコード

やっつけてま

した

どんなに、

レガシー?

こんな感じ

strValue = ""; File file = new File ("conf/system.properties");FileInputStream in = null;try {

in = new FileInputStream (file);Properties prop = new Properties();prop.load(in);strValue = prop.get("hoge");

}

あるソースの100行目付近

strValue = ""; File file = new File ("conf/system.properties");FileInputStream in = null;try {

in = new FileInputStream (file);Properties prop = new Properties();prop.load(in);strValue = prop.get("huge");

}

その12行くらい後

strValue = ""; File file = new File ("conf/system.properties");FileInputStream in = null;try {

in = new FileInputStream (file);Properties prop = new Properties();prop.load(in);strValue = prop.get("hade");

}

さらにその12行くらい後

(´;ω;`)ブワッ

コピペ!

氏ね!

レガシーコード

(´;ω;`)ブワッ

改修

やってました

というわけで

自己紹介

みけでいいです

@mike_neck

Groovyが好き

Javaなんか

やってます

あんな酷い

コードですが

ありがたい…

ありがたい

オマンマの種

最初はビルドできませんでした

ビルドとか

面倒なので

build.gradle組むの大変だった

gradleで

buidしてます

レガシーすぎるので

欲が出てtest

書いてます

Javaでテスト面倒なので

欲が出て

groovyでtest

それでもまだまだレガシー

だんだん

イラっとして

やったー

プロダクトに

groovy

(´・ω`・)エッ?

と思ったのも

つかの間

(´;ω;`)ブワッ

ビルドおちた

● JavaのプロダクトコードからGroovyのプロダクトコードを参照している

● gradleのビルドモデルはJava→Groovyの順で実行される

原因

Javaが依存しているGroovyのコードを先にコンパイルしていないとAUTO!

つまり

コンパイル時に実装を隠蔽していくれるようなそんなコンパイルを行いたい

解決策

それも実行時に実装クラスを指定できるようなやつ

DIほしい

● 文字列から実装クラスを指定できる。

● staticなコンテキストでも呼び出せる。

● Exceptionとか面倒なんで、例外はRuntimeにしたい。

欲しい機能

● アノテーションで実装クラスを指定する。

● アノテーションで指定されたクラスを注入する。

● 指定されたクラスがない場合は、それを示す実行時の例外をthrowする。

作った機能

● @GroovyImpl (implementedClass = "クラスのFQCN")

● インタフェースに付与された@GroovyImpleアノテーションをから実装クラスをインスタンス化

作った機能

https://github.com/mike-neck/gj-groovy-joint

にて公開予定

by mike_neck

groovyのご利

用は計画的に

top related