SPAサービスサミット #1 に行ってきたよ
今日はSPAサービスサミットというSPAでサービスを運営している会社の勉強会に参加してきました。
開発の話とか技術選定の話はよく聞くのですが、すでに数年間運用を続きけているサービスの話を聞くことができとても参考になりました。
参加したイベント
peraichi.connpass.com
参加目的
SPA(Single Page Application)にすると実装が楽しくてモチベーション上がるしブラウザベースでデスクトップアプリにやスマホアプリに近いUIを提供できるので利点は感じつつも、実装コストやFramework依存のリスクは避けられないイメージが有るのでその辺をどう考えているかとか長期にわたる運用をどうしているか主に聞きいてきました。
- 最近のSPA事情を知りたかった
- Framework
- 少しは開発楽になったの?
- 運用どうよ
- SPAにしてよかったこと
- ビルドツール
- ABテスト
- デプロイ回数
- 業種間の連携方法
- デザイナー - エンジニア
- バックエンド - フロントエンド
健康で文化的な最低限度のSPA by 香月さん
- ペライチ
- 構成
- Backbone.js
- CakePHP2
- 歴史
- SPAにならざるを得なかった
- 最初はとりあえずjQuery
- footer.jsがサイドバーの処理になったり...
- 最初はとりあえずjQuery
- Backbone.jsかAngularJSでまよった
- カスタマイズ性
- 学習コストの低さ
- なんでもいいから秩序
- SPAにならざるを得なかった
- リファクタ計画
- 処理を細かくモジュール化
- RequireJSのモジュール定義方法に統一
- Backbone/Marionetteにしていく
- 失敗
- とりあえずデキる人だけで初めた
- →あまりうまくいかなかったので専門のチームを作った
- フロントを触るときはレビューを通す
- →あまりうまくいかなかったので専門のチームを作った
- とりあえずデキる人だけで初めた
所感
- Backbone.js現役だな−って思った
- jQueryで頑張ってるサイトを、ちょくちょく直していって構造を整える分には相性良さそう
- フロントの専門チームを作ってるのはいいけど人を集めるのが大変そう
Prottフロントエンドの今とこれから by 久保田さん
- Protto
- Prott - Prototyping tool for Web iOS Android apps
- プロトタイピングツール
- 2013/11から作り始め
- 出だし
- CoffeeScript
- AngularJS
- 泥臭い話
- CoffeeScript
- 神コントロラー 2713行!
- Controller と Directiveの密結合
- 課題に対して取り組んでること
- CoffeeScript
- ES2015+で変えてる
- http://yoshiko-pg.github.io/slides/20160512-frontend-biz/#10
- power-assert + mocha + karma
- http://qiita.com/zoetro/items/a45dbc18bb2b22e944b2
- CoffeeScript
疑問
- AngularJSの使い勝手聞きたい
- Angularの使い勝手はやっぱりいい
- Angular2は使わないの?
- コンポーネント指向になってないのでコストが大きそう
所感
- CoffeeScriptは役目を終えた
SPAの論点 by 今さん
- note
- note ――つくる、つながる、とどける。
- おかげさまで3年目
- Angular1.3系
- 論点: SPAにスべきか
- ツール系 or サービス系?
- 操作におおじて細かい画面書き換え、機敏な動作、複雑な画面構成が求められるツール系
- 開発者軸
- APIサーバーがすでにある
- ツール系 or サービス系?
- SPAと覚悟
- Noteの場合
- 複雑なフォームを作る必要があった
- 論点: Isomorphicにするのか
- SSRしないときは、単にAPIサーバーへのproxyとして機能
- Nodeにする必要あり
- 並行処理性能は高いが可用性高めるのが難しい
- CPU-boundな処理はnodeのEventroolpをつまらせる
- 画像の変換とかはLamdaにながす
- マルチコアを活かすためにcluster moduleなどで多重化する
- Front App Server Node - API Railsとか分業させるのが良さそう
- Noteの場合
- Angular自体はDirty Checkingが遅いとdisられるがそこまで複雑なDOM構成がないためかそこまでこまってない
所感
- ブラウザの挙動の再現を強いられるのはマジ
- Angularで運用しきっている例もでてきてる
パネルトーク
- 環境
- Protto
- Rails
- mongo
- MySQL(課金)
- Note
- Rails
- Aurora
- Redis
- ペライチ
- CakePHP
- Protto
- SEO
- GoogleがJSをレンダリングしてくれる
- してくれなかったよ・・
- レンダリングた結果をAmazon Auroraにいれてる
- GoogleがJSをレンダリングしてくれる
- 技術選定
- ペライチ
- カスタマイズのしやすさでバックボーン
- ペライチ
- 改善プロセス
- ペライチ
- 開発合宿でペライチのパフォーマンスを何秒早くできるか
- Mixpanelを入れて毎週MTG、グロスハック担当のエンジニアと改善をすすめる
- グロスハックの担当のエンジニア!
- Note
- JavaScriptのエラーをサーバーに飛ばしてみている
- パフォーマンスはNew Relicで計測
- ペライチ
- コードレビュー
- シンタックスはLinterで弾く
- レビューを自動化したい
- セキュリティ
- csrfの対策をフレームワークが持っていない限りは気をつけないとまずそう
その他 懇親会で聞いた話等
- JavaScriptのエラーってどうやって見てるの?
まとめ
- 将来的な運用を加味するとSPAでUIの動作テストは必須そう
- UIの改修頻度は高く、デプロイ回数が多い
- FWの流行り廃れが速いので下記理由も含めFWの載せ替え可能性が相当高い
- 採用
- 処理性能
- セキュリティ
登壇者の方、運営の方、ありがとうございました〜!