Suche senden
Hochladen
STORES.jp x AngularJS
•
39 gefällt mir
•
10,798 views
Keisuke Makino
Folgen
「AngularJSを業務で使いたいけど今一歩踏み出せない方のための勉強会」発表資料です。 http://eventdots.jp/event/52461
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 38
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
STORES.jpのそだてかた
STORES.jpのそだてかた
Keisuke Makino
noteをAngularJSで構築した話
noteをAngularJSで構築した話
Kon Yuichi
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
Mitsuru Ogawa
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
AngularJS入門の巻
AngularJS入門の巻
Toshio Ehara
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
Hiroyuki Kusu
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
Toshio Ehara
Directiveで実現できたこと
Directiveで実現できたこと
Kon Yuichi
Empfohlen
STORES.jpのそだてかた
STORES.jpのそだてかた
Keisuke Makino
noteをAngularJSで構築した話
noteをAngularJSで構築した話
Kon Yuichi
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
Mitsuru Ogawa
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
AngularJS入門の巻
AngularJS入門の巻
Toshio Ehara
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
Hiroyuki Kusu
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
Toshio Ehara
Directiveで実現できたこと
Directiveで実現できたこと
Kon Yuichi
Angular js開発事例
Angular js開発事例
Shun Takeyama
【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発
Hiroyuki Kusu
AngularJS入門の巻2
AngularJS入門の巻2
Toshio Ehara
Enterprise x AngularJS
Enterprise x AngularJS
Kenichi Kanai
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
Mizuho Sakamaki
スキスキIonic
スキスキIonic
Kon Yuichi
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
Angular2
Angular2
Kenichi Kanai
Angular jsの継続的なバージョンアップ
Angular jsの継続的なバージョンアップ
Kazuyoshi Tsuchiya
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
Naoki Yamada
エンタープライヤーのためのWeb Componentsハンズオン
エンタープライヤーのためのWeb Componentsハンズオン
Mitsuru Ogawa
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
Kei Yagi
俺とAngular JS 2
俺とAngular JS 2
Masayuki KaToH
[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ
hirooooo
喋って、DEMOで 伝える 僕がHerokuを使う理由
喋って、DEMOで 伝える 僕がHerokuを使う理由
Masaru Gushiken
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
剛志 森田
One-time Binding & $digest
One-time Binding & $digest
Hayashi Yuichi
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
Yuki Suzuki
Ng mtg#3
Ng mtg#3
Kenichi Kanai
Weitere ähnliche Inhalte
Was ist angesagt?
Angular js開発事例
Angular js開発事例
Shun Takeyama
【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発
Hiroyuki Kusu
AngularJS入門の巻2
AngularJS入門の巻2
Toshio Ehara
Enterprise x AngularJS
Enterprise x AngularJS
Kenichi Kanai
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
Mizuho Sakamaki
スキスキIonic
スキスキIonic
Kon Yuichi
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
Angular2
Angular2
Kenichi Kanai
Angular jsの継続的なバージョンアップ
Angular jsの継続的なバージョンアップ
Kazuyoshi Tsuchiya
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
Naoki Yamada
エンタープライヤーのためのWeb Componentsハンズオン
エンタープライヤーのためのWeb Componentsハンズオン
Mitsuru Ogawa
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
Kei Yagi
俺とAngular JS 2
俺とAngular JS 2
Masayuki KaToH
[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ
hirooooo
喋って、DEMOで 伝える 僕がHerokuを使う理由
喋って、DEMOで 伝える 僕がHerokuを使う理由
Masaru Gushiken
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
剛志 森田
One-time Binding & $digest
One-time Binding & $digest
Hayashi Yuichi
Was ist angesagt?
(20)
Angular js開発事例
Angular js開発事例
【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発
AngularJS入門の巻2
AngularJS入門の巻2
Enterprise x AngularJS
Enterprise x AngularJS
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
スキスキIonic
スキスキIonic
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0
Angular2
Angular2
Angular jsの継続的なバージョンアップ
Angular jsの継続的なバージョンアップ
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンタープライヤーのためのWeb Componentsハンズオン
エンタープライヤーのためのWeb Componentsハンズオン
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
俺とAngular JS 2
俺とAngular JS 2
[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ
喋って、DEMOで 伝える 僕がHerokuを使う理由
喋って、DEMOで 伝える 僕がHerokuを使う理由
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
One-time Binding & $digest
One-time Binding & $digest
Ähnlich wie STORES.jp x AngularJS
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
Yuki Suzuki
Ng mtg#3
Ng mtg#3
Kenichi Kanai
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
Naoki Yamada
How to develop a huge Single Page Application
How to develop a huge Single Page Application
Naoki Yamada
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
Alt01-LT
Alt01-LT
Yuta Hiroto
Innovation eggcloudnative
Innovation eggcloudnative
Takuro Sasaki
Our Track to Modern Angular
Our Track to Modern Angular
Yuta Shimizu
2016 02-25-crawler-study-01
2016 02-25-crawler-study-01
Hiroshi Oyamada
AngularJSを浅めに紹介します
AngularJSを浅めに紹介します
nkazuki
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
20161125 米田 angular_jsを触ってみた
20161125 米田 angular_jsを触ってみた
Tsuyoshi Saito
ngJapan報告会
ngJapan報告会
Fumio SAGAWA
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
Masakazu Muraoka
BACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発について
Toshio Ehara
AngularJS で ハイスピードSI
AngularJS で ハイスピードSI
Koichiro Nishijima
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
My cordovaprojectstory
My cordovaprojectstory
Yuichiro Ebihara
2015 12-19-ruby rails
2015 12-19-ruby rails
Hiroshi Oyamada
JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介
Yuki Okamoto
Ähnlich wie STORES.jp x AngularJS
(20)
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
フリーランスはじめました - 【初心者向けデザイン講座】デザインのスキルを身につけてお仕事をする方法!東洋美術学校×クラウドワークス
Ng mtg#3
Ng mtg#3
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
How to develop a huge Single Page Application
How to develop a huge Single Page Application
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
Alt01-LT
Alt01-LT
Innovation eggcloudnative
Innovation eggcloudnative
Our Track to Modern Angular
Our Track to Modern Angular
2016 02-25-crawler-study-01
2016 02-25-crawler-study-01
AngularJSを浅めに紹介します
AngularJSを浅めに紹介します
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
20161125 米田 angular_jsを触ってみた
20161125 米田 angular_jsを触ってみた
ngJapan報告会
ngJapan報告会
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
BACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発について
AngularJS で ハイスピードSI
AngularJS で ハイスピードSI
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
My cordovaprojectstory
My cordovaprojectstory
2015 12-19-ruby rails
2015 12-19-ruby rails
JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介
STORES.jp x AngularJS
1.
× @mknkisk 2014/6/2 ! AngularJSを業務で使いたいけど今一歩踏み出せない方のための勉強会
2.
牧野 圭将 @mknkisk ! 2013年09月 ブラケット
入社 STORES.jp 開発全般 ! 一番JS歴が浅いですが一番ヒマそう だったので今ここにいます
3.
今日のおはなし ❖ STORES.jp と
AngularJS ❖ Rails と AngularJS ❖ SEO対応 ❖ Google Analytics ❖ リファクタ中のはなし ❖ かるいまとめ
4.
最短2分で、驚くほど簡単に オンラインストアがつくれる https://stores.jp
5.
6.
7.
x MARKET
8.
STORES.jp と AngularJS ローンチ時点でAngularJSを採用
(2012/09) 当時は今ほど日本で注目を集めていなかった 情報も少なかった いつから使ってる?
9.
STORES.jp と AngularJS ❖
ダッシュボード (ストアオーナー管理画面) ! ❖ 各ストアのコンテンツ (メインコンテンツ) どこで使ってる?
10.
STORES.jp と AngularJS アプリを見据えてサーバサイドは APIとして使いたかった どうしてAngularJS?
11.
STORES.jp と AngularJS デザイン編集機能でリアルタイムに変更を反映するために データバインディングが魅力的だった どうしてAngularJS?
12.
STORES.jp と AngularJS レイアウトやストア名などを リアルタイムに反映 ! どんどん切り替わることで デザインを楽しんでもらう ストアデザイン編集機能
13.
STORES.jp と AngularJS ng-modle ng-style ng-show
14.
STORES.jp と AngularJS Rails,
AngularJS とフルスタックのものを採用する ことで学習すべき要素を明確にしたかった どうしてAngularJS?
15.
Rails と AngularJS ❖
Railsを完全にAPIとしてフロントはAngularJSに任せる ❖ RailsのViewに使いたいところだけ適応する Rails, AngularJS で調べていくと 2タイプの構成を見かけると思います
16.
Rails と AngularJS ❖
RailsのViewに使いたいところだけ適応する ❖ Railsのlayoutで共通部分をレンダリングしている(初回) ❖ 動的に変更する箇所に <ng-view> を設置してルーティング ❖ 必ずしもAngularJSが必要でない部分では使ってない SEOなど考え試行錯誤した感じがある STOERS.jp は今こっちです。完全分離はできていません
17.
Rails と AngularJS 構成の参考 mkwiatkowski/todo-rails4-angularjs ! AngularJS本家がRailsとの連携の参考にあげていた サンプルコード 現在も開発が進められており、今はこの構成に近い
18.
Google Analytics SPAなのでGAのトラッキングコードを読む込むだけでは 各ページをトラッキングできません ! routeが変わったのをトリガーにGAにURLを通知させました
19.
Google Analytics // ga('send',
'pageview'); GAのトラッキングコードから以下を削除
20.
Google Analytics $routeChangeSuccess を検知して GAにトラッキング
21.
Angulartics 前述のGAトラッキングと同じことができるモジュール http://luisfarzati.github.io/angulartics/ ! GA以外にも mixpanel や
chartbeat もサポート クリックイベント用のディレクティブも提供 ※ui-router を使っているとうまく動作しない?
22.
SEO _escaped_fragment_
23.
SEO ❖ PhantomJSで返すとレスポンスが遅い ❖ エラーが起きていてもわかりづらい ❖
GoogleのbotがJSを実行できるようになった? ❖ PhantomJSで返却したHTMLからさらにAngularJSを 実行されると目的のページを返せなくなるかも?
24.
SEO ❖ SEO対策は結構面倒 ❖ SEOを重視しながらAngularJSを使うなら ルーティングだけはRailsサイドにするのもありかも
25.
リファクタ中のはなし ❖ jQueryプラグインをAngularJSと一緒に使う ❖ $http
-> Service ❖ Controllerを分ける (データの共有)
26.
ng-repeatの後に処理を走らせたい サーバから商品情報を取得 ng-repeatで画像情報をループ jQueryプラグインを適応
27.
ng-repeatの後に処理を走らせたい サーバから商品情報を取得 ng-repeatで画像を描画 binding前に実行されるため適応されない
28.
ng-repeatの後に処理を走らせたい サーバから商品情報を取得 ng-repeatで画像を描画 Controller内にView周りの コードが混在してしまう
29.
ng-repeatの後に処理を走らせたい サーバから商品情報を取得 ng-repeatで画像を描画 Directiveでラップして Controllerから追い出した
30.
jQueryプラグインを使う前に jQueryプラグインをカスタムディレクティブに 実装する前に以下を検討してみる ❖ AngularUI で実現できないか? http://angular-ui.github.io/ ❖
公開されているディレクティブはないか? http://ngmodules.org ❖ AngularJSで置き換えられないか? 参考: http://knightso.hateblo.jp/entry/2014/04/10/080207
31.
ANGULAR MODULES ❖ http://ngmodules.org ❖
AngularJSの各種モジュールのまとめ ❖ STORES.jp でも以下を採用 ❖ angular-file-upload ❖ ngInfiniteScroll
32.
$http -> Service ❖
処理をコントローラーに詰め込んでいくと どんどんコントローラーが肥大化してしまう ! ❖ 処理上は問題ないが, テストがしにくい, 使い回しができないといった問題が発生してくる
33.
$http -> Service 商品一覧を取得する処理は ダッシュボードでも各ストアでも共通で行われる 幾つかのコントローラーに同じような処理が書かれていた Serviceに切り出して共通化する
34.
$http -> Service
35.
AngularJSの学習 JS初心者の自分がAngularJSの学習に参考にしたもの ❖ ドットインストール ❖ 公式チュートリアル ! 公式チュートリアルまでだと敷居は低く感じる
(イケル!って思える) ! ディレクティブやサービス, ファクトリーを作り始めたあたりから独特の ルールで一気に敷居が上がる
36.
AngularJSの学習 最近参考にさせて頂いてるサイト ❖ AngularJS Ninja ❖
http://angularjsninja.com/ ❖ js STUDIO (日本語リファレンス) ❖ http://js.studio-kingdom.com/angularjs ❖ AngularJSアプリケーション開発ガイド ❖ O Reilly本 (v1.2.16)
37.
まとめ ❖ 少ないコードで実装できている ❖ 学習対象はAngularJSのみで明確だった ❖
実際にサービスで使ってみるとハマりどころは多い ❖ コントローラーは太らせない ❖ 面倒臭がらなければ結果的にハッピーになれる ❖ SEO対策は面倒。重要度が高い場合は素直に サーバサイドMVCの方がいいかも
38.
ありがとうございました
Jetzt herunterladen