Top Banner
AngularJS の継続的なバージョンアップ 1回ペパボテックカンファレンス by tsuchikazu (nessy)
46

Angular jsの継続的なバージョンアップ

Jul 16, 2015

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Angular jsの継続的なバージョンアップ

AngularJS の継続的なバージョンアップ

第1回ペパボテックカンファレンス by tsuchikazu (nessy)

Page 2: Angular jsの継続的なバージョンアップ

自己紹介● 土屋和良

● @tsuchikazu ( nessy )● http://tsuchikazu.net

● PHP/rails/angular● カラーミーショップ

Page 3: Angular jsの継続的なバージョンアップ
Page 4: Angular jsの継続的なバージョンアップ

普段Angular書いている人?(仕事やそれ以外含む)

Page 5: Angular jsの継続的なバージョンアップ

ですよね

Page 6: Angular jsの継続的なバージョンアップ

Angularとは● JavaScriptフレームワーク

● Googleが開発

● フロントエンドの生産性向上が目的

● フルスタック (MVW)

Page 7: Angular jsの継続的なバージョンアップ
Page 8: Angular jsの継続的なバージョンアップ

Release Plan

1.02012/06

1.22013/11

1.32014/10

1.42015/04

1.52015 ?

2.02016 ?

Page 9: Angular jsの継続的なバージョンアップ

Version Upしますか?

Page 10: Angular jsの継続的なバージョンアップ

止まっているのはそれだけで

バグ生んでるのと一緒

http://portalshit.net/2015/04/07/staying-on-is-just-like-making-bug by

Page 11: Angular jsの継続的なバージョンアップ

Angular1.4• 最大30%のパフォーマンス向上• 2〜4%のメモリ使用量軽減

Page 12: Angular jsの継続的なバージョンアップ

Angular2.0

Page 13: Angular jsの継続的なバージョンアップ

アウトライン● 次期バージョンを見据えた実装

● テスト

● 他技術のキャッチアップ

Page 14: Angular jsの継続的なバージョンアップ

アウトライン● 次期バージョンを見据えた実装

● テスト

● 他技術のキャッチアップ

Page 15: Angular jsの継続的なバージョンアップ

Angular1.4● 1.3との互換性はほぼ保たれる

● サポートブラウザも同じ

Page 16: Angular jsの継続的なバージョンアップ

Angular2

Page 17: Angular jsの継続的なバージョンアップ
Page 18: Angular jsの継続的なバージョンアップ

Angular2へ● New Router

○ 1系と2系を

  共存可能

 (まだ試せてない)● Migration 機能は

今後もリリースされる

Page 19: Angular jsの継続的なバージョンアップ

Migration 機能を取り入れよう

Page 20: Angular jsの継続的なバージョンアップ

Tips

Page 21: Angular jsの継続的なバージョンアップ

● TypeScript○ これから始める人○ 恩恵を受けれそう

● ES6○ ES5で書いている人

● CoffeeScript○ (これ使ってるけど、正直失敗感)

Angular2へ

Page 22: Angular jsの継続的なバージョンアップ

Angular1 & 2(service)

Page 23: Angular jsの継続的なバージョンアップ

● Serviceは単なるclassへ○ なるべくserviceを使う

○ resourceを使うものは、serviceにしにくい

●今のところfactory

Angular2へ

Page 24: Angular jsの継続的なバージョンアップ

Angular1 & 2(service)

Page 25: Angular jsの継続的なバージョンアップ

Angular1 & 2(directive)

Page 26: Angular jsの継続的なバージョンアップ

● scopeはなくなる

○ DirectiveでlinkではなくControllerを○ controller as を使う

○ componentらしく

Angular2へ

Page 27: Angular jsの継続的なバージョンアップ

before & after

Page 28: Angular jsの継続的なバージョンアップ

Angular1 & 2(directive)

Page 29: Angular jsの継続的なバージョンアップ

アウトライン● 次期バージョンを見据えた実装

● テスト

● 他技術のキャッチアップ

Page 30: Angular jsの継続的なバージョンアップ

テストに正解はない

Page 31: Angular jsの継続的なバージョンアップ

ただの一例として紹介

Page 32: Angular jsの継続的なバージョンアップ

Angular

構成(SPA)

ControllerService

Template

Directive

API

Page 33: Angular jsの継続的なバージョンアップ

どこを何のためにどうやって

テストするのか

Page 34: Angular jsの継続的なバージョンアップ

Angular

Unit テスト

ControllerService

Template

Directive

API

Mock

Page 35: Angular jsの継続的なバージョンアップ

Unit テスト• Controller / Service / Directive• 自分の不安解消のため

– 細かな分岐/パターン網羅• 自動テスト

– Jasmine & Karma & CI• 構成が大きく変わった時は対応不可

Page 36: Angular jsの継続的なバージョンアップ

Angular

E2Eテスト

ControllerService

Template

Directive

API

Page 37: Angular jsの継続的なバージョンアップ

• Angular + API + (他システム) 全て• 期待した通りの動作をしているか

– UI&UXも含む• 自動化するにはデータや環境準備などコスト高

• 手動テストでカバー

E2Eテスト

Page 38: Angular jsの継続的なバージョンアップ

Angular

ControllerService

Template

Directive

API

Mock

E2E with API Mockテスト

Page 39: Angular jsの継続的なバージョンアップ

• フロントエンドのみ (APIはMock)• 内部実装に依存せずに、フロントエンド全体が期待通りに動作しているか

• 自動テスト– Protractor & ngMockE2E & CI

E2E with API Mockテスト

Page 40: Angular jsの継続的なバージョンアップ

• 課題

– APIのMockがズレるリスク

– テストは通るのに、動かない

– レスポンスの項目が増えた減った

• Mock自体のテスト?

E2E with API Mockテスト

Page 41: Angular jsの継続的なバージョンアップ

E2E with API Mockテストを書こう

Page 42: Angular jsの継続的なバージョンアップ

アウトライン● 次期バージョンを見据えた実装

● テスト

● 他技術のキャッチアップ

Page 43: Angular jsの継続的なバージョンアップ

他技術のキャッチアップ• Angular2

– ES6 module– Shadow DOM– HTML5 template tag

Page 44: Angular jsの継続的なバージョンアップ

まとめ● 次期バージョンを見据えた実装

○ Migration機能を取り入れよう

● テスト

○ E2E with API Mock テストをしよう

● 他技術のキャッチアップ

○ がんばろう

Page 45: Angular jsの継続的なバージョンアップ

フロントエンドもサーバサイドと

同じ

Page 46: Angular jsの継続的なバージョンアップ

やっておいた方がいいことをやって

不確かな未来へ