「ng-japan 2017」に参加してきました

Keynote

  • Stephen Fluin (Angular Core Team)

メモ

RxJSを活用したアプリケーション開発

RsJS

  • 非同期のなんか?
  • Promiseの代わりみたいな?
  • Angular2からRxJSに依存するようになった

Angular開発

  • 複数人でやってると設計がばらばら
  • CQRS
  • DDD

You need to know SSR

なんでサーバサイドレンダリング

  • SEO
    • googleはJSFWを使ったサイトではプリレンダリングしたページを使うことを勧めている
    • クローラがJSをちゃんと実行してくれてるかわからない
  • First Viewの改善
    • 初期表示を早くする
    • 意味のある情報が表示されるとこまでのこと(First meening full paint)
  • SSRはCPU負荷がかかる
    • HTML生成結果をキャッシュ
    • スクロールしない範囲のみにする
  • でも諸刃の剣
    • サービスの特性による
  • パフォーマンスに妥協しない!
  • 一部を改善すると他のとこも・・ってなってくる

Angularアプリのテストについて

静的解析

  • AoT Compile
  • Jit Compile
  • TSの--strict
  • templateの中は文字列だけどTS化されるので静的チェックされる!

単体テスト

  • Angular標準
    • Karma
    • Jasmine
    • Angular testing utilities
  • セットアップしてくれるからAngular-cli便利!

Lsolated Testing

  • ロジックだけテスト
  • サービスのテストみたい
  • DOMはなにもしない

Shallow Testing

  • 自分自身のテンプレートのテスト

Integration Testing

結局どれやるの

回帰テスト

  • CIで動作させる
  • Jest + Reactのスナップショットテストに憧れ
  • 前回との差分があったら失敗にする

あのモジュールこのコンポーネントそのブロック

CSSコンポーネント

  • 全てグローバル
  • CSS設計方法論
    • OOCSS
    • BEM

OOCSS

  • ページはレゴ
  • 同じCSSを二度書かない
  • ベースとスキン
  • Bootstrapなんかはこれ
    • btn btn-primary みたいなこと

BEM

  • ブロックとエレメント
  • スタイルが競合しない

問題点

Atomic Design

  • デザインシステムを作ってからページを作る
  • ワークフローとか含めた広い設計思想

EnduringCSS

Web Components and Onsen UI

Angular, Firebase, Cloud Functions for Firebase

Visual StudioVisual Studio Codeで快適開発生活(仮)

Angularとionicで挑戦したモバイルアプリ開発

ReactiveFormsの説明

Best practices for modules in Angular