Upload
mikeneck-mochida
View
1.370
Download
1
Embed Size (px)
DESCRIPTION
Groovy Joint is a simple DI framework.
Citation preview
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のご利
用は計画的に