Soumettre la recherche
Mettre en ligne
フロント作業の効率化
•
80 j'aime
•
29,963 vues
Yuto Yoshinari
Suivre
サイバーエージェント、フロントエンドCAMP第一日程の技術講義資料です
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 85
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門
Sou Lab
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
Shin Takeuchi
JavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなこと
Mayu Kimura
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
Kazuki Akiyama
マルチデバイス時代の高速化
マルチデバイス時代の高速化
Shin Takeuchi
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
Nishida Kansuke
小規模案件で作られた秘伝のタレ
小規模案件で作られた秘伝のタレ
Muyuu Fujita
Recommandé
WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門
Sou Lab
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
現場で使える効果的なHTML&CSS構造設計(Effective HTML&CSS)
Shin Takeuchi
JavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなこと
Mayu Kimura
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
Kazuki Akiyama
マルチデバイス時代の高速化
マルチデバイス時代の高速化
Shin Takeuchi
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
Nishida Kansuke
小規模案件で作られた秘伝のタレ
小規模案件で作られた秘伝のタレ
Muyuu Fujita
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
baserCMSのstripe連携プラグインを作った話
baserCMSのstripe連携プラグインを作った話
Tatsuhiko Uchiba
モテる JavaScript
モテる JavaScript
Osamu Monoe
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
Nishida Kansuke
Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法
Maboroshi.inc
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
今日から使える! Sass/compass ゆるめ勉強会
今日から使える! Sass/compass ゆるめ勉強会
Yuji Nojima
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
Yasuhito Yabe
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
Masashi Murakami
今日から使える! HTML/CSS/JSの シンプルテクニック15選
今日から使える! HTML/CSS/JSの シンプルテクニック15選
Horiguchi Seito
閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
Muyuu Fujita
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
Shin Takeuchi
WordCamp Yokohama 2010 Komori
WordCamp Yokohama 2010 Komori
masaaki komori
Mroongaを選んだ理由と ちょっと嬉しかった話
Mroongaを選んだ理由と ちょっと嬉しかった話
Terui Masashi
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
Koji Nakamura
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Takuro Sasaki
今日はMongoDBの話はしない
今日はMongoDBの話はしない
Akihiro Kuwano
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
コーディングが上達するコツ
コーディングが上達するコツ
evol-ni
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
インタラクションデザイン、その前に -UXなまトーク vol.2
インタラクションデザイン、その前に -UXなまトーク vol.2
Toshiaki Otsuka
IxD of AWA - インタラクションの考え方
IxD of AWA - インタラクションの考え方
hidetoshi murohashi
Contenu connexe
Tendances
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
baserCMSのstripe連携プラグインを作った話
baserCMSのstripe連携プラグインを作った話
Tatsuhiko Uchiba
モテる JavaScript
モテる JavaScript
Osamu Monoe
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
Nishida Kansuke
Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法
Maboroshi.inc
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
今日から使える! Sass/compass ゆるめ勉強会
今日から使える! Sass/compass ゆるめ勉強会
Yuji Nojima
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
Yasuhito Yabe
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
Masashi Murakami
今日から使える! HTML/CSS/JSの シンプルテクニック15選
今日から使える! HTML/CSS/JSの シンプルテクニック15選
Horiguchi Seito
閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
Muyuu Fujita
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
Shin Takeuchi
WordCamp Yokohama 2010 Komori
WordCamp Yokohama 2010 Komori
masaaki komori
Mroongaを選んだ理由と ちょっと嬉しかった話
Mroongaを選んだ理由と ちょっと嬉しかった話
Terui Masashi
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
Koji Nakamura
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Takuro Sasaki
今日はMongoDBの話はしない
今日はMongoDBの話はしない
Akihiro Kuwano
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
コーディングが上達するコツ
コーディングが上達するコツ
evol-ni
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
Tendances
(20)
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
baserCMSのstripe連携プラグインを作った話
baserCMSのstripe連携プラグインを作った話
モテる JavaScript
モテる JavaScript
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
今日から使える! Sass/compass ゆるめ勉強会
今日から使える! Sass/compass ゆるめ勉強会
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
今日から使える! HTML/CSS/JSの シンプルテクニック15選
今日から使える! HTML/CSS/JSの シンプルテクニック15選
閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
WordCamp Yokohama 2010 Komori
WordCamp Yokohama 2010 Komori
Mroongaを選んだ理由と ちょっと嬉しかった話
Mroongaを選んだ理由と ちょっと嬉しかった話
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
今日はMongoDBの話はしない
今日はMongoDBの話はしない
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
コーディングが上達するコツ
コーディングが上達するコツ
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
En vedette
インタラクションデザイン、その前に -UXなまトーク vol.2
インタラクションデザイン、その前に -UXなまトーク vol.2
Toshiaki Otsuka
IxD of AWA - インタラクションの考え方
IxD of AWA - インタラクションの考え方
hidetoshi murohashi
20150806_UXnama_Goodpatch
20150806_UXnama_Goodpatch
Satoru MURAKOSHI
インタラクションデザインの前のはなし UX生トークvol.2
インタラクションデザインの前のはなし UX生トークvol.2
井上 誠
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
Taku ogawa
UXデザイナーの生存確認と最新事情 | UXなまトーク
UXデザイナーの生存確認と最新事情 | UXなまトーク
Toshiaki Otsuka
UXデザインの居場所:UXなまトーク資料
UXデザインの居場所:UXなまトーク資料
Satoru MURAKOSHI
アメーバピグのユーザ体験を定量/定性で捉える方法
アメーバピグのユーザ体験を定量/定性で捉える方法
寛 水野
なぜUXをデザインしているのか
なぜUXをデザインしているのか
Mikihiro Fujii
UXはじめの一歩
UXはじめの一歩
井上 誠
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
勝成 鈴江
SIG-Audio#6 プラグインを書かなくてもここまで出来る!Unityサウンド
SIG-Audio#6 プラグインを書かなくてもここまで出来る!Unityサウンド
IGDA Japan SIG-Audio
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
Takao Sumitomo
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
Akira Inoue
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
Terui Masashi
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
Yasushi Kato
実践アニメーション
実践アニメーション
Naoya Yunoue
TypeScript超入門
TypeScript超入門
Narami Kiyokura
ウェブデザインにおける動きの演出について - WCAN 2014 Autumn
ウェブデザインにおける動きの演出について - WCAN 2014 Autumn
takuo yamada
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
En vedette
(20)
インタラクションデザイン、その前に -UXなまトーク vol.2
インタラクションデザイン、その前に -UXなまトーク vol.2
IxD of AWA - インタラクションの考え方
IxD of AWA - インタラクションの考え方
20150806_UXnama_Goodpatch
20150806_UXnama_Goodpatch
インタラクションデザインの前のはなし UX生トークvol.2
インタラクションデザインの前のはなし UX生トークvol.2
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
UXデザイナーの生存確認と最新事情 | UXなまトーク
UXデザイナーの生存確認と最新事情 | UXなまトーク
UXデザインの居場所:UXなまトーク資料
UXデザインの居場所:UXなまトーク資料
アメーバピグのユーザ体験を定量/定性で捉える方法
アメーバピグのユーザ体験を定量/定性で捉える方法
なぜUXをデザインしているのか
なぜUXをデザインしているのか
UXはじめの一歩
UXはじめの一歩
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
SIG-Audio#6 プラグインを書かなくてもここまで出来る!Unityサウンド
SIG-Audio#6 プラグインを書かなくてもここまで出来る!Unityサウンド
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
実践アニメーション
実践アニメーション
TypeScript超入門
TypeScript超入門
ウェブデザインにおける動きの演出について - WCAN 2014 Autumn
ウェブデザインにおける動きの演出について - WCAN 2014 Autumn
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Similaire à フロント作業の効率化
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
terurou
Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
Hishikawa Takuro
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
normalian
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
PHPフレームワーク入門
PHPフレームワーク入門
Sho A
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
Kazumi IWANAGA
Startup JavaScript
Startup JavaScript
Akinari Tsugo
Eight meets AWS
Eight meets AWS
Tetsuya Mase
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験
Toshio Ehara
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまで
girigiribauer
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
Yusuke Wada
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
㉘HTML5+CSS3でアニメーション!
㉘HTML5+CSS3でアニメーション!
Nishida Kansuke
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
ナウなヤングにCloud Formationが流行ってほしい
ナウなヤングにCloud Formationが流行ってほしい
Sugawara Genki
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
KinebuchiTomo
Similaire à フロント作業の効率化
(20)
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
Jubatusでマルウェア分類
Jubatusでマルウェア分類
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
PHPフレームワーク入門
PHPフレームワーク入門
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
Startup JavaScript
Startup JavaScript
Eight meets AWS
Eight meets AWS
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験
大規模なJavaScript開発の話
大規模なJavaScript開発の話
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまで
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
㉘HTML5+CSS3でアニメーション!
㉘HTML5+CSS3でアニメーション!
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
ナウなヤングにCloud Formationが流行ってほしい
ナウなヤングにCloud Formationが流行ってほしい
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
Dernier
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Dernier
(7)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
フロント作業の効率化
1.
フロント作業の 効率化@y_yoshinari
2.
簡単に自己紹介 @y_yoshinari • フロントエンドエンジニアです • 2013年度新卒入社です
(そろそろ入社して1年半) • なぞってピグキッチンというサービスを制作しています
3.
Webでこんなの作れるんだー的な感じで、後で遊んでみてもらえると嬉しいです(という宣伝)
4.
突然ですが、 このインターンの開発期間は何日でしょう!
5.
そうですね 5日間ですね
6.
時間がないですね
7.
ってことで
8.
フロント作業の 効率化@y_yoshinari もう1度テーマを確認
9.
Agenda • HTMLの効率化 • CSSの効率化 •
JavaScriptの効率化 • Grunt • Yeoman
10.
HTML
11.
入力の効率化
12.
Emmet • Zen-Codingの次期バージョン • HTML,
CSSの入力を簡略化出来る • プラグインをインストールするだけで使える
13.
Ctrl + e
14.
例1 nav>ul#menu>li*5>a[href=#]{Item $}
15.
例1 nav>ul#menu>li*5>a[href=#]{Item $} <nav> <ul
id="menu"> <li><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> <li><a href="#">Item 4</a></li> <li><a href="#">Item 5</a></li> </ul> </nav> Ctrl + e
16.
例2 !
17.
例2 ! <!DOCTYPE html> <html lang="en"> <head>
<meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html> Ctrl + e
18.
テンプレートによる効率化
19.
テンプレートエンジン • HTMLのひな形を元にプログラムで加工し、 画面に出力するためのライブラリ
20.
21.
例 <ul> <li>太郎:25歳</li> <li>次郎:23歳</li>
<li>花子:22歳</li> </ul> var value = { “userlist”: [ { “name”: “太郎”, “age”: 25 }, { “name”: “次郎”, “age”: 23 }, { “name”: “花子”, “age”: 22 } ] } こんな形式にしたい
22.
var value =
{ “userlist”: [ { “name”: “太郎”, “age”: 25 }, { “name”: “次郎”, “age”: 23 }, { “name”: “花子”, “age”: 22 } ] }
23.
<script id="input" type="text/x-handlebars-template"> <ul>
{{#each userlist}} <li>{{name}}:{{age}}歳</li> {{/each}} </ul> </script> <div id=“output”></div> var value = { “userlist”: [ { “name”: “太郎”, “age”: 25 }, { “name”: “次郎”, “age”: 23 }, { “name”: “花子”, “age”: 22 } ] }
24.
<script id="input" type="text/x-handlebars-template"> <ul>
{{#each userlist}} <li>{{name}}:{{age}}歳</li> {{/each}} </ul> </script> <div id=“output”></div> var value = { “userlist”: [ { “name”: “太郎”, “age”: 25 }, { “name”: “次郎”, “age”: 23 }, { “name”: “花子”, “age”: 22 } ] } var template = Handlebars.compile($('#input').html());
25.
<script id="input" type="text/x-handlebars-template"> <ul>
{{#each userlist}} <li>{{name}}:{{age}}歳</li> {{/each}} </ul> </script> <div id=“output”></div> var values = { “userlist”: [ { “name”: “太郎”, “age”: 25 }, { “name”: “次郎”, “age”: 23 }, { “name”: “花子”, “age”: 22 } ] } var template = Handlebars.compile($('#input').html()); $('#output').html(template(value));
26.
Handlebarsに関する+α • ループ文だけでなく、if 文も使える •
ヘルパー関数を自作することも出来る • コードの中でコンパイルしなくても、予めコ ンパイルしておくことも出来る(早くなる)
27.
CSS
28.
入力の効率化
29.
またEmmetの紹介です
30.
例 db => display:
block; tac => text-align: center; tdn => text-decoration: none; poa => position: absolute; m:a => margin: auto; w50 => width: 50px; bg+ => background: #fff url() 0 0 no-repeat; -bdrs10 => -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px;
31.
チーム開発における効率化
32.
プロパティの並び順を決める • 複数人がコードを触る際に触りやすくなる • gzip圧縮の効率が上がる display float,
clear position top left right.... width height margin padding border color background font-size font-weight text-align z-index overflow
33.
CSSの設計手法を用いる • 予測、再利用、保守、拡張がしやすくなる • OOCSS,
SMACSS, MCSSなどが存在する • また、クラス名などの付け方の考え方として BEMという考え方も存在する
34.
この本で詳しく説明されてます
35.
プリプロセッサによる効率化
36.
CSSプリプロセッサ • コンパイルをするとCSSに変換される • ネイティブなCSSが持たない機能を提供
37.
38.
Stylusの思想 body { font: 12px
Helvetica, Arial, sans-serif; } a.button { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }
39.
ブレス({})は省略できる? body font: 12px Helvetica,
Arial, sans-serif; a.button -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;
40.
セミコロン(;)も省略できる? body font: 12px Helvetica,
Arial, sans-serif a.button -webkit-border-radius: 5px -moz-border-radius: 5px border-radius: 5px
41.
コロン(:)も省略できる? body font 12px Helvetica,
Arial, sans-serif a.button -webkit-border-radius 5px -moz-border-radius 5px border-radius 5px
42.
同じ事を繰り返し書かないように border-radius() -webkit-border-radius arguments -moz-border-radius arguments border-radius
arguments body font 12px Helvetica, Arial, sans-serif a.button border-radius(5px)
43.
自然なmixinに border-radius() -webkit-border-radius arguments -moz-border-radius arguments border-radius
arguments body font 12px Helvetica, Arial, sans-serif a.button border-radius 5px
44.
便利な機能は外出ししよう @import ‘vendor’ body font 12px
Helvetica, Arial, sans-serif a.button border-radius 5px
45.
独自に関数を定義する事もできます sum(nums...) sum = 0 sum
+= n for n in nums sum(1 2 3 4) // => 10
46.
それらは全てオプションです fonts = helvetica,
arial, sans-serif body { padding: 50px; font: 14px/1.4 fonts; }
47.
ちなみに、 今の例は公式サイトにそのまま載っています http://learnboost.github.io/stylus/
48.
CSSへの変換方法 /* style.styl */ body
color red p color black
49.
CSSへの変換方法 stylus ファイル名.styl =>
ファイル名.cssが生成される /* style.styl */ body color red p color black
50.
CSSへの変換方法 stylus ファイル名.styl =>
ファイル名.cssが生成される /* style.styl */ body color red p color black /* style.css */ body { color: #f00; } body p { color: #000; }
51.
JavaScript
52.
車輪の再発明をしない効率化
53.
jQuery, Zepto • DOMアクセスなどを簡略化 //
class名がnameのp要素に太郎を挿入 $( "p.name" ).html( “太郎" );
54.
jQuery, Zepto • DOMアクセスなどを簡略化 //
class名がnameのp要素に太郎を挿入 $( "p.name" ).html( “太郎" ); // id名がbutton-containerのボタンをクリックした際に、 // id名がbanner-messageの要素を表示 var hiddenBox = $( "#banner-message" ); $( "#button-container button" ).on( "click", function( event ) { hiddenBox.show(); });
55.
Underscore, Lo-Dash • ユーティリティライブラリ //
イテレーター _.each([1, 2, 3], function (element, index, list) { console.log(element + ‘ ’); }); //=> 1 2 3 _.each({one: 1, two: 2, three: 3}, function (value, key, list) { console.log(value + ‘ ’); }); //=> 1 2 3
56.
Underscore, Lo-Dash • ユーティリティライブラリ //
イテレーター _.each([1, 2, 3], function (element, index, list) { console.log(element + ‘ ’); }); //=> 1 2 3 _.each({one: 1, two: 2, three: 3}, function (value, key, list) { console.log(value + ‘ ’); }); //=> 1 2 3 // マッピング _.map([1, 2, 3], function (num) { return num * 3; }); //=> [3, 6, 9]
57.
RequireJS • コードをモジュール化して分割出来る • 読み込みを非同期に出来る •
依存関係を明示化出来る • WebPackやBrowserifyなども見てみると良いかも // モジュールaを読み込む var a = require('a');
58.
Bucks.js • フロー制御系ライブラリ • 逐次実行(直列)も非同期実行(並列)も出来る •
入れ子地獄にならないコードが書ける! • 他にasync, jQuery.Deferred, Q, Whenなども存 在する
59.
Bucks.js • 逐次実行(直列) var bucks
= new Bucks(); bucks .add(function (err, res, next) { setTimeout(function () { next(); }, 1000); }) .add(function (err, res, next) { setTimeout(function () { next(); }, 1000); }) .end();
60.
Bucks.js • 非同期実行(並列) var bucks
= new Bucks(); bucks .parallel([ function (err, res, next) { setTimeout(function () { next(); }, 1000); }, function (err, res, next) { setTimeout(function () { next(); }, 1000); } ]) .end();
61.
ゲーム作る人向け • enchant.js, createJS,
Pixi.js
62.
コードを頑健化する効率化
63.
MV*アーキテクチャ • AngularJS, Backbone.js,
Knockout.js, Vue.js • JavaScriptフレームワーク • 使いこなせれば強力です
64.
MV*アーキテクチャ • ちなみにうちのチームではbeezという社内開 発のフレームワークを使っています https://github.com/CyberAgent/beez
65.
AltJS • Dart, CoffeeScript,
TypeScript • コンパイルしてJavaScriptに変換される言語 #import('dart:html'); void main() { final String s = 'Hello, Dart!’; updateText(s); } void updateText(String s) { var elem = query('#text'); elem.text = 'message: ${s}'; } Dart
66.
Grunt
67.
いろいろ見てきたけど、 • handlebarsのプリコンパイル • stylusのコンパイル •
AltJSのコンパイル とかとか、やることいっぱい
68.
それぞれコンパイルするの 面倒くさい
69.
Grunt • タスクランナー • 予め設定しておいたタスクをまとめて走らせ ることが出来る •
自動化することも出来る
70.
例:stylus + CoffeeScript module.exports
= function(grunt) { grunt.initConfig({ stylus: { compile: { files: { 'path/to/result.css': 'path/to/source.styl' } } }, coffee : { compile: { files: { 'path/to/result.js': 'path/to/source.coffee' } } } }); grunt.loadNpmTasks('grunt-contrib'); grunt.registerTask('default', ['stylus', 'coffee']); };
71.
例:stylus + CoffeeScript module.exports
= function(grunt) { grunt.initConfig({ stylus: { compile: { files: { 'path/to/result.css': 'path/to/source.styl' } } }, coffee : { compile: { files: { 'path/to/result.js': 'path/to/source.coffee' } } } }); grunt.loadNpmTasks('grunt-contrib'); grunt.registerTask('default', ['stylus', 'coffee']); }; grunt
72.
でも毎回 grunt を叩くのすら 面倒くさい
73.
ファイルの変更を監視させる module.exports = function(grunt)
{ grunt.initConfig({ stylus: { … }, coffee: { … }, watch: { stylus: { files: ['path/to/source.styl'], tasks: 'stylus' }, coffee: { files: ['path/to/source.coffee'], tasks: 'coffee' } } }); grunt.loadNpmTasks('grunt-contrib'); grunt.registerTask('default', 'watch'); };
74.
ファイルの変更を監視させる grunt module.exports = function(grunt)
{ grunt.initConfig({ stylus: { … }, coffee: { … }, watch: { stylus: { files: ['path/to/source.styl'], tasks: 'stylus' }, coffee: { files: ['path/to/source.coffee'], tasks: 'coffee' } } }); grunt.loadNpmTasks('grunt-contrib'); grunt.registerTask('default', 'watch'); };
75.
他にもいろいろ出来ます • スプライトシートの作成 • WebFontの作成 •
ファイルのminify • ファイルのgzip圧縮 とかとか、他にもいっぱい
76.
後継でgulpってのもあります • こっちの方が設定ファイルが短く書ける • しかも早い •
Gruntも使ったことなかったら、こっちの方が 取っ付きやすいかもです
77.
Yeoman
78.
新しいプロジェクトを作るとき • ライブラリとか、gruntの設定ファイルとか、 前に使ったプロジェクト構成と同じ構成でや りたい
79.
毎回環境構築をするのも 面倒くさい
80.
Yeoman • スキャフォールディング(足場組み)ツール • 自身の環境を使い回すことが出来る
81.
最後に
82.
いろいろ見てきたけど 5日間しか期間が無いので 自分たちでどこまで使えるのか 本当に自分たちのサービスに合っていのるかを考えて 取捨選択して使ってみると良いと思います。
83.
あとメッチャ浅くしか説明していないので 興味があるものは自分で調べてみてください。 調べてみて分からなかったら メンター陣に質問してもらえると!
84.
今回話した技術は大体これに書いてあります
85.
ではでは、 5日間頑張っていきましょう!
Télécharger maintenant