Web TECH FORUM 2017 in 大阪
JavaScript UIコンポーネントの
選定と活用ポイント
エス・ビー・エス株式会社
第一システム部
泉 雄大
Web TECH FORUM 2017 in 大阪
自己紹介
◆泉 雄大(いずみ ゆうだい)
・大規模Webシステム開発に関わって7年目
Webの画面開発を中心とした開発標準を策定
・近年はASP.NET MVCを用いた開発案件がメイン
・HTML5 プロフェッショナル認定試験 Level 1 取得
・MCP 70-480 [Programming in HTML5 with JavaScript and CSS3] 取得
MS認定のWeb開発標準に関する試験
Web TECH FORUM 2017 in 大阪
今日のお題
そもそもJavaScriptで何するの?
UIコンポーネントに求められるモノ
実際どう作るのか?
Web TECH FORUM 2017 in 大阪
そもそもJavaScriptで何するの?
Web TECH FORUM 2017 in 大阪
ここ数年JavaScript周りで良く聞くキーワード
SPA / MVVM / Flux
You Don’t Need jQuery
Angular + TypeScript
React(Redux) + Babel
Vue.js(Vuex)
Node.js / NPM
Browserify / Webpack
REST / GraphQL
JavaScript Fatigue
Web TECH FORUM 2017 in 大阪
色々言われているけど、
結局何から始めたらよいのか?
Web TECH FORUM 2017 in 大阪
今のJavaScriptについて整理しましょう
Web TECH FORUM 2017 in 大阪
今のJavaScriptができること
・スタイル操作
・DOM(BOM)操作
・イベント制御
・通信制御(非同期)
・ルーティング(画面遷移)管理
・状態管理(DOM以外のデータ管理)
jQuery
(ちょっと前まで)
SPA Framework
(ここ最近)
PL(プレゼンテーションロジック)の
JavaScriptへの移行が進む
Web TECH FORUM 2017 in 大阪
今のJavaScriptができること
これから始めるのであれば
Progressiveに取り込むのが吉
スタイル操作
DOM(BOM)操作
イベント制御
ルーティング制御
状態管理
通信制御
Web TECH FORUM 2017 in 大阪
JavaScriptを用いたアプリ構成の例
サーバーサイドにもPLを持つ場合(ASP.NET MVC, etc.)
クライアントサイド
(JavaScript)
DOM(BOM)操作
通信制御
サーバーサイド
(ASP.NET MVC)
View
(aspx/razor)
Controller
(WorkerService)
Model
JSON
スタイル操作
イベント制御
ルーティング制御
状態管理
Web TECH FORUM 2017 in 大阪
JavaScriptを用いたアプリ構成の例
JavaScriptでPLを実現する場合(SPA+WebAPI)
クライアントサイド
(JavaScript)
DOM(BOM)操作
通信制御
サーバーサイド
(ASP.NET MVC)
View
(aspx/razor/html)
Controller
(WorkerService)
Model
JSON
スタイル操作
イベント制御
ルーティング制御
状態管理
ルーティング 状態管理(VM)
Web TECH FORUM 2017 in 大阪
と、いうわけで
Web TECH FORUM 2017 in 大阪
今日は特にこの部分のお話をします
クライアントサイド
(JavaScript)
DOM(BOM)操作
スタイル操作
イベント制御
どんなフレームワークでも
この部分はJavaScript
Web TECH FORUM 2017 in 大阪
UIコンポーネントに求められるモノ
Web TECH FORUM 2017 in 大阪
UIコンポーネントに求められるモノ
画面が業務システム内で担う機能は
インプット & アウトプット
Web TECH FORUM 2017 in 大阪
UIコンポーネントに求められるモノ
インプット … フォームコントロール
アウトプット … 表示用コントロール
Web TECH FORUM 2017 in 大阪
UIコンポーネントに求められるモノ
入力をわかりやすく
ストレスを少なく
表示を見やすく
きれいに/かっこよく
Web TECH FORUM 2017 in 大阪
+開発生産性も大事
開発コスト
(工数/価格)
保守性
サポート
Web TECH FORUM 2017 in 大阪
実際どう作るのか?
Web TECH FORUM 2017 in 大阪
では実際どう作るか?
1. まずは手作りしてみる
2. ライブラリ導入(OSS)
3. ライブラリ導入(有償製品)
徹底比較!
Web TECH FORUM 2017 in 大阪
まずは手作りしてみる
Web TECH FORUM 2017 in 大阪
手作りする
◆インプット
・プレーンにHTMLで!
※入力チェックなどは
HTML5 constraint validation API + JavaScript
で実装
◆アウトプット
・CSSで頑張る!
Web TECH FORUM 2017 in 大阪
デモ(手作り編)
Web TECH FORUM 2017 in 大阪
手作りする
◆対要件
・Web標準技術だけでも十分に画面開発できる
(そこまで入力仕様が難しくなければ)
・見た目のカスタマイズは自由
(開発者のセンス次第)
・複雑な要件に追従していくには標準仕様の知識が必須
Web TECH FORUM 2017 in 大阪
手作りする
◆生産性
・一から作るのはやはり大変
・各種標準仕様の学習コスト
・自力でのブラウザ/デバイス非互換吸収は至難の業
・長期的な保守コストが高い
・専門の開発者がいない限りはおススメしません
Web TECH FORUM 2017 in 大阪
余談:手作り部品の思い出
要件:
・日付入力の部品が欲しい
・和暦表示もしてほしい
・ライブラリ選んでる暇はない
自力で頑張りました
Web TECH FORUM 2017 in 大阪
余談:手作り部品の思い出
その後どうなったか…
・リリースから半年後、特定の日付のみ発生する
障害が発覚
・平成が終わる??!!
Web TECH FORUM 2017 in 大阪
ライブラリ導入(OSS)
Web TECH FORUM 2017 in 大阪
ライブラリ導入(OSS)
◆インプット
・jQuery UI
・jQuery Validation Plugin
◆アウトプット
・jQuery UI
・Chart.js
Web TECH FORUM 2017 in 大阪
デモ(OSS編)
Web TECH FORUM 2017 in 大阪
ライブラリ導入(OSS)
◆対要件
・無償ライブラリでもできることの幅は広い
・マルチブラウザ/デバイス対応(程度の差はあり)
・要件的にかゆいところに手が届かない場合も
Web TECH FORUM 2017 in 大阪
ライブラリ導入(OSS)
◆生産性
・標準仕様APIが分からなくても開発効率アップ
・1つのライブラリだけではすべてを満たせないことも
・サポートのレベルは配布元による
Web TECH FORUM 2017 in 大阪
ライブラリ導入(有償製品)
Web TECH FORUM 2017 in 大阪
ライブラリ導入(有償製品)
◆インプット
・Wijmo5
◆アウトプット
・Wijmo5
Web TECH FORUM 2017 in 大阪
デモ(有償製品編)
Web TECH FORUM 2017 in 大阪
ライブラリ導入(有償製品)
◆対要件
・入力から出力までオールインワン
・とにかく使える機能が多い
・見た目のカスタマイズも自力(=CSS)で可能
・レスポンシブルレイアウト/タッチサポート
Web TECH FORUM 2017 in 大阪
ライブラリ導入(有償製品)
◆生産性
・あらゆる点でOSS++
・マルチブラウザ/デバイスへの対応
・品質、サポート面の安心感
・お金がかかる
Web TECH FORUM 2017 in 大阪
◆作り方の比較
まとめ
開発工数 保守工数 サポート 費用 規模
手作り × × - 〇 小規模
OSS 〇 ▲ ×~▲ 〇 小~中規模
製品 〇 〇 ▲~〇 × 中~大規模
Web TECH FORUM 2017 in 大阪
まとめ
ポイントは何を「コスト」として考えるか?
開発工数?
保守工数?
費用?
Web TECH FORUM 2017 in 大阪
まとめ
Webの場合は製品導入が近道なことも
開発工数
保守工数
費用
Web TECH FORUM 2017 in 大阪
ご清聴ありがとうございました

