Groovy joint

  • 1,353 views
Uploaded on

Groovy Joint is a simple DI framework.

Groovy Joint is a simple DI framework.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,353
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
2
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. JavaFX で Javascriptを テストする presented by @mike_neck
  • 2. 皆さんご存知とおもいますが、JavaFXにはWebkitを搭載したWebViewがあります。
  • 3. だから…JavascriptのテストをJavaでやることができるんです!
  • 4. Javascriptで Javaではありません
  • 5. 型安全カターンゼン
  • 6. バンザーイ (∩´∀`)∩
  • 7. !?
  • 8. ところが… なにっ(・・;)
  • 9. JavaFXやる …
  • 10. 余裕なかった んで (;・∀・)ハッ?
  • 11. なんもやって ません (ΦωΦ)!!!!!!!!!!!!!!!!!!!!!!!!
  • 12. おあり(´・ω`・)エッ?
  • 13. ……
  • 14. ………
  • 15. ……… |д゚)チラッ
  • 16. ダメだよね… (´;ω;`)ブワッ
  • 17. 最近やってた こと サボってないよ (゚д゚)(。_。)(゚д゚)(。_。) ウンウン
  • 18. 話します ε-(´∀`*)ホッ
  • 19. SwingのJavaFXからずいぶんと離れるな…
  • 20. レガシーコード を
  • 21. やっつけてま した
  • 22. どんなに、レガシー?
  • 23. こんな感じ
  • 24. あるソースの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("hoge");}
  • 25. その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("huge");}
  • 26. さらにその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");}
  • 27. コピペ! (´;ω;`)ブワッ
  • 28. レガシーコード の 氏ね!
  • 29. 改修やってました (´;ω;`)ブワッ
  • 30. というわけで
  • 31. 自己紹介
  • 32. @mike_neck みけでいいです
  • 33. Javaなんかやってます Groovyが好き
  • 34. あんな酷いコードですが
  • 35. ありがたいオマンマの種 ありがたい…
  • 36. ビルドとか面倒なので最初はビルドできませんでした
  • 37. gradleでbuidしてます build.gradle組むの大変だった
  • 38. 欲が出てtest書いてます レガシーすぎるので
  • 39. 欲が出てgroovyでtest Javaでテスト面倒なので
  • 40. だんだんイラっとしてそれでもまだまだレガシー
  • 41. プロダクトに groovy やったー
  • 42. と思ったのもつかの間 (´・ω`・)エッ?
  • 43. ビルドおちた (´;ω;`)ブワッ
  • 44. 原因● Javaのプロダクトコードから Groovyのプロダクトコードを参 照している● gradleのビルドモデルは Java→Groovyの順で実行さ れる
  • 45. つまりJavaが依存しているGroovyのコードを先にコン パイルしていないとAUTO!
  • 46. 解決策コンパイル時に実装を隠蔽していくれるようなそ んなコンパイルを行いたい
  • 47. DIほしいそれも実行時に実装クラスを指定できるような やつ
  • 48. 欲しい機能● 文字列から実装クラスを指定 できる。● staticなコンテキストでも呼び 出せる。● Exceptionとか面倒なんで、 例外はRuntimeにしたい。
  • 49. 作った機能● アノテーションで実装クラスを 指定する。● アノテーションで指定されたク ラスを注入する。● 指定されたクラスがない場合 は、それを示す実行時の例外 をthrowする。
  • 50. 作った機能● @GroovyImpl (implementedClass = "クラ スのFQCN")● インタフェースに付与された @GroovyImpleアノテーション をから実装クラスをインスタン ス化
  • 51. https://github.com/mike- neck/gj-groovy-jointにて公開予定
  • 52. groovyのご利用は計画的に by mike_neck