SlideShare uma empresa Scribd logo
1 de 75
Baixar para ler offline
JUnitでJavaScript
テスト
      Fx-Js-JUnitの紹介
おことわり

●   この発表ではJavaFXの話は
    ほとんど出てきません。
●   JavaScriptの話を延々としま
    す。
●   あらかじめご了承下さい。
誰?

● 名前 : @mike_neck
● 所属 : 無職
  ○ 1日9時間勤務で18時定時で昼1時間の
    休憩に加えて3時間昼寝できる会社探し
    ています。
● 職業 : プログラマー
  ○ Groovy / JavaScript / Java
● ブログ
  ○ mike、mikeなるままに…
本日のテーマ

●   JavaでJavaScriptをテストす
    る
    ○ Fx-Js-JUnitの紹介

    ○ 技術接近遭遇、的な

    ○ 名状しがたい…
ところで…
JavaScriptのテストどう
していますか?
QUnit
jQueryのテストでも使われているシン
プルかつ強力なテストフレームワーク。
Phantom.jsでCUIから操作可能。
JavaScriptでテストを記述。
Selenium
ブラウザーの自動操作ツール。Selenium
Web Driverを用いてUI系のテストが記述
できる。画面がボコボコ立ち上がるのがう
ざい。
JavaでJavaScriptのテス
トが書けて、かつうざくな
い奴が欲しいと思いませ
ん?
そこでFx-Js-JUnitで
すよ!
Fx-Js-JUnitを三行で
説明せよ!
Fx-Js-JUnitを三行で説明せよ!

● JavaFX2.0のWebEngineを用いたテスト
  ツール。
● JUnitで型安全にJavaScriptのテストが
  できる。
● ブラウザーが立ち上がらないのでうざく
  ない!

…ニャル子、あかちゃんつくろ
そうそう、JUnitの説明は
省きますよ
詳しくはWeb + DB プレス
#69のJUnit特集で
Server   JavaFX




JUnit     Test
サンプルテストコード

@ClassRule
                                            @ClassRuleでテ
private static UseFxJsJUnit fxJsJUnit =
                                            スト前にJavaFX
     UseFxJsJUnit
                                            アプリケーション
        .address('http://www.google.com')   を起動
        .identifiedBy('TestClass').get();


private JsJUnit jsJUnit;


@Before                                     JavaScriptのイ
public void setUp () {                      ンターフェースを
     jsJUnit = fxJsJUnit.getTester();       取得
}
サンプルテストコード
                                                    型Longを期
                                                    待するテスト
@Test                                               実行
public void longTest () {
    assertThat(jsJUnit.callLong(Integer.MAX_VALUE + " + 1"),
      is (Integer.MAX_VALUE + 1L));
}
@Test                                                型Personを
public void personTest () {                          期待するテス
    Person person = new Person();                    ト実行
    person.setName("mike");
    person.setAge(35);
    assertThat(jsJUnit.callAs("{name : 'mike', age : '35'}",
        Person.class), is (person));
}
Fx-Js-JUnit
JavaScriptのテストが
カターンゼン

