Submit Search
Upload
Reactive programming with Apache Wicket
•
1 like
•
3,268 views
R
Ryuhei Ishibashi
Follow
Apache Wicketを利用したWebシステムで Reactiveプログラミングを取り入れた事例の紹介
Read less
Read more
Software
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
社内勉強用
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
Sosuke Kimura
『M3 Tech Talk #49』で講演した『DevOpsハッカソン参加レポート』
DevOpsハッカソン参加レポート
DevOpsハッカソン参加レポート
Takashi Takebayashi
『Visual Studio アプリケーション開発の今 ~ Connect(); // 2015 最新情報 ~』で講演した『Connect(); // 2015 Latest information』
Connect(); // 2015 Latest information
Connect(); // 2015 Latest information
Takashi Takebayashi
7 つの実装パターンと Code Climate を使った実際のリファクタリング実践の紹介です。
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
Kazuhiro Sera
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント
nishizaki
2016/4/28に行われた「Java開発最前線 - UZABASE Meetup#2」の発表資料です。 http://uzabase-meetup.connpass.com/event/29952/
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
Akira Kitauchi
newspicks
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
UZABASEで大事にしている生産性について、実際にどのように生産性を上げる取り組みをしているかを紹介
生産性を高めてハッピーライフを ~2016/06/02 UZABASE Meet Up ~
生産性を高めてハッピーライフを ~2016/06/02 UZABASE Meet Up ~
Yasushi Nakashima
Recommended
社内勉強用
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
Sosuke Kimura
『M3 Tech Talk #49』で講演した『DevOpsハッカソン参加レポート』
DevOpsハッカソン参加レポート
DevOpsハッカソン参加レポート
Takashi Takebayashi
『Visual Studio アプリケーション開発の今 ~ Connect(); // 2015 最新情報 ~』で講演した『Connect(); // 2015 Latest information』
Connect(); // 2015 Latest information
Connect(); // 2015 Latest information
Takashi Takebayashi
7 つの実装パターンと Code Climate を使った実際のリファクタリング実践の紹介です。
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
Kazuhiro Sera
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント
19-D-5 Silverlightを利用したビジネスアプリケーション作成のポイント
nishizaki
2016/4/28に行われた「Java開発最前線 - UZABASE Meetup#2」の発表資料です。 http://uzabase-meetup.connpass.com/event/29952/
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
Akira Kitauchi
newspicks
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
UZABASEで大事にしている生産性について、実際にどのように生産性を上げる取り組みをしているかを紹介
生産性を高めてハッピーライフを ~2016/06/02 UZABASE Meet Up ~
生産性を高めてハッピーライフを ~2016/06/02 UZABASE Meet Up ~
Yasushi Nakashima
SPEEDAインフラ運営
SPEEDAインフラ運営
SPEEDAインフラ運営
yasushi_kanaya
NewsPicksでのAWSを活用したインフラ利用について
NewsPicksでのAWS活用法
NewsPicksでのAWS活用法
Wataru Kinoshita
Google Compute Engineを利用して自動デプロイ、開発環境の構築について話しました。
GCPでCI環境を構築する
GCPでCI環境を構築する
Toshihumi Anan
2015年4月23日(木)「えびスタ #2」での発表資料です。 http://ebista.connpass.com/event/13953/ http://tech.uzabase.com/entry/2015/05/15/170206
企業・業界データサービスSPEEDAの開発における複雑怪奇なデータとの格闘
企業・業界データサービスSPEEDAの開発における複雑怪奇なデータとの格闘
Akira Kitauchi
mecab-ipadic-NEologd は IPA 辞書を拡張した mecab のシステム辞書 新語・固有表現などを160万語以上再録 - 読み仮名・原型付きで(異表記の重複込み) 最低月2回アップデート(初旬・中旬) - Apache License 2.0 なOSSなので安心 辞書はタスクに応じて使い分けると効果UP !! - 5種類のタスク向けの選択例 + 2つの前処理をご紹介 - NEologd は特徴量作成とテキストマイニングに最適
mecab-ipadic-NEologd の効果的な使い方
mecab-ipadic-NEologd の効果的な使い方
Toshinori Sato
for LINE Engineer Blog
The monad fear
The monad fear
LINE Corporation
「たべみる」は、クックパッドの検索データをウェブから分析できる法人向けのウェブサービスです。 そのアーキテクチャの特徴としてサービスのバックエンドDBとバッチの両方でRedshiftを使っていることが挙げられます。 今回は、Redshiftの可用性を高めるためのクックパッド独自のアーキテクチャについて紹介します。
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
Hiroyuki Inoue
U27!ゆとり世代エンジニアLT忘年会 の資料 https://connpass.com/event/45252/
ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話
Kenji Tanaka
dots. Summit 2015での発表資料です。 正直技術者受けのする内容ではない気がしていますが、とても大切だと思っていることなので話させてもらいました。
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
Hideyuki Takeuchi
リアクティブプログラミングについてサーベイした発表資料です。 http://ytakano.github.io/
リアクティブプログラミング
リアクティブプログラミング
Yuuki Takano
OSC2016 発表資料
[OSC2016] マイクロサービスを支える MQ を考える
[OSC2016] マイクロサービスを支える MQ を考える
Ohyama Hiroyasu
Rubyエンジニアが語る、2016年の振り返りとこれから GMOペパボ株式会社・株式会社Speee minne で 2016 年に行った API 改善の一部を紹介
minne の API 改善
minne の API 改善
Toshihiro Gotou
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min 「nginx実践入門」出版記念!執筆者らが語る nginx Tech Talks
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
PHPデプロイツールがどういう動作でタスクを処理するのか、 それぞれのデプロイツールがどんな並列処理を行うかにフォーカスを当てたスライドです。
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
HTML5 Conference 2016で発表したスライドです。 TechFeed (https://techfeed.io) での開発経験を元に、Angular2, Webpack, Ionic2, Cordovaについて、それらの技術を採用した経緯と、実際に使ってみて感じたメリット・デメリットなどを解説しています。
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
Productivity Meetup #4 3/18/2017
Information sharing and Experience consistency at Cookpad mobile application
Information sharing and Experience consistency at Cookpad mobile application
ichiko_revjune
2015/10/03 PHPカンファレンス2015
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
Pyladies Tokyo 一周年記念 LT
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
ノンプログラマーなエンジニアを対象としたプログラミング言語 Python のトレーニング。演習込みで 4時間 x 4日間 の内容を1スライドにまとめています。 プログラミングとはなんぞや、なぜpythonをやるのかというところから、クラスの継承あたりまでをカバーしています。それにくわえて業務によく利用されると思われる機能を説明しています。
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
2014/10/28にpixivさんで行われたRxJavaNightの@RyotaMurohoshiの資料です。
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Ryota Murohoshi
自社プロダクト開発でReact Nativeは導入できるのか?社内勉強会で発表した資料。
React Nativeで考えるクロスプラットフォーム開発
React Nativeで考えるクロスプラットフォーム開発
yuichi kubota
mvcConf @:Japan ~ ASP.NET MVC ブートキャンプ ~ の資料です
Mvc conf session_1_osada
Mvc conf session_1_osada
Hiroshi Okunushi
More Related Content
Viewers also liked
SPEEDAインフラ運営
SPEEDAインフラ運営
SPEEDAインフラ運営
yasushi_kanaya
NewsPicksでのAWSを活用したインフラ利用について
NewsPicksでのAWS活用法
NewsPicksでのAWS活用法
Wataru Kinoshita
Google Compute Engineを利用して自動デプロイ、開発環境の構築について話しました。
GCPでCI環境を構築する
GCPでCI環境を構築する
Toshihumi Anan
2015年4月23日(木)「えびスタ #2」での発表資料です。 http://ebista.connpass.com/event/13953/ http://tech.uzabase.com/entry/2015/05/15/170206
企業・業界データサービスSPEEDAの開発における複雑怪奇なデータとの格闘
企業・業界データサービスSPEEDAの開発における複雑怪奇なデータとの格闘
Akira Kitauchi
mecab-ipadic-NEologd は IPA 辞書を拡張した mecab のシステム辞書 新語・固有表現などを160万語以上再録 - 読み仮名・原型付きで(異表記の重複込み) 最低月2回アップデート(初旬・中旬) - Apache License 2.0 なOSSなので安心 辞書はタスクに応じて使い分けると効果UP !! - 5種類のタスク向けの選択例 + 2つの前処理をご紹介 - NEologd は特徴量作成とテキストマイニングに最適
mecab-ipadic-NEologd の効果的な使い方
mecab-ipadic-NEologd の効果的な使い方
Toshinori Sato
for LINE Engineer Blog
The monad fear
The monad fear
LINE Corporation
「たべみる」は、クックパッドの検索データをウェブから分析できる法人向けのウェブサービスです。 そのアーキテクチャの特徴としてサービスのバックエンドDBとバッチの両方でRedshiftを使っていることが挙げられます。 今回は、Redshiftの可用性を高めるためのクックパッド独自のアーキテクチャについて紹介します。
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
Hiroyuki Inoue
U27!ゆとり世代エンジニアLT忘年会 の資料 https://connpass.com/event/45252/
ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話
Kenji Tanaka
dots. Summit 2015での発表資料です。 正直技術者受けのする内容ではない気がしていますが、とても大切だと思っていることなので話させてもらいました。
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
Hideyuki Takeuchi
リアクティブプログラミングについてサーベイした発表資料です。 http://ytakano.github.io/
リアクティブプログラミング
リアクティブプログラミング
Yuuki Takano
OSC2016 発表資料
[OSC2016] マイクロサービスを支える MQ を考える
[OSC2016] マイクロサービスを支える MQ を考える
Ohyama Hiroyasu
Rubyエンジニアが語る、2016年の振り返りとこれから GMOペパボ株式会社・株式会社Speee minne で 2016 年に行った API 改善の一部を紹介
minne の API 改善
minne の API 改善
Toshihiro Gotou
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min 「nginx実践入門」出版記念!執筆者らが語る nginx Tech Talks
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
PHPデプロイツールがどういう動作でタスクを処理するのか、 それぞれのデプロイツールがどんな並列処理を行うかにフォーカスを当てたスライドです。
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
HTML5 Conference 2016で発表したスライドです。 TechFeed (https://techfeed.io) での開発経験を元に、Angular2, Webpack, Ionic2, Cordovaについて、それらの技術を採用した経緯と、実際に使ってみて感じたメリット・デメリットなどを解説しています。
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
Productivity Meetup #4 3/18/2017
Information sharing and Experience consistency at Cookpad mobile application
Information sharing and Experience consistency at Cookpad mobile application
ichiko_revjune
2015/10/03 PHPカンファレンス2015
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
Pyladies Tokyo 一周年記念 LT
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
ノンプログラマーなエンジニアを対象としたプログラミング言語 Python のトレーニング。演習込みで 4時間 x 4日間 の内容を1スライドにまとめています。 プログラミングとはなんぞや、なぜpythonをやるのかというところから、クラスの継承あたりまでをカバーしています。それにくわえて業務によく利用されると思われる機能を説明しています。
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
2014/10/28にpixivさんで行われたRxJavaNightの@RyotaMurohoshiの資料です。
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Ryota Murohoshi
Viewers also liked
(20)
SPEEDAインフラ運営
SPEEDAインフラ運営
NewsPicksでのAWS活用法
NewsPicksでのAWS活用法
GCPでCI環境を構築する
GCPでCI環境を構築する
企業・業界データサービスSPEEDAの開発における複雑怪奇なデータとの格闘
企業・業界データサービスSPEEDAの開発における複雑怪奇なデータとの格闘
mecab-ipadic-NEologd の効果的な使い方
mecab-ipadic-NEologd の効果的な使い方
The monad fear
The monad fear
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
リアルタイム分析サービス『たべみる』を支える高可用性アーキテクチャ
ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
リアクティブプログラミング
リアクティブプログラミング
[OSC2016] マイクロサービスを支える MQ を考える
[OSC2016] マイクロサービスを支える MQ を考える
minne の API 改善
minne の API 改善
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
PHPデプロイツールの世界
PHPデプロイツールの世界
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Information sharing and Experience consistency at Cookpad mobile application
Information sharing and Experience consistency at Cookpad mobile application
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
Similar to Reactive programming with Apache Wicket
自社プロダクト開発でReact Nativeは導入できるのか?社内勉強会で発表した資料。
React Nativeで考えるクロスプラットフォーム開発
React Nativeで考えるクロスプラットフォーム開発
yuichi kubota
mvcConf @:Japan ~ ASP.NET MVC ブートキャンプ ~ の資料です
Mvc conf session_1_osada
Mvc conf session_1_osada
Hiroshi Okunushi
天下一クライアントサイドJS MV*フレームワーク武道会でのLT資料
React.js + Flux
React.js + Flux
dsuke Takaoka
2013/1/26 Hokuriku.NET vol11 LT の資料です
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
iOS Creators' Meetup vol.2 LT枠スライド http://oi-study.connpass.com/event/40049/
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
小林 弘明
2012/11/16 のセミナーで使用した Ignite UI スライドです
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
20100218
20100218
小野 修司
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
One ASP.NET - ASP.NET Web Stack ソーシャルグリッド株式会社 芝村 達郎
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web Stack
GoAzure
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
Akira Inoue
第二十七回岡山モバイルアプリ開発もくもく会
iOSでMVVM入門
iOSでMVVM入門
ishikawa akira
HTML5 プログラミング生放送勉強会 第11回@大阪
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
Oda Shinsuke
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
Akira Inoue
Testing react-native with storybook on web
Testing react-native with storybook on web
Testing react-native with storybook on web
Jesse Katsumata
VSUG DAY 2014 Autumn 資料
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
Efficiently develop mobile apps with React Native using storybook, react-native-web, and circle ci
Storybook web-and-circleci
Storybook web-and-circleci
Jesse Katsumata
http://acrovision.connpass.com/event/9957/ の資料です
Angularreflex20141210
Angularreflex20141210
Shinichiro Takezaki
Swaggerを使ってAPI Gateway
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
2013/01 講師資料
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Tadashi Miyazato
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
Similar to Reactive programming with Apache Wicket
(20)
React Nativeで考えるクロスプラットフォーム開発
React Nativeで考えるクロスプラットフォーム開発
Mvc conf session_1_osada
Mvc conf session_1_osada
React.js + Flux
React.js + Flux
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
20100218
20100218
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web Stack
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
iOSでMVVM入門
iOSでMVVM入門
~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
Testing react-native with storybook on web
Testing react-native with storybook on web
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Storybook web-and-circleci
Storybook web-and-circleci
Angularreflex20141210
Angularreflex20141210
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Reactive programming with Apache Wicket
1.
Reactive Programming with Wicket 2016/04/28 Reactive
Programming “Object Oriented Approach”を Websシステム開発にとり⼊れた実践事例の紹介
2.
⾃⼰紹介 仕事はJava Scalaが好き Wicket歴3年 Twitter: rysh@cactaceae
3.
話すこと Apache Wicket ViewとModelの分離 Object-Oriented Reactive
Programming
4.
話さないこと Reactive Streams Functional Reactive
Programming Reactive Extensions Reactive Application
5.
Wicketとは 2004年開発スタート 2015年まで⽣き残った14のJava製Web FWの⼀つ コミニュティもまだまだ活発
6.
なぜWicketでReactive? ⼊社時にWicketが使われていた 諸事情あり Wicketを使ったプログラミングの効率を追求
7.
Wicketの特徴 Swing likeなAPIでオブジェクト指向らしく書ける Viewに使うHTMLは単体でも正しく表⽰できる 再利⽤性が⾼いComponent AjaxにはJavaScriptを⾃動⽣成して対応 画⾯の差分更新もFWがやってくれる
8.
Hello World
9.
アーキテクチャ コンポーネントベース ステイトフル J2EEのフィルタ上に実装され、AP Serverで動作 HTTPプロトコルをラップ(隠蔽)して意識させない
10.
Wicketプログラミングの基本 あらゆるコンポーネントは継承による拡張が前提 Overrideして振る舞いを変える Behaivorによる委譲も使える 匿名クラスを多⽤
11.
WicketのComponent HTMLタグや画⾯部品に対応したクラス 必ずComponentクラスを継承している メンバにIDとModelを持つ コンポジットパターンでDOMのTree構造を表現している
12.
WicketのModel データのWrapper Componentに対応するViewにデータバインドで表⽰
13.
WicketのModel Wrapperとしての利⽤例
14.
よくあるGUIの問題 ModelがただのWrapperなのでComponentクラス内 でデータ取得することになる Viewのあちこちにビジネスロジックが埋め込まれる
15.
Reactive Programming データフロー (data
flows) に着⽬ 変更を伝播 (propagation of change)
16.
Imperative Programming b =
1 c= 2 a = b + c b = 10 print(a) // 3が出⼒ ・aは代⼊された時点の値を保持する
17.
Reactive Programming b =
1 c= 2 a = b + c b = 10 print(a) // 12が出⼒ ・右辺の値が変わると左辺に伝播される (いつ伝播されるかは実装による)
18.
SPEEDAのデモ
19.
GUIのデータフロー
20.
GUIのデータフロー データフロー を グラフで表現
21.
変更の伝播 データモデル間の伝播 データモデルから画⾯への伝播 ユーザーインプットをデータモデルに伝播
22.
変更の伝播 データモデル間の伝播 データモデルから画⾯への伝播 ユーザーインプットをデータモデルに伝播 Wicketが標準機能でサポート
23.
変更の伝播 普通は遅延評価を使って常に最新の値がとれるようにする Javaの⾔語機能には遅延評価はない Wicketの標準コンポーネントには LoadableDetacheableModelというクラスがあり、 これはレンダリング時にモデルの内容を読み込むという 遅延評価を⾏っている この遅延評価を⾏うモデルをチェインして伝播を実現
24.
遅延評価を⾏うモデル Wrapperとしての利⽤例 遅延評価を⾏うモデルの例
25.
遅延評価のメリット Wrapperの場合、初期化時に全データをロードする 遅延評価を⾏うと表⽰に使われないデータはロード されない 制御コードを書かなくていいので可視性も向上
26.
グラフ実装の課題と対策 愚直にグラフを実装すると全貌が⾒えづらくなる データ同⼠の関連は画⾯の要求に基づいているた め、バックエンドのデータモデルと乖離 MVVMパターンを適⽤しバックエンドのデータモデ ルをそのまま利⽤。 ⼀部のケースではEventを併⽤
27.
実現できたこと ViewとModelの⾃然な分離 ⾃律的なComponentの実装 全てのComponent階層で再利⽤可能 簡潔でトレーサビリティの⾼いコード
28.
終わり
29.
追加のTopic
30.
Wicketの Pros/Cons 快適にオブジェクト指向プログラミングできる デフォルトでオンメモリキャッシュが効いているようなものなので速い スケール/Continuous Deliveryしずらい 起源が古くAjaxやEventは後付けの設計 ドキュメントやサンプルコードは古いスタイルの物が多い デフォルトの設定も昔の常識に沿ったままなのでいろいろ設定が必要 Wicketʼs
request processing is delicate monster…
31.
Wicketのスケールアウト ステイトフルなのでsession情報を共有が必要 スケールしようとするとステイトフルだったメリッ トがデメリットになって襲いかかってくる UZABASEではSessionサーバーをnettyベースで⾃作
32.
Eventを使うケース Ajaxによって再描画するコンポーネントを AjaxRequestTargetにAddする時 特定のアクションがあった時だけ評価式が変わる 時 (グラフの構造が変わる)
33.
Wicketの⼈気は?
34.
Wicketの⼈気は? wicketには、英語では「⼩さな⾨」「(銀⾏などの) 格⼦窓⼝」の意味の他、クリケットで使⽤される「3本 の杭と、杭の上部に2本の横⽊を乗せた柱状のもの」 (三柱⾨)の意味がある。 Wikipediaより
35.
Wicketの⼈気は?
36.
Wicketの⼈気は? 察してください
37.
終わり
Download now