SlideShare a Scribd company logo
1 of 22
Download to read offline
Clojureの各種React系ラッパーライブラリの
サーバーサイドレンダリングの現状について
SPAとSSR、現実解について考えてみる
2016/09/28
Lisp Meet Up presented by Shibuya.lisp #44
登壇者
{:company “Greative.GK”
:name “Kazuhiro Hara”
:twitter “@kara_d”}
Clojure / ClojureScript でElectronアプリケーションを
作るためのスターターキット / プラットホーム
● オープンソースにてGitHubにて公開
● MITライセンス
● 現在のスター数 : 230 http://descjop.org/
アジェンダ
● なぜSSRなのか? 他言語環境での難しさについて
● ClojureのReactラッパー系ライブラリでの実装について
● おれたちにはcljcがある!
なぜSSRなのか?について
SSR(サーバーサイドレンダリング)について
(Reactベースのアプリケーションの文脈で)
● Webアプリケーションに用意されているURLにアクセスした時に、
DOMの構築をフロントエンド側で行うと、一瞬表示されていない状態になる
● 初期表示状態が決まっているなら、
サーバー側で初期状態のDOMレンダリングを完了した状態で返せばいい
● 共通の半描画状態の画面を出したりローディング画像を出すアプローチもある
そもそもSSRする必要があるのか?
ある
ない
Reactで複雑な状態遷移を扱うようなことが前提のWebアプリケーションなら、
Accessible Rich Internet Applications(WEI-ARIA)を全力で頑張る方向に
倒したほうが良くないか?
☞ 今回こっちの場合の話
なぜSSRなのか?について
● URLに対する情報のアクセシビリティ・セマンティック性を確保しておく
○ ブラウザを通したURLに対するアクセシビリティ・セマンティック性とは少し別
○ SEOの問題はあまり心配しなくていいらしい (自分で実験したわけではない )
● パフォーマンスの問題
○ ブラウザでURLを直接アクセスした時に表示が完了するまでの時間の短縮化
SSRと一口に言っても?
● React標準のスタイルでサポートされているやり方
○ react-dom/serverを使う
■ https://facebook.github.io/react/docs/environments.html
● 上記と同じことを他言語環境でエミュレートする
● せめてJSON部分だけHTMLに埋め込む
○ TwitterやFacebookなど
● 原始的に出力するdivを切り分けて読み込み後は元のdivを消すとか...
<div id=”ssr”> ここにサーバーで出力した結果を埋め込む </div>
<div id=”react-app”> ここはReactが使う</div>
なぜClojureでのSSRは難しいか
Clojureに限らず難しい問題(react-rails, React.NET, react-python, react-php-v8jsな
どは公式に出ている...)
● Reactのレンダリングは、同一のものをHTMLに埋め込んで返せばいい訳ではない
○ data-reactidの指定と、data-react-checksumの指定が必要
○ data-reactidを埋め込んだHTMLに対してadler32でチェックサムを作成
○ ただ、0.14.0 -> 15.0で少し変更があった (data-reactidベースからdata-reactrootベースへ)
■ https://facebook.github.io/react/blog/2016/04/07/react-v15.html
● Reactと違うエコシステム、違うテンプレートスタイル
Clojureでの実装方法
大きく分けて2種類
● 独自にReactのdomを再実装
○ Rum
○ foam
○ cellophane
○ デメリットについて
● Javaのnashornを利用
○ ReactのJavaScriptコードを呼び出す
○ デメリットについて
● 別の道... ClojureScriptでNode.jsサーバーを立てる
ClojureのReactラッパー系の
ライブラリの現状について
Om
Omのバージョン0.9.0
バージョン1.0となる予定のOm-nextが開発中
● Omに対しては.cljc内でClojure用にfoamというライブラリを使う
○ https://github.com/arohner/foam
(:require #?(:clj [foam.core :as om]
:cljs [om.core :as om])
#?(:clj [foam.dom :as dom]
:cljs [om.dom :as dom]))
Om-next
Om-nextは、1.0.0-alpha 45にてサーバーサイドレンダリングが搭載されたが、
試したもののまだうまく動かせなかった
● 今すぐ使いたいならCellophaneが吉
○ https://github.com/ladderlife/cellophane
(:require #?@(:cljs [[om.next :as om :refer-macros [defui]]
[om.dom :as h]]
:clj [[cellophane.next :as om :refer [defui]]
[cellophane.dom :as h]]))
Reagent / Re-frame
Reagentでは、nashornを使った仕組みが提案されている
● Reagent Cook Book
○ https://github.com/reagent-project/reagent-cookbook/tree/master/recipes/reagent-server-rende
ring
○ プラクティスとして提供
○ たぶん公式の機構はまだない ?
Clojureのテンプレート系ライブラリについて
● sablono (hiccup系)
○ Issueとしてはある
■ Server-side rendering · Issue #111 · r0man/sablono
https://github.com/r0man/sablono/issues/111
● kioo (enlive系)
○ こちら、未調査(詳しい人教えてください )
Rum
Rumはもともと、Client / Serverを考慮して作られている
他のClojureライブラリでSSRの話が出るとき、Rumのようにしたいと
話題にあがったりする
他のReact再実装系コードの参考になっているのでは
親和性としては最高かもしれない
● server_render.cljに実装がある
○ https://github.com/tonsky/rum/blob/gh-pages/src/rum/server_render.clj
その他のReactラッパー系ライブラリ
● Quiescent
○ https://github.com/levand/quiescent
○ 特に公式サポートはなし ?
● Brutha
○ https://github.com/weavejester/brutha
○ 特に公式サポートはなし
おれたちにはcljcがある!
UIコンポーネントには、.cljcを使おう
● cljcを使うことでUIコンポーネントがClojure、ClojureScript共通の部品となる
● (js/console.log “HOGE”)とかJS独自の処理を書くと、
コンパイルエラーになるので良い
● コンポーネントにブラウザ独自のロジックなどが入らないように気をつける必要
あり
● ClojureのSSR込みなWebアプリケーションはどうcljcを使うか大事
まとめ
まとめ
● Om-nextは大いに期待できそうだ
● Reagent / Re-frameはエコシステムによって改善されそうな気がする
● Rumは偉大。 ただ、事例がよくわからなくて未知数感ある

