SlideShare a Scribd company logo
佐藤 竜之介(Ryunosuke SATO)
Sapporo.jsRuby勉強会@札幌-27
はじめる
Ember.js!!
~ Getting started with Ember.js ~
2013.09.28
もっと!
提供
Sapporo.js
Community for people who like JavaScript.
自己紹介
@tricknotes
I am a software developer who
love JavaScript and Ruby.
http://tricknotes.hateblo.jp/
I love OSS
I am a contributer
of Ember.js
/*
* advertising
* about Ember.js
*
* !!Important!!
*
2013.11.11
Ember.js ハンズオン
http://www.deos.co.jp/SK010.html
https://idobata.io
Idobata
東京Node学園祭2013
2013.10.26
http://nodefest.jp/2013/
Comming soon...
札幌市中央区Ruby会議01
2014.02.08 13:00
*/
よろしく
お願いします
佐藤 竜之介(Ryunosuke SATO)
Sapporo.jsRuby勉強会@札幌-27
はじめる
Ember.js!!
~ Getting started with Ember.js ~
2013.09.28
もっと!
http://emberjs.com/
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
Ember.js 1.0 released!
今日の目標
* Ember.js が何かわかる
* Ruby と一緒に使うことができる
Ember.js について...
今日の話
* Ember.js って何?
* Ember.js と Ruby
今日の話
* Ember.js って何?
* Ember.js と Ruby
最近の web アプリでは、
画面遷移がなく一画面でリア
クティブに操作できるアプリ
ケーションを見る機会が増え
ました
例えば...
Travis CI
Discourse
Idobata
なんでこんなリッチなアプリ
ケーションを作るのか?
ユーザ体験
でも、作るのは大変...
jQuery でのアプローチ
* HTML + CSS + JS の密結合
* データの多重管理問題
* DOM based architecture
* global な jQuery 関数による view の密結合
* Event の開放漏れ
* DOM の開放漏れ
などなど...
大変なところ
破綻した経験があるでのは?
jQuery based
architecture
そう、とても変更に弱いのです
責務による分割
メンテナンス性!!
TodoMVC
http://todomvc.com/
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
Ember.js のアプローチ
Router
Controller
View
Template
Model
URL とアプリケーションの対応づけ
アプリケーションコンテキストを保持
画面表示
ブラウザに表示される部分
永続化されているオブジェクト
Router
Controller
View
Template
Model
URL
ブラウザ
1. オブジェクトを取得
2. コントローラを用意
4. テンプレートを描画
ユーザ入力
遷移
3. オブジェクトとテンプレートをバインド
Router
Controller
View
Template
Model
URL
ブラウザ
1. オブジェクトを取得
2. コントローラを用意
4. テンプレートを描画
ユーザ入力
遷移
3. オブジェクトとテンプレートをバインド
開発者は
必要な部分だけを作る
Ember.js がやっていること
必ず必要になる処理をサポート
強力な命名規約
オブジェクトと表示のバインド
DOM 管理
-> フレームワーク
オブジェクトの監視
-> フレームワーク
使ってて気持ちいいか
-> 開発者
適切な役割分担
プログラマがアプリの本質に
集中できるよう、それ以外の
部分をサポートしてくれる!!
ここまでが、Ember.js の
基本的な考え方
チェックポイント
* すごいアプリケーションを作るための
フレームワークです
* プログラマーが快適に開発することを
サポートしてくれます
「Ember.js って何?」
今日の話
* Ember.js って何?
* Ember.js と Ruby
さぁ、ここからは実際に
Ember.js をはじめてみよう!
Ruby
と一緒に
対象バージョン
Ember.js 1.0.0
2013.09.28 現在、最新の安定版
ざっくりと基礎について
-- ここから --
http://emberjs.com/
Starter kit
関連ライブラリのセットアップ
前準備
jQuery 1.10.2
Handlebars 1.0.0
Ember.js 1.0.0
アプリケーションの初期化
Account = Ember.Application.create();
http://emberjs.com/
続きは demo を
ざっくりと基礎について
-- ここまで --
http://tricknotes.github.io/demo-for-osc2013do/
Demo アプリケーション
一から始める方はこちらを!!
http://www.slideshare.net/tricknotes/getting-started-with-emberjs
はじめる Ember.js
今日は Ruby と一緒に始めます
なんで Ruby と??
コミュニティ
文化
今日は、このデモアプリをさらに
実践的にしていきましょう
ファイルを適切に分割したい
case 1
1 ファイルだとちょっと...
https://gist.github.com/tricknotes/6556505
ファイル数が増え過ぎるのも...
コンポーネントが分割されていて
も、ファイルを分けられないと、
あんまり嬉しくない
とくに template !!
ember-rails
https://github.com/emberjs/ember-rails
for rails application
Asset Pipeline
$ tree
.
!"" application.js
!"" controllers
#   !"" sheet_index_controller.js
#   $"" sheet_new_controller.js
!"" models
#   !"" order_line.js
#   $"" sheet.js
!"" router.js
!"" routes
#   !"" sheets_index.js
#   $"" sheets_new.js
$"" templates
$"" sheets
!"" index.js.handlebars
$"" new.js.handlebars
Asset Pipeline
$ tree
.
!"" application.js
!"" controllers
#   !"" sheet_index_controller.js
#   $"" sheet_new_controller.js
!"" models
#   !"" order_line.js
#   $"" sheet.js
!"" router.js
!"" routes
#   !"" sheets_index.js
#   $"" sheets_new.js
$"" templates
$"" sheets
!"" index.js.handlebars
$"" new.js.handlebars
自動で全部のファイルが結合される
(application.js)
//= require_tree .
Asset Pipeline
$ tree
.
!"" application.js
!"" controllers
#   !"" sheet_index_controller.js
#   $"" sheet_new_controller.js
!"" models
#   !"" order_line.js
#   $"" sheet.js
!"" router.js
!"" routes
#   !"" sheets_index.js
#   $"" sheets_new.js
$"" templates
$"" sheets
!"" index.js.handlebars
$"" new.js.handlebars
<scripe src=”application.js”></script>
HTML からは 1 ファイルを読むだけ
(application.js)
//= require_tree .
Asset Pipeline
$ tree
.
!"" application.js
!"" controllers
#   !"" sheet_index_controller.js
#   $"" sheet_new_controller.js
!"" models
#   !"" order_line.js
#   $"" sheet.js
!"" router.js
!"" routes
#   !"" sheets_index.js
#   $"" sheets_new.js
$"" templates
$"" sheets
!"" index.js.handlebars
$"" new.js.handlebars
handlebars はファイル
(+ディレクトリ)名を
テンプレート名としてコンパイル
Asset Pipeline
$ tree
.
!"" application.js
!"" controllers
#   !"" sheet_index_controller.js
#   $"" sheet_new_controller.js
!"" models
#   !"" order_line.js
#   $"" sheet.js
!"" router.js
!"" routes
#   !"" sheets_index.js
#   $"" sheets_new.js
$"" templates
$"" sheets
!"" index.js.handlebars
$"" new.js.handlebars
<h1>帳票一覧</h1>
{{#unless this}}
まだ帳票は作成されていません
{{/unless}}
<ul>
{{#each}}
<li>
#{{id}}:
{{date createdAt}}
{{#link-to 'sheet' this}}
内容を見る
{{/link-to}}
</li>
{{/each}}
</ul>
テンプレート単位でファイルに分割できる
ember-middleman
for static site
https://github.com/tricknotes/ember-middleman
だいたい同じ感じ
途中で飽き 作成中なので
一緒にやりたいひと募集中
Asset pipeline 強力ですね!!
ここからは Rails 前提で
進めていきます
関連ライブラリの
バージョンを管理したい
case 2
ember-source
handlebars-source
(jquery-rails)
ember-rails に含まれている!!
(application.js)
//= require jquery
//= require handlebars
//= require ember
//= require_tree .
application.js に追記するだけ
アップデートが簡単!!
bundle update で
Ember.js が更新される
Asset pipelin ++
handlebars 以外の
選択肢がほしい
case 3
「HTML のタグ書くのが面倒!!」
というひと向けに...
haml で handlebars を記述
hamlbars
https://github.com/jamesotron/hamlbars
<h1>帳票一覧</h1>
{{#unless this}}
まだ帳票は作成されていません
{{/unless}}
<ul>
{{#each}}
<li>
#{{id}}:
{{date createdAt}}
{{#link-to 'sheet'
this}}
内容を見る
{{/link-to}}
</li>
{{/each}}
</ul>
%h1 帳票一覧
= hb ‘unless this’ do
まだ帳票は作成されていません
%ul
= hb ‘each’
%li
#{hb ‘id’}:
= hb ‘date createdAt’
= hb ‘link-to “sheet” this’ do
内容を見る
jade 風に handlebars を記述
emblem-rails
https://github.com/alexspeller/emblem-rails
<h1>帳票一覧</h1>
{{#unless this}}
まだ帳票は作成されていません
{{/unless}}
<ul>
{{#each}}
<li>
#{{id}}:
{{date createdAt}}
{{#link-to 'sheet'
this}}
内容を見る
{{/link-to}}
</li>
{{/each}}
</ul>
h1 帳票一覧
unless this
まだ帳票は作成されていません
ul
each
li
#{id}:
#{date createdAt}
#{link-to “sheet” this’}
内容を見る
erb 派は
handlebars のままで!
Backend サーバを
rails で作りたい
case 4
Ember.js と API をつなぐ部分
Ember Data
Ember.Model
(他にもいろいろあるけど...)
Ember Data
空前の魔改造ブーム
生まれ変わっている途中
これからに期待!!
https://github.com/emberjs/data
API とのやりとりで、
JSON の scheme と JS の
scheme をいちいち考えるのは
けっこう手間
ActiveModel::Serializers
https://github.com/rails-api/active_model_serializers
Ember Data
+
ActiveModel::Serializers
=
なんとなくいい感じに JSON の
scheme を扱ってくれる
class SheetSerializer < ActiveModel::Serializer
attributes :id, :created_at
has_many :order_lines,
embed: :objects,
include: true
end
Account.SheetSerializer =
DS.ActiveModelSerializer.extend({
attrs: {
orderLines: {embedded: 'always'}
}
});
Ruby 側のシリアライザ
JS 側のシリアライザ
{
“sheet”: {
“id”: 6,
“created_at”: "2013-09-21T15:59:24.001Z",
“order_lines”: [{
“id”: 10,
“product_name”: "ガラナ",
“unit_price”: 120,
“count”: 10
}, {
“id”: 11,
“product_name”: "豆乳",
“unit_price”: 98,
“count”: 30
}]
}
}
やりとりされる JSON の scheme
JS 側でのオブジェクトの保存
var sheet = Account.Sheet.createRecord();
sheet.save();
Ember Date が backend サーバに
リクエストを投げて保存する
Ember アプリをテストしたい
case 5
Capybara
.
├── capybara-webkit
├── Poltergeist
│ └── teaspoon
├── selemiun-webdriver
└── (konacha)
Ruby の JS テストツールたち
Capybara
.
├── capybara-webkit
├── Poltergeist
│ └── teaspoon
├── selemiun-webdriver
└── (konacha)
Ruby の JS テストツールたち
Poltergeist
https://github.com/jonleighton/poltergeist
Poltergeist
* PhantomJS の Capybara driver
* JS の debugger が使える
* テスト実行時に JS のエラーを検知できる
* スクリーンショットが撮れる
feature 'sheet を管理できる', js: true do
scenario 'sheet を作成できる' do
visit root_path
expect(page).to have_css('h1', text: '帳票登録')
within all('#new-sheet tr')[1] do
fill_in 'productName', with: 'ガラナ'
fill_in 'unitPrice', with: '120'
fill_in 'count', with: '3'
end
expect(page).to have_css('.total', text: '360')
click_button '登録する'
expect(page).to have_css('h1', text: '帳票一覧')
expect(page).to have_css('li', text: '#1')
end
end
単体テストは...?
konacha
teaspoon
ember-testing
うーん、よくわかりません
rails 版のソースコードはこちらに
https://github.com/tricknotes/ruby-sapporo-workshop-27-demo
今日のまとめ
* Ember.js はすごいアプリケーションを
作るためのフレームワークです
* 快適に開発する手助けをしてくれます
* Ruby のツールと相性がいいです
* 開発ツールはかなり整っているで、
この機会に始めてみましょう!
今日話さなかったこと
* Ember.js 自体について
* サーバからエラーのハンドリング
* Ember Data の闇
難しいところ
* 学習コストが高い
* 日本語の情報が少ない
* そもそも 1.0 の情報が少ない
for more information...
http://emberjs.com/guides/
http://stackoverflow.com/tags/ember.js/
http://discuss.emberjs.com/
ぜひみなさんも、
Ember.js を使った
快適なアプリケーション開発を
体感してみてください!!

More Related Content

What's hot (20)

Hello, Node.js
Hello, Node.jsHello, Node.js
Hello, Node.js
Shin Sekaryo
 
Nodeについて
NodeについてNodeについて
Nodeについて
Natsuki Yamanaka
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
Yuzo Hebishima
 
Rails あるある
Rails あるあるRails あるある
Rails あるある
Ryunosuke SATO
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
kamiyam .
 
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Shunsuke Watanabe
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~
Ryunosuke SATO
 
Node.js Hands-On
Node.js Hands-OnNode.js Hands-On
Node.js Hands-On
Akinari Tsugo
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
 
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
Nobuhiro Nakashima
 
jQueryで気をつけてほしいこと
jQueryで気をつけてほしいことjQueryで気をつけてほしいこと
jQueryで気をつけてほしいこと
良太 増子
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
 
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
Ryunosuke SATO
 
Node js 入門
Node js 入門Node js 入門
Node js 入門
Satoshi Takami
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
Yuzo Hebishima
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
 
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
kamiyam .
 
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
Shunsuke Watanabe
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~
Ryunosuke SATO
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
 
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
Nobuhiro Nakashima
 
jQueryで気をつけてほしいこと
jQueryで気をつけてほしいことjQueryで気をつけてほしいこと
jQueryで気をつけてほしいこと
良太 増子
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
 
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
Ryunosuke SATO
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
 

Similar to もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~ (20)

Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
20101106 ramaze発表
20101106 ramaze発表20101106 ramaze発表
20101106 ramaze発表
Fukui Osamu
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
Kohei Kadowaki
 
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
お父さんのための実用JavaScriptプログラミング~入門篇~
お父さんのための実用JavaScriptプログラミング~入門篇~お父さんのための実用JavaScriptプログラミング~入門篇~
お父さんのための実用JavaScriptプログラミング~入門篇~
Che Renkov
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
 
RESTとRailsスタイル
RESTとRailsスタイルRESTとRailsスタイル
RESTとRailsスタイル
Toru Kawamura
 
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
decode2016
 
丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
 
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
Hidetaka Okamoto
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
Yu Ito
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
20101106 ramaze発表
20101106 ramaze発表20101106 ramaze発表
20101106 ramaze発表
Fukui Osamu
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
 
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 
お父さんのための実用JavaScriptプログラミング~入門篇~
お父さんのための実用JavaScriptプログラミング~入門篇~お父さんのための実用JavaScriptプログラミング~入門篇~
お父さんのための実用JavaScriptプログラミング~入門篇~
Che Renkov
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
 
RESTとRailsスタイル
RESTとRailsスタイルRESTとRailsスタイル
RESTとRailsスタイル
Toru Kawamura
 
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
decode2016
 
丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
 
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
Hidetaka Okamoto
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
Yu Ito
 

More from Ryunosuke SATO (12)

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
 
gem の探し方
gem の探し方gem の探し方
gem の探し方
Ryunosuke SATO
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
Ryunosuke SATO
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
 
Testable JavaScript
Testable JavaScriptTestable JavaScript
Testable JavaScript
Ryunosuke SATO
 
Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへ
Ryunosuke SATO
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
Ryunosuke SATO
 
Node.jsってどうなの?
Node.jsってどうなの?Node.jsってどうなの?
Node.jsってどうなの?
Ryunosuke SATO
 
アジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことアジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたこと
Ryunosuke SATO
 
脱レガシー化計画
脱レガシー化計画脱レガシー化計画
脱レガシー化計画
Ryunosuke SATO
 
Pusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフPusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフ
Ryunosuke SATO
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
Ryunosuke SATO
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
Ryunosuke SATO
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
 
Social coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへSocial coding をもっと楽しみたいあなたへ
Social coding をもっと楽しみたいあなたへ
Ryunosuke SATO
 
Node.jsってどうなの?
Node.jsってどうなの?Node.jsってどうなの?
Node.jsってどうなの?
Ryunosuke SATO
 
アジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたことアジャイル的アプローチから見えてきたこと
アジャイル的アプローチから見えてきたこと
Ryunosuke SATO
 
脱レガシー化計画
脱レガシー化計画脱レガシー化計画
脱レガシー化計画
Ryunosuke SATO
 
Pusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフPusherとcanvasで作るリアルタイムグラフ
Pusherとcanvasで作るリアルタイムグラフ
Ryunosuke SATO
 

Recently uploaded (6)

ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
iPride Co., Ltd.
 
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Kazuki Ogiwara
 
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptxSecurity-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
TsukasaKomatsubara
 
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
Matsushita Laboratory
 
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
Toru Tamaki
 
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
Matsushita Laboratory
 
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
iPride Co., Ltd.
 
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Kazuki Ogiwara
 
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptxSecurity-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
TsukasaKomatsubara
 
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
Matsushita Laboratory
 
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
Toru Tamaki
 
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
Matsushita Laboratory
 

もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~