14
最近のJavaで動くchat bot フレーム ワークをつくっている話 2015.10.10 13回渋谷Java

chat bot framework for Java8

Embed Size (px)

Citation preview

Page 1: chat bot framework for Java8

最近のJavaで動くchat bot フレームワークをつくっている話2015.10.10 第13回渋谷Java

Page 2: chat bot framework for Java8

tl;drJava8以降で動くHubotみたいなものをつくって、社内で使ってます!

Page 3: chat bot framework for Java8

お前誰よ(Who are you?)• Twitter : @Masahito, GitHub: masahitojp

• 株式会社 Skeed所属• 専門はP2Pによる効率的なファイル転送(MiddleWare +

Client)

• ScalaとJVM(v1.6以降)でご飯を食べています。(Java歴2年)

• Loves: Python/Scala/OCaml, Emacs/IntelliJ

Page 4: chat bot framework for Java8

まずDemo• https://github.com/masahitojp/botan-example

• on OpenShift

Page 5: chat bot framework for Java8

特徴• 牡丹 という名前でつくっています。• pure Java8 (以降)による実装• Lambda をつかった機能追加が可能• パッケージ追加による機能追加に対応• slackとの連携(xmppを利用した)

• Redis/MapDBをつかったデータの保存

Page 6: chat bot framework for Java8

examplePingpackage com.github.masahitojp.implementation.handlers;

import com.github.masahitojp.botan.Robot;import com.github.masahitojp.botan.handler.BotanMessageHandlers;

public class PingMessageHandlers implements BotanMessageHandlers { public void register(final Robot robot) { robot.respond( "ping¥z", "ping method", message -> message.reply("pong") ); }}

Page 7: chat bot framework for Java8

mavenに上げとくとこんな感じで拡張も可能apply plugin: 'java'

repositories.mavenCentral()

dependencies { compile 'com.github.masahitojp:botan:0.0.1.+' compile 'com.github.masahitojp:botan-mapdb:0.0.1' compile 'com.github.masahitojp:botan-ping:0.0.1'}

sourceCompatibility = targetCompatibility = 1.8

Page 8: chat bot framework for Java8

URL本体• https://github.com/masahitojp/botan-core

例• https://github.com/masahitojp/botan-example

• https://github.com/masahitojp/botan-mapdb

Page 9: chat bot framework for Java8

つくった動機• Java8でどの程度のことができるのかしりたかった• DevOpsとか格好よさそう!!

• 会社のbotがslack+Hubot

• 社内だとJS/Coffee Script書くのに抵抗がある人が多いのでとりあえずJavaで書こうかなと思った

• 社内用につくってたら、なんかHubotとかに似てきた(^^;

Page 10: chat bot framework for Java8

つくって気づいたこと• 機能を会社の後輩につくってもらってるんですが、それに応えて機能拡張

• Lambda 無名クラス使うより読みやすい,思ったより速い• Tuple欲しいなぁ/ Stream便利、だけどだるいなぁ• Clojureでつくられたjubotっていう同じようなものがあるなぁ orz

Page 11: chat bot framework for Java8

まぁ勉強になったしいいことにしよう

Page 12: chat bot framework for Java8

こんごやりたいこと• XMPPを使わないでSlackと連携• Gitterとの連携• UnitTestをかきやすいようにしていきたい(すごいなやんでます)

• Document書く• 機能の安定化

Page 13: chat bot framework for Java8

興味がある方、終わった後でお声がけください!

Page 14: chat bot framework for Java8

Question?