More Related Content

What's hot

Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんKazuhiro Hara
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成shigeki_ohtsu
 
OSS Product feat. Gradle
OSS Product feat. GradleOSS Product feat. Gradle
OSS Product feat. GradleYasuharu Nakano
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境についてKazuhiro Hara
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方Yuta Matsumura
 
Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築kamiyam .
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
GradleどうでしょうTakuma Watabiki
 
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Yutaro Miyazaki
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_introGws 20141024 gradle_intro
Gws 20141024 gradle_introNobuhiro Sue
 
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみたAzure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみたエンジニア勉強会 エスキュービズム
 
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装kidach1
 
One Time Binding & Digest Loop
One Time Binding & Digest LoopOne Time Binding & Digest Loop
One Time Binding & Digest LoopKon Yuichi
 
Gradle入門
Gradle入門Gradle入門
Gradle入門orekyuu
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、ReactのベストプラクティスとバッドプラクティスKohei Asai
 
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorbSpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorbYoutarou TAKAHASHI
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみたKazuto Kusama
 
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)kojiokb
 
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜Kazuya Hiruma
 

What's hot (20)

Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
 
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリングReact Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 
OSS Product feat. Gradle
OSS Product feat. GradleOSS Product feat. Gradle
OSS Product feat. Gradle
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
 
Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築Grunt.jsを使った Expressの開発環境構築
Grunt.jsを使った Expressの開発環境構築
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
Gradleどうでしょう
 
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_introGws 20141024 gradle_intro
Gws 20141024 gradle_intro
 
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみたAzure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
 
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
 
