SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第4回
Ticklecode
Yoshinori Kobayashi 1
Railsで生産性を高めてくれる
「Asset Pipeline(アセットパイプライン)」
を理解する。
2
生まれは 奈良県 です
小林由憲(こばやしよしのり)
Twitter: @AsbyuKobayashi
ブログ: In Advance Only
・<link>、<script src=”...”>タグの通信コストが大きい
3
フロント(クライアント)側での問題点
・CSS、JavaScriptのデータサイズが肥大化
・CSS、JavaScript、HTMLを直接コーディングしにくい、生産性が悪い
・変更時にブラウザキャッシュがクリアされないため、トラブルが起こる
フレームワークで自動化することで負荷を軽減したい
Asset Pipeline
4
Asset Pipeline(アセットパイプライン)とは
Asset(アセット)
Pipeline(パイプライン)
有用なもの・貴重なものの意
Railsでは、JavaScript・CSS・画像ファイル・ERBなどを示す。
ルート、補給線の意
Railsでは、効率的な方法を提供するための一連の作業
5
①コンパ
イル
②統合 ③圧縮
④ダイジ
ェスト付
与
Asset Pipelineの流れ
コーディン
グ
ブラウジン
グ
Exp.CSS の場合
common.css.scss
buttons.css.scss
responsive.css.scss
common.css
buttons.css
responsive.css
application
.css
application
.css
※空白、改
行の除去
application-
39737udj....css① ③② ④
コーディングしやすい状態から、閲覧時は通信コストが効率化
できるように最適化される。
6
①コンパイル
デフォルトでサポートされている言語は、CSSに代わるSASS、
JavaScriptに代わるCoffeeScript、ERB。
【変換前】 ⇒ 【変換後】
common.css.scss ⇒ common.css
foobar.js.erb.coffee ⇒ foobar.js.erb ⇒ foobar.js
従来のCSS、JavaScriptでは記述が難しく、効率が悪い。
効率的に記述できる、Sass、CoffeeScriptなどの高級言語を使用。
これら高級言語は、らネイティブ言語への変換が必要。
【変換前 Sass】
// Regulation Margin
@for $i from 1 through 10{
$nm:$i * 5;
.mb#{$nm}{
margin-bottom:$nm * 1px !important;
}
}
【変換後 CSS】
.mb5 {
margin-bottom: 5px !important;
}
.mb10 {
margin-bottom: 10px !important;
}
:
7
②統合
1つのファイルにまとめて、通信回数を減らす。
<link>タグの通信コストが大きいため、記述回数を減らす。
【統合前】
common.css
buttons.css
responsive.css
【統合後】
application.css
【統合前】
<link href="common.css" rel="stylesheet" type="text/css">
<link href="buttons.css" rel="stylesheet" type="text/css">
<link href="responsive.css" rel="stylesheet" type="text/css">
【統合後】
<link href="application.css" rel="stylesheet" type="text/css">
8
③圧縮
改行、空行、コメントを取り除いて、サイズを縮小する。
【圧縮前】
$(window).load(function(){
// スライドイメージを表示
$('.bxslider img').css("visibility","visible");
// スライダーの開始とオプション
$('.bxslider').bxSlider({
auto: true,
captions:true
});
});
【圧縮後】
$(window).load(function(){$(".bxslider
img").css("visibility","visible"),$(".bxslider").bxSlider({auto:!0,captions:!0})});
9
④ダイジェスト付与
一度、レンダリング(表示処理)された、CSS・JavaScriptはWeb
ブラウザでキャッシュ(一時保存)される。
アセットを修正後は、Webブラウザで修正後を表示さたいために、
キャッシュを確実に破棄させる仕組みが必要。
ファイル名にダイジェストを付加するという方法。
<script src="/js/application-
908e25f4bf641868d8683022a5b62f54.js" ・・・
Rails3.1以前の仕組み
<script src="/js/application.js?1309495796" ・・・
※上手くキャッシュ破棄されないことがあるらしい。
10
まとめ
11
個人的な感想
・フロントツール(Grant、Gulp)よりスッキリしていて統
一感がある。
・Sass、CoffeeScriptのコーディングに集中できて、「あと
はよろしく!」やってくれるイメージ。
・development環境・production環境の違いなどの理解がも
っと必要。
アセットパイプライン | Rails日本語ドキュメント | Ruby STUDIO
http://ruby.studio-kingdom.com/rails/guides/asset_pipeline
http://railsguides.jp/asset_pipeline.html
アセットパイプライン — Rails ガイド
12
Ruby on Rails 4 アプリケーションプログラミング
著者:山田 祥寛
参考情報
http://railsguides.jp/asset_pipeline.html
5.2 SassとAsset Pipeline ― Rails チュートリアル
13
ご清聴ありがとうございました。

Mais conteúdo relacionado

Mais de Yoshinori Kobayashi

Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Yoshinori Kobayashi
 
個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩
個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩
個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩
Yoshinori Kobayashi
 
WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回
WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回
WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回
Yoshinori Kobayashi
 
WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示 編|WordPress...
WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示  編|WordPress...WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示  編|WordPress...
WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示 編|WordPress...
Yoshinori Kobayashi
 
WordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-Edo
WordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-EdoWordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-Edo
WordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-Edo
Yoshinori Kobayashi
 
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
Yoshinori Kobayashi
 
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Yoshinori Kobayashi
 
D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-
D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-
D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-
Yoshinori Kobayashi
 
jQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズ
jQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズjQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズ
jQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズ
Yoshinori Kobayashi
 
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
Yoshinori Kobayashi
 

Mais de Yoshinori Kobayashi (19)

Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
 
個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩
個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩
個人の成長に合わせた、WordPress学習方法とコミュニティへの関わり方|WordBench山梨 Vol.1:WordBench山梨 はじめの一歩
 
WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回
WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回
WordPressテンプレート階層を理解する。テーマカスタマイズに必要な5つのポイント!|WordPressもくもく勉強会 at コエド第6回
 
WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示 編|WordPress...
WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示  編|WordPress...WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示  編|WordPress...
WordPressで作る世界遺産サイト|Weather Underground Plugin を活用して、 世界の天気予報を表示 編|WordPress...
 
WordPressで作る世界遺産サイト|Youtube Data API を使って動画取得 編
WordPressで作る世界遺産サイト|Youtube Data API を使って動画取得 編WordPressで作る世界遺産サイト|Youtube Data API を使って動画取得 編
WordPressで作る世界遺産サイト|Youtube Data API を使って動画取得 編
 
WordPressで作る世界遺産サイト|Instagram API を使って現地フォト取得
WordPressで作る世界遺産サイト|Instagram API を使って現地フォト取得 WordPressで作る世界遺産サイト|Instagram API を使って現地フォト取得
WordPressで作る世界遺産サイト|Instagram API を使って現地フォト取得
 
WordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-Edo
WordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-EdoWordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-Edo
WordPressもくもく勉強会について― WordPressもくもく倶楽部 at コワーキングスペース 茅場町 Co-Edo
 
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
WordPressで作る世界遺産サイト|カスタムフィールドとカスタム投稿編
 
WordPressのテンプレートタグを理解する
WordPressのテンプレートタグを理解するWordPressのテンプレートタグを理解する
WordPressのテンプレートタグを理解する
 
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
 
D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-
D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-
D3.jsでのデータビジュアライゼーション -人口統計データから使い方を学ぶ-
 
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作るBootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
 
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
 
SEO:Google構造化データ、リッチスニペットについて
SEO:Google構造化データ、リッチスニペットについてSEO:Google構造化データ、リッチスニペットについて
SEO:Google構造化データ、リッチスニペットについて
 
jQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズ
jQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズjQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズ
jQuery UI Tabs で効率よくタブ機能を実現しよう! 14.05.23 HTML5 jQueryビギナーズ
 
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
 
ロリポップと簡単インストールについて|ゼロから始めるWordPress勉強会
ロリポップと簡単インストールについて|ゼロから始めるWordPress勉強会ロリポップと簡単インストールについて|ゼロから始めるWordPress勉強会
ロリポップと簡単インストールについて|ゼロから始めるWordPress勉強会
 
グリッドレイアウトを簡単に行うJavaScript!Masonry.js
グリッドレイアウトを簡単に行うJavaScript!Masonry.jsグリッドレイアウトを簡単に行うJavaScript!Masonry.js
グリッドレイアウトを簡単に行うJavaScript!Masonry.js
 
Portfolio yoshinori kobayashi
Portfolio yoshinori kobayashiPortfolio yoshinori kobayashi
Portfolio yoshinori kobayashi
 

Último

Último (12)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/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
 
論文紹介: 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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: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...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Railsで生産性を高めてくれる「Asset Pipeline(アセットパイプライン)」を理解する|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第4回