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

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

Upload: kazuyoshi-tsuchiya

Post on 16-Jul-2015

7.617 views

Category:

Engineering


8 download

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の継続的なバージョンアップ

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

不確かな未来へ