One Time Binding & Digest Loop
One Time Binding & Digest LoopOne Time Binding & Digest Loop
One Time Binding & Digest Loop
 
Gradle入門
Gradle入門Gradle入門
Gradle入門
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
 
SpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorbSpockからRSpecにきたときの気づき #coedorb
SpockからRSpecにきたときの気づき #coedorb
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
 
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
Google Cloud Messaging for Android ことはじめ(Eclipseから動かしてみる編)
 
Scalaで実装するGC
Scalaで実装するGCScalaで実装するGC
Scalaで実装するGC
 
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
 

Similar to Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について

SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザインKazuhiro Hara
 
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmRedux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmchuck h
 
Play frameworkの概要
Play frameworkの概要Play frameworkの概要
Play frameworkの概要Shuhei Kaneko
 
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作terurou
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る健一 辰濱
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2Moto Yan
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間Matsuo Obu
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うかYutaka Tachibana
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphOshitari_kochi
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話nixiesan
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"t8kobayashi
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with DockerOshitari_kochi
 
20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolumet8kobayashi
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksqlMitsutoshi Kiuchi
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowlerTakuro Sasaki
 
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれからReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれからYusuke Murata
 

Similar to Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について (20)

SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmRedux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
 
Unityでreflection入門
Unityでreflection入門Unityでreflection入門
Unityでreflection入門
 
Play frameworkの概要
Play frameworkの概要Play frameworkの概要
Play frameworkの概要
 
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL Graph
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
 
RESTful Webサービス
RESTful WebサービスRESTful Webサービス
RESTful Webサービス
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with Docker
 
20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume20190410 cnjp rancher-flexvolume
20190410 cnjp rancher-flexvolume
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれからReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
 

More from Kazuhiro Hara

About Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend DayAbout Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend DayKazuhiro Hara
 
Gatsby & React Static
Gatsby & React StaticGatsby & React Static
Gatsby & React StaticKazuhiro Hara
 
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話Kazuhiro Hara
 
Clojure.tokyo.descjop
Clojure.tokyo.descjopClojure.tokyo.descjop
Clojure.tokyo.descjopKazuhiro Hara
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介Kazuhiro Hara
 
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 JavaWebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 JavaKazuhiro Hara
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会Kazuhiro Hara
 
-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会Kazuhiro Hara
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードKazuhiro Hara
 
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころsbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころKazuhiro Hara
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションKazuhiro Hara
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketKazuhiro Hara
 
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...Kazuhiro Hara
 
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう
WP Jelly vol.01 WordPress管理画面にメニューを追加しようWP Jelly vol.01 WordPress管理画面にメニューを追加しよう
WP Jelly vol.01 WordPress管理画面にメニューを追加しようKazuhiro Hara
 
Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話Kazuhiro Hara
 
MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会Kazuhiro Hara
 
Cakephp And Wordpress
Cakephp And WordpressCakephp And Wordpress
Cakephp And WordpressKazuhiro Hara
 

More from Kazuhiro Hara (20)

MDX with Next.js
MDX with Next.jsMDX with Next.js
MDX with Next.js
 
MDX and Next.js
MDX and Next.jsMDX and Next.js
MDX and Next.js
 
About Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend DayAbout Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend Day
 
Gatsby & React Static
Gatsby & React StaticGatsby & React Static
Gatsby & React Static
 
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
 
Clojure.tokyo.descjop
Clojure.tokyo.descjopClojure.tokyo.descjop
Clojure.tokyo.descjop
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
 
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 JavaWebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
 
-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
 
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころsbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
 
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう
WP Jelly vol.01 WordPress管理画面にメニューを追加しようWP Jelly vol.01 WordPress管理画面にメニューを追加しよう
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう
 
Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話
 
MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会
 
Cakephp And Wordpress
Cakephp And WordpressCakephp And Wordpress
Cakephp And Wordpress
 

Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について