型安全
Fx-Js-JUnit
< `・ω・´ > ヨロシク
The End
…
……
………
すんません
調子こきました
技術
JavaScriptを型安全に取り扱うために

●   JavaFXスレッドの理解
●   並列処理を構成する部材の
    理解
●   JavaScriptオブジェクトから
    Javaオブジェクトへのマッピン
    グ
JavaFXスレッドの理解-1

● アプリケーションを起動した後の部分のコードは
  アプリケーション終了後に実行される

 Application.launch(App.class);
 doSomething();


↑Platform.exit(); の後
に実行される。
JavaFXスレッドの理解-2

● UIを構成するオブジェクトへの操作、結果の取
  得はJavaFXスレッドを介する必要がある。


 WebEngine engine;
 engine.executeScript("1 + 1");

 Platform.runLater(
    { engine.executeScript("1 + 1");}
 );
JavaFXスレッドの理解-3

● UIを構成するオブジェクトはJavaFXスレッド上で
  生成しなければならない

                  JavaFX Thread
             engine = new WebEngine();
 WebEngine

                  Main Thread
                WebEngine engine;
JavaFXスレッドの理解-まとめ

●   JUnitからWebViewを操作するために
    ○   JUnitとは別のスレッドからJavaFXアプリケー
        ションを起動
    ○   別のスレッドに演算させた結果を待機して、
        取得
    ○   JUnitはJavaFXスレッドでインスタンス化され
        たオブジェクトへの参照を取得
並列処理を構成する部材の理解

● java.util.concurrent.ExecutorService
  ○ 別スレッドの処理を簡易に記述
  ○ JavaFXアプリケーションの起動にも
     ちいる
● java.util.concurrent.BlockingQueue<T>
  ○ JavaFXスレッドからのメッセージング
     (値のやり取り)に使用する
● javafx.application.Platform
  ○ JavaFXへの操作を提供
並列処理を構成する部材の理解

詳しい話は下記の書籍を参照。

Java並行処理プログラミング
3,990JPYくらい。
http://goo.gl/UUzc1
JS→Javaマッピング

WebEngineのAPIよりhttp://docs.oracle.
com/javafx/2/api/javafx/scene/web/WebEngine.html
   JavaScript values are represented using the
   obvious Java classes: null becomes Java null; a
   boolean becomes a java.lang.Boolean; and a
   string becomes a java.lang.String. A number
   can be java.lang.Double or a java.lang.Integer,
   depending...If the result is a JavaScript object, it
   is wrapped as an instance of the netscape.
   javascript.JSObject
JS→Javaマッピング

 JavaScript   typeof
                          Java Object
   Object      value
    null      object          null
   false      boolean   java.lang.Boolean
    23        number    java.lang.Integer
    1.10      number    java.lang.Double
  "script"    string    java.lang.String
JS→Javaマッピング

WebEngineのAPIよりhttp://docs.oracle.
com/javafx/2/api/javafx/scene/web/WebEngine.html
   JavaScript values are represented using the
   obvious Java classes: null becomes Java null; a
   boolean becomes a java.lang.Boolean; and a
   string becomes a java.lang.String. A number
   can be java.lang.Double or a java.lang.Integer,
   depending...If the result is a JavaScript object, it
   is wrapped as an instance of the netscape.
   javascript.JSObject
JS→Javaマッピング




 ┌(┌ ^o^)┐ JSObject...
JS→Javaマッピング

Plain Old JavaScript Object (POJSO)なら
JSObject#getMember()でマッピングが可能
{name : "cthuga", str : 80, con : 120, siz :
140, pow : 42}

JSObject cthuga = ...;
assertThat(
  (String)cthuga.getMember("name"),
  is ("cthuga") );
JS→Javaマッピング

SAN値を減少させるオブジェクト…
JS→Javaマッピング

Dateオブジェクト…

JSObject date = ...;
date.getMember("year");

  JSExceptionが発生する
JS→Javaオブジェクト

JavaScriptのDateオブジェクトにはメソッドはある
が、メンバーは存在しない。


                   ←Dateオブジェクトに
                   はメンバーがない



                   ←POJSO
JS→Javaマッピング

ちなみにJavaScriptでちゃんとメンバーの隠蔽化が
なされたオブジェクト…
var Encapsulation = function() {
     var count = 0;
     this.addAndGet = function () {
         count ++;
         return count;
     }
};
var counter = new Encapsulation();
return counter;
JS→Javaマッピング

そういったオブジェクトもメンバーを持ちません。
JS→Javaマッピング


メンバーのないJSObjectを
POJOにマッピングするいい方
法はないか
JS→Javaマッピング


メソッドと戻り値の型情報がわ
かれば大丈夫だ、問題ない
JS→Javaマッピング

テストしたい関数
JS→Javaマッピング

関数を実行する関数を作成
JS→Javaマッピング

関数を実行する関数を実行
JS→Javaマッピング

関数を実行する関数を実行する関数を作る
JS→Javaマッピング

{…}を無名関数化
JS→Javaマッピング

戻り値を既知のメソッドでPOJSO化
JS→Javaマッピング

テスト実行
JS→Javaマッピング

既知の型、メンバーを持つPOJSOを取得




(int) jsObject.getMember("addAndGet");
JS→Javaマッピング

DateはPOJSOにマッピング
JS→Javaマッピング

既知の型とメソッドはアノテーションに記述
JS→Javaマッピング

型安全に実行してassertionできる!
JS→Javaマッピング

equals(java.lang.Object)と
hashCode()メソッドの実装は自己責任で
ね★
JS→Javaマッピング

● プリミティブ型は直接取得してassert
● POJSOはgetMemberメソッド経由で
  POJOにマッピングしてassert
● 特殊なオブジェクトはアノテーションのメ
  タ情報からPOJSOを経由してマッピング
  してassert
Fx-Js-JUnit
JavaScriptのテストが
カターンゼン

型安全
Enjoy JavaScript!
ご静聴ありがとぉ…
…ぉ?
テストは複数同時に実行
 したいですよねぇ
お望みであれば
やってみせますが…
名状しがたい…

SAN値が下がりますよ
def service = Executors.newThreadPool(2)
service.execute {
  Application.launch(App) }
service.execute {
  Application.launch(App) }
名状しがたい…
名状しがたい…
名状しがたい…

複数 + JavaFX で検索
名状しがたい…
名状しがたい…




JavaFXは二度起動
させることはでき
ぬ!
名状しがたい…

● 複数のテストへの対応
 ○   WebEngineを複数立ち上げる
 ○   定期的にポーリングを行なって、
     WebEngineが利用されなくなったら
     終了する
名状しがたい…

● TODOs
 ○   複数のテストへの対応
 ○   ServletコンテナまたはJavaEEコン
     テナの搭載
 ○   GitHubへの公開
 ○   Maven/Ivyレポジトリーへの登録
 ○   他ご要望がありましたら
     @mike_neckまで
Thank you
for your attention

Mais conteúdo relacionado

Mais procurados

React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門spring_raining
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm伸男 伊藤
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)Teloo
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築kimukou_26 Kimukou
 
チュートリアルではじめるVue.js
チュートリアルではじめるVue.jsチュートリアルではじめるVue.js
チュートリアルではじめるVue.js小川 昌吾
 
Vue.jsでさくっとMVVM
Vue.jsでさくっとMVVMVue.jsでさくっとMVVM
Vue.jsでさくっとMVVMSatoshi Anai
 
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょJavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょKohki Nakashima
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share久司 中村
 
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)Yasumasa Suenaga
 

Mais procurados (20)

React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
 
Mvpvm pattern
Mvpvm patternMvpvm pattern
Mvpvm pattern
 
Starting java fx
Starting java fxStarting java fx
Starting java fx
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
20090212
2009021220090212
20090212
 
図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)図とコード例で多分わかる React と flux (工事中)
図とコード例で多分わかる React と flux (工事中)
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
 
チュートリアルではじめるVue.js
チュートリアルではじめるVue.jsチュートリアルではじめるVue.js
チュートリアルではじめるVue.js
 
Apexデザインパターン
ApexデザインパターンApexデザインパターン
Apexデザインパターン
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
Vue.jsでさくっとMVVM
Vue.jsでさくっとMVVMVue.jsでさくっとMVVM
Vue.jsでさくっとMVVM
 
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょJavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょ
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
 
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
 
G * magazine 1
G * magazine 1G * magazine 1
G * magazine 1
 

Semelhante a Unit testing JavaScript with JUnit/JavaFX

TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 
ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】株式会社ランチェスター
 
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うXtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うTatsumi Naganuma
 
ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3Tomoyuki Sato
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について豊明 尾古
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜JustSystems Corporation
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」yoshiaki iwanaga
 
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)JPCERT Coordination Center
 
About func unit
About func unitAbout func unit
About func unitgray Space
 
ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用Sho Okada
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackTakahiro Yoshimura
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaTakuya Tsuchida
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック良太 増子
 
[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部haruki ueno
 

Semelhante a Unit testing JavaScript with JUnit/JavaFX (20)

Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】ちょっと詳しくJavaScript 特別編【悪霊の神々】
ちょっと詳しくJavaScript 特別編【悪霊の神々】
 
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うXtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
 
ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3
 
About Jobs
About JobsAbout Jobs
About Jobs
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
 
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
 
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
 
About func unit
About func unitAbout func unit
About func unit
 
ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部
 
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
 
JSクラス定義
JSクラス定義JSクラス定義
JSクラス定義
 

Mais de Shinya Mochida

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情Shinya Mochida
 
IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話Shinya Mochida
 
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いクリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いShinya Mochida
 
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1Shinya Mochida
 
swift-log について
swift-log についてswift-log について
swift-log についてShinya Mochida
 
Java プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupJava プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupShinya Mochida
 
swift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientswift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientShinya Mochida
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyShinya Mochida
 
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugJJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugShinya Mochida
 
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたSpring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたShinya Mochida
 
Javaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめJavaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめShinya Mochida
 
JavaのStreamで学ぶ遅延処理実装パターン
JavaのStreamで学ぶ遅延処理実装パターンJavaのStreamで学ぶ遅延処理実装パターン
JavaのStreamで学ぶ遅延処理実装パターンShinya Mochida
 
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションgradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションShinya Mochida
 
On stream-lazy-computation
On stream-lazy-computationOn stream-lazy-computation
On stream-lazy-computationShinya Mochida
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるShinya Mochida
 
ドラクエの金銭感覚
ドラクエの金銭感覚ドラクエの金銭感覚
ドラクエの金銭感覚Shinya Mochida
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステムShinya Mochida
 

Mais de Shinya Mochida (20)

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情
 
IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話
 
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いクリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
 
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
 
swift-log について
swift-log についてswift-log について
swift-log について
 
Vim 入門
Vim 入門Vim 入門
Vim 入門
 
Java プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupJava プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線Meetup
 
swift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientswift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClient
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
 
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugJJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
 
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたSpring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
 
Javaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめJavaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめ
 
Kotlin as an AltJS
Kotlin as an AltJSKotlin as an AltJS
Kotlin as an AltJS
 
JavaのStreamで学ぶ遅延処理実装パターン
JavaのStreamで学ぶ遅延処理実装パターンJavaのStreamで学ぶ遅延処理実装パターン
JavaのStreamで学ぶ遅延処理実装パターン
 
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションgradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
 
On stream-lazy-computation
On stream-lazy-computationOn stream-lazy-computation
On stream-lazy-computation
 
Stream脳の作り方
Stream脳の作り方Stream脳の作り方
Stream脳の作り方
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
 
ドラクエの金銭感覚
ドラクエの金銭感覚ドラクエの金銭感覚
ドラクエの金銭感覚
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム
 

Unit testing JavaScript with JUnit/JavaFX