【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント

  • 1.
    Web TECH FORUM2017 in 大阪 JavaScript UIコンポーネントの 選定と活用ポイント エス・ビー・エス株式会社 第一システム部 泉 雄大
  • 2.
    Web TECH FORUM2017 in 大阪 自己紹介 ◆泉 雄大(いずみ ゆうだい) ・大規模Webシステム開発に関わって7年目 Webの画面開発を中心とした開発標準を策定 ・近年はASP.NET MVCを用いた開発案件がメイン ・HTML5 プロフェッショナル認定試験 Level 1 取得 ・MCP 70-480 [Programming in HTML5 with JavaScript and CSS3] 取得 MS認定のWeb開発標準に関する試験
  • 3.
    Web TECH FORUM2017 in 大阪 今日のお題 そもそもJavaScriptで何するの? UIコンポーネントに求められるモノ 実際どう作るのか?
  • 4.
    Web TECH FORUM2017 in 大阪 そもそもJavaScriptで何するの?
  • 5.
    Web TECH FORUM2017 in 大阪 ここ数年JavaScript周りで良く聞くキーワード SPA / MVVM / Flux You Don’t Need jQuery Angular + TypeScript React(Redux) + Babel Vue.js(Vuex) Node.js / NPM Browserify / Webpack REST / GraphQL JavaScript Fatigue
  • 6.
    Web TECH FORUM2017 in 大阪 色々言われているけど、 結局何から始めたらよいのか?
  • 7.
    Web TECH FORUM2017 in 大阪 今のJavaScriptについて整理しましょう
  • 8.
    Web TECH FORUM2017 in 大阪 今のJavaScriptができること ・スタイル操作 ・DOM(BOM)操作 ・イベント制御 ・通信制御(非同期) ・ルーティング(画面遷移)管理 ・状態管理(DOM以外のデータ管理) jQuery (ちょっと前まで) SPA Framework (ここ最近) PL(プレゼンテーションロジック)の JavaScriptへの移行が進む
  • 9.
    Web TECH FORUM2017 in 大阪 今のJavaScriptができること これから始めるのであれば Progressiveに取り込むのが吉 スタイル操作 DOM(BOM)操作 イベント制御 ルーティング制御 状態管理 通信制御
  • 10.
    Web TECH FORUM2017 in 大阪 JavaScriptを用いたアプリ構成の例 サーバーサイドにもPLを持つ場合(ASP.NET MVC, etc.) クライアントサイド (JavaScript) DOM(BOM)操作 通信制御 サーバーサイド (ASP.NET MVC) View (aspx/razor) Controller (WorkerService) Model JSON スタイル操作 イベント制御 ルーティング制御 状態管理
  • 11.
    Web TECH FORUM2017 in 大阪 JavaScriptを用いたアプリ構成の例 JavaScriptでPLを実現する場合(SPA+WebAPI) クライアントサイド (JavaScript) DOM(BOM)操作 通信制御 サーバーサイド (ASP.NET MVC) View (aspx/razor/html) Controller (WorkerService) Model JSON スタイル操作 イベント制御 ルーティング制御 状態管理 ルーティング 状態管理(VM)
  • 12.
    Web TECH FORUM2017 in 大阪 と、いうわけで
  • 13.
    Web TECH FORUM2017 in 大阪 今日は特にこの部分のお話をします クライアントサイド (JavaScript) DOM(BOM)操作 スタイル操作 イベント制御 どんなフレームワークでも この部分はJavaScript
  • 14.
    Web TECH FORUM2017 in 大阪 UIコンポーネントに求められるモノ
  • 15.
    Web TECH FORUM2017 in 大阪 UIコンポーネントに求められるモノ 画面が業務システム内で担う機能は インプット & アウトプット
  • 16.
    Web TECH FORUM2017 in 大阪 UIコンポーネントに求められるモノ インプット … フォームコントロール アウトプット … 表示用コントロール
  • 17.
    Web TECH FORUM2017 in 大阪 UIコンポーネントに求められるモノ 入力をわかりやすく ストレスを少なく 表示を見やすく きれいに/かっこよく
  • 18.
    Web TECH FORUM2017 in 大阪 +開発生産性も大事 開発コスト (工数/価格) 保守性 サポート
  • 19.
    Web TECH FORUM2017 in 大阪 実際どう作るのか?
  • 20.
    Web TECH FORUM2017 in 大阪 では実際どう作るか? 1. まずは手作りしてみる 2. ライブラリ導入(OSS) 3. ライブラリ導入(有償製品) 徹底比較!
  • 21.
    Web TECH FORUM2017 in 大阪 まずは手作りしてみる
  • 22.
    Web TECH FORUM2017 in 大阪 手作りする ◆インプット ・プレーンにHTMLで! ※入力チェックなどは HTML5 constraint validation API + JavaScript で実装 ◆アウトプット ・CSSで頑張る!
  • 23.
    Web TECH FORUM2017 in 大阪 デモ(手作り編)
  • 24.
    Web TECH FORUM2017 in 大阪 手作りする ◆対要件 ・Web標準技術だけでも十分に画面開発できる (そこまで入力仕様が難しくなければ) ・見た目のカスタマイズは自由 (開発者のセンス次第) ・複雑な要件に追従していくには標準仕様の知識が必須
  • 25.
    Web TECH FORUM2017 in 大阪 手作りする ◆生産性 ・一から作るのはやはり大変 ・各種標準仕様の学習コスト ・自力でのブラウザ/デバイス非互換吸収は至難の業 ・長期的な保守コストが高い ・専門の開発者がいない限りはおススメしません
  • 26.
    Web TECH FORUM2017 in 大阪 余談:手作り部品の思い出 要件: ・日付入力の部品が欲しい ・和暦表示もしてほしい ・ライブラリ選んでる暇はない 自力で頑張りました
  • 27.
    Web TECH FORUM2017 in 大阪 余談:手作り部品の思い出 その後どうなったか… ・リリースから半年後、特定の日付のみ発生する 障害が発覚 ・平成が終わる??!!
  • 28.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(OSS)
  • 29.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(OSS) ◆インプット ・jQuery UI ・jQuery Validation Plugin ◆アウトプット ・jQuery UI ・Chart.js
  • 30.
    Web TECH FORUM2017 in 大阪 デモ(OSS編)
  • 31.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(OSS) ◆対要件 ・無償ライブラリでもできることの幅は広い ・マルチブラウザ/デバイス対応(程度の差はあり) ・要件的にかゆいところに手が届かない場合も
  • 32.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(OSS) ◆生産性 ・標準仕様APIが分からなくても開発効率アップ ・1つのライブラリだけではすべてを満たせないことも ・サポートのレベルは配布元による
  • 33.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(有償製品)
  • 34.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(有償製品) ◆インプット ・Wijmo5 ◆アウトプット ・Wijmo5
  • 35.
    Web TECH FORUM2017 in 大阪 デモ(有償製品編)
  • 36.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(有償製品) ◆対要件 ・入力から出力までオールインワン ・とにかく使える機能が多い ・見た目のカスタマイズも自力(=CSS)で可能 ・レスポンシブルレイアウト/タッチサポート
  • 37.
    Web TECH FORUM2017 in 大阪 ライブラリ導入(有償製品) ◆生産性 ・あらゆる点でOSS++ ・マルチブラウザ/デバイスへの対応 ・品質、サポート面の安心感 ・お金がかかる
  • 38.
    Web TECH FORUM2017 in 大阪 ◆作り方の比較 まとめ 開発工数 保守工数 サポート 費用 規模 手作り × × - 〇 小規模 OSS 〇 ▲ ×~▲ 〇 小~中規模 製品 〇 〇 ▲~〇 × 中~大規模
  • 39.
    Web TECH FORUM2017 in 大阪 まとめ ポイントは何を「コスト」として考えるか? 開発工数? 保守工数? 費用?
  • 40.
    Web TECH FORUM2017 in 大阪 まとめ Webの場合は製品導入が近道なことも 開発工数 保守工数 費用
  • 41.
    Web TECH FORUM2017 in 大阪 ご清聴ありがとうございました