SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Backbone.js
+ CoffeeScript
    +RonR
    Cohei Aoki
     @coa00
About Me

• 音楽や映像を生成するAlgorithmのCodeを
 書くのが好き。

• インタラクティブなアート好き。
My GARAKUTA Works




Faderの動きで音を演奏      波形を8bitっぽい映像




Ledの光を音に変換        時間で映像を歪める
本日のお話
JavaScriptを使ったアプリケーション
程度の中規模程度を行う環境についてお
話します。

情報量の多いサイト、Facebookアプ
リ、PhoneGapアプリなどをつくるこ
とを想定しています。
規模が多くなってきた開発で抱える課題
1.JSにイベント制御、ステート管理、Viewの
  更新、 通信などが無秩序にはいりコードの可
  読性が下がる。

2.ライブラリやファイル分割を行った場合、取
  得時に複数のコネクションをはることになる
  ため、結合、コンプレスが必要になる。

3.CSSの記述の冗長化してしまう。

4.開発途中参加メンバーのキャッチアップに苦
  戦する・・・
(´・ω・`)
解決案


• MVCフレームワークを導入
 • Backbone.jsを導入
• ビルドスクリプトの作成
 • Cakeなどでbuild,watchなど作成
• sccs、saasなどの導入
今日はRonRを使って楽しましょう。
       (・∀・)
DEMO


• Backbone.jsとRonRでさくさくブ
 ログつくってから解説します。
Backbone.js
イベントの受信のフックにモデルとビューの更新を行え
る。ピタゴラスイッチスイッチみたいで気持ちいい。
Backbone.js

viewごとにエレメントを保持しているため、
更新を局所ができる。
Backbone.js


コレクションがおもしろい!!!
Backbone-rails
• Railsのコマンドを使ってBackbone.jsと
 JQueryTemplateを使ったサイトのひな
 形をくってくれるコマンドです。

• backbone::scaffoldでBackbone.js
 をつかった簡単なBlogのようなひな形を
 サーバサイドを含めすぐにつくることができ
ジェネレートされたコード
├── application.js
├── backbone
│ ├── bbblog.js.coffee
│ ├── models
│ │ └── post.js.coffee
│ ├── routers
│ │ └── posts_router.js.coffee
│ ├── templates
│ │ └── posts
│ │    ├── edit.jst.ejs
│ │    ├── index.jst.ejs
│ │    ├── new.jst.ejs
│ │    ├── post.jst.ejs
│ │    └── show.jst.ejs
│ └── views
│   └── posts
│     ├── edit_view.js.coffee
│     ├── index_view.js.coffee
│     ├── new_view.js.coffee
│     ├── post_view.js.coffee
│     └── show_view.js.coffee
└── posts.js.coffee
Backbone-rails

• backbone::scaffoldでBackbone.js
 をつかった簡単なBlogのようなひな形を
 サーバサイドを含めすぐにつくることができ
 ます。
Backbone-rails

 Router,View,テンプレートが追加されます。


rails g backbone:router ${contoller} $
{page1} ${page2} ... ${pageN}
注意

• Backbone-railsで生成されるコー
 ドはCoffeeScriptです。

• CoffeeScript嫌いな人には合わな
 いかもしれません。
asset-pipeline
冒頭でお話したビルドの解決策

• JavaScript,CSSなどを自動的に圧縮
 してくれる機能。

• CSSやJSのキャッシュなども対応して
 くれる。

• hoge.css?20121001
SCCS/SaaS
• CSS内に共通変数をもたせることがで
 きる。(絶対座標計算などに便利)

• MixInを使うとよく使うパーツの
 CSS(ボタンなど)のモジュール化がで
 きる。

• 別クラスで定義したCSSを綺麗に使い
 まわせる。
CoffeeScript
• クラスの継承が可能でBackbone.js
 と相性がよい。

• コールされた関数からクラスのメンバ
 変数を参照できる。

• undefineとnullについての記述が
 楽。
DEMO



• 時間があればデモ
このあたりすべてサポートした
 フレームワークがあります。
ちょっと癖がありますがこちらもいいです!
ご清聴ありがとうございました!

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (6)

Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js
 
Vue.js ハンズオン資料
Vue.js ハンズオン資料Vue.js ハンズオン資料
Vue.js ハンズオン資料
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
 
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.js
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Backbone.js勉強会

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n