SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
!

Session:【13-D-1】

JavaからJavaScriptへ!
HTML5適用から見えた次世代業務アプリケーション

#devsumiD
Name:
!

佐川 夫美雄
@albatrosary
http://albatrosary.hateblo.jp/
http://html5experts.jp/albatrosary/
HTML5Expert.jpコントリビュータ
html5jエンタープライズ部 副部長
Angularユーザ会 スタッフ
Sencha UG CO-ORGANIZER
#devsumiD
HTML5が2014年に正式勧告

#devsumiD
フロント業務アプリケーションに影響与えている

#devsumiD
HTML/CSS/JavaScript開発のウェイトが増大

#devsumiD
アプリケーション開発環境も大きく変化

#devsumiD
フロント開発の現場では、Java中心の開発から、
HTML/CSS/JavaScript中心の開発になり開発環境
も含めどのような変化が起きているのか!

http://html5experts.jp/albatrosary/3191/
#devsumiD
Webの歴史

SGML(standard Generalized Markup Language)
1986年
HTML(HyperText Markup Language)
1989年

HTTP 0.9
1993年
HTTP 1.0
1996年

HTTP 1.1
1999年

CSS 1
1996年
CSS 2
1998年

HTML 4.0(HyperText Markup Language)
1997年
XML(eXtensible Markup Language)
1998年
XHTML(eXtensible HyperText Markup Language)
2000年

CSS 2.1
2004年

SPDY
2011年

CSS 3
2011年
HTTP 2(draft)
2012年

XHTML 2.0(eXtensible HyperText Markup Language)
2010年
HTML 5.0(HyperText Markup Language)
2012年

#devsumiD
Story
2012/秋にHTML5で業務アプリケーションを開発?
- 個人的な判断ではまだ無理だろうという認識

!

2013/2/9 HTML5CARNIVAL FUKUOKA
!

- Mozilla Japanの浅井さんのFirefox OS、html5j 白石さんのApplication Cache
NTT Communications 小松さんのSPDYやWebSocket

2013/2/18 HTML5とか勉強会
!

- 白石さんにApplication Cacheについて直接話しを聞きに懇親会参加

2013/2/23 [京都]京都アジャイル勉強会 #京アジャ 春の特別編
!

2013/4/24 Chrome+HTML5 Developers Live Japan #4
- 村岡さん、GoogleによるYeomanハンズオン

#devsumiD
従来型のWebアプリケーション
Controller
POJO

HTML
JavaScript

Business Logic

O/R

JSP
アプリケーションサーバ

Browser

RDBMS

1. リクエストをサーバへ送りControllerへ
2. Controllerは必要な情報を
POJO → Business Logic →O/Rマッパー → Database
で取得(登録・更新)
3. ページをjspで生成しController経由でクライアントへ返却
4. 各ページではAjaxにより部分的な情報の取得

#devsumiD
次世代型のWebアプリケーション

HTML
JavaScript

Browser

Controller

Business Logic

O/R

POJO

アプリケーションサーバ

RDBMS

1. HTMLで作成された画面を表示
2. 必要な情報をAjaxにおいてXMLHttpRequestで非同期にJSONで
サーバへ送信
3. サーバでは受け取った情報(JSON)をPOJOへ変換し登録・更新な
どの処理を行う
4. 表示データはJSONでクライアントへ画面へ表示

#devsumiD
「業務系システムは今すぐ脱Strutsを!」
業務システムエンジニアのためのHTML5勉強会#04 活動報告
次世代型のWebアプリケーションでは、基本的にはJavaScriptで多く
の処理を行い、次のような通信技術を利用して、データのみをサーバ
とやり取りします。
!

JSON 1.0
JAX-RS 2.0
WebSocket 1.0

http://gihyo.jp/news/report/2013/09/1901?page=2

#devsumiD
Single-page Application(SPA)とは

単一ページによるWebアプリケーション
ページはDOMの操作により切り替える
サーバとのやりとりはAjaxやWebSocket等を利用

#devsumiD
Single-page Applicationの構造

change

DOM

events

render

View

Template

get
set

Model

Ajax
Storage

#devsumiD
RIAに求められたもの
Rich Internet Application

表現力の高さ:動画や音声などマルチディアの活用が可能で高いデザイン性を持った画面要素の
再生機能を備える

デスクトップアプケーションと同等なUI:画面をリフレッシュすることな
く、バックエンドでサーバーとデータの送受信が可能

ユーザーエクスペリエンス:ユーザーの操作が即座にレスポンスされ、表示される画面
の情報が操作に応じて随時変化するようなインタラクティブな操作性を実現

#devsumiD
RIAが。。

2010年にSteve JobsがFlashを激しく批判
プロプライエタリよりオープン性のあるHTML5を推進!
2011年MicrosoftはWeb開発者に対するSilverlight戦略を後退
AdobeもモバイルFlashの開発を中止
2014年HTML5正式勧告

#devsumiD
SPAに必要な技術
JavaScriptフレームワーク
altJS
CSS Preprocessor
開発環境
バックエンド技術 - 通信
バックエンド技術 - Webアプリケーションサーバ

#devsumiD
JavaScriptフレームワーク
すでにJavaScriptフレームワークは数十種類ある
自分のプロジェクトにあったものを選ぶ

2010年
http://backbonejs.org/

2007年 Ext JS 2.1
http://www.sencha.com/

2009年
http://angularjs.org/

#devsumiD
altJS
altJSの言語の多くはクラス機構のサポート
JavaScriptの抱える問題の多くを解決

2009年
http://coffeescript.org/

2012年
http://www.typescriptlang.org/

http://html5experts.jp/clockmaker/2183/

#devsumiD
CSS Preprocessor
膨大なCSSをどう整理するか

http://compass-style.org/
http://sass-lang.com/

http://lesscss.org/

http://learnboost.github.io/stylus/

#devsumiD
開発環境
多くのアーキテクチャをどうやって開発するか

http://yeoman.io/

http://www.sencha.com/products/sencha-cmd/download

http://git-scm.com/

https://github.com/
#devsumiD
Yeoman とは
MODERN WORKFLOWS FOR MODERN WEBAPPS

Google社が作成した総合開発ツール群
yo(雛形作成ツール)
grunt(タスクランナー)
bower(フロントエンドパッケージマネージャ)

#devsumiD
開発の大まかな流れ

1. yo [generator] によるひな形
2. grunt server を使用しアプリケーション開発
3. grunt build によるリリースビルド

#devsumiD
yo
雛形作成ツール

generator はどのくらいある?
http://yeoman.io/community-generators.html

#devsumiD
bower
Twitter社が作ったパッケージマネージャ

bower components はどのくらいあるか?
http://sindresorhus.com/bower-components/

#devsumiD
grunt
タスクランナー
grunt で登録されているプラグインは?
http://gruntjs.com/plugins

#devsumiD
バックエンド技術 - 通信

AjaxにおいてXMLHttpRequestで非同期にJSON

#devsumiD
バックエンド技術 - Webアプリケーションサーバ

APIサーバとしての役割

#devsumiD
SPAを構築する上で考えるべきこと
パフォーマンス
メモリリーク
セキュリティ
フレームワークロックイン
設計思想の転換
フロントエンジニア不足
通信技術
バックエンド技術

#devsumiD
さらにHTML5

#devsumiD
バックエンド技術 - 通信

Ajax
WebSocket
SPDY

#devsumiD
バックエンド技術 - Webアプリケーションサーバ
Ajaxでデータのやり取りをしている分には今までと変わらない。
しかし、WebSocketを使った場合は。。

WebSocketやSPDYをうまくコントロールできる
Webアプリケーションサーバが必要
- どうやってスケールするか

http://html5experts.jp/albatrosary/4939/
#devsumiD
SPAのメリット

ページを遷移させてもJavaScriptのグローバル環境が変わらない
WebSocketが有効に使える

#devsumiD
SPAのデメリット

フルOSSでの開発が必要になる
技術要素が多すぎる
従来のWebアプリケーションに比べフロント開発が難しい

#devsumiD
最後に

Java
Single-page Application
RIA

JavaScriptフレームワーク

WebSocket

altJS
CSS Preprocessor
Yeoman

SPDY

Ajax

HTTP 2.0

#devsumiD
Special Thanks

http://www.html5biz.org/

http://www.xenophy.com/

http://html5experts.jp/

http://www.gxp.co.jp/
http://html5j.org/

#devsumiD
ご清聴ありがとうございました

#devsumiD

Contenu connexe

Tendances

オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門
Fumio SAGAWA
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
 

Tendances (20)

フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみたフロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
 
Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
 
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
JSオジサン openframeworks emscripten
JSオジサン openframeworks emscriptenJSオジサン openframeworks emscripten
JSオジサン openframeworks emscripten
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
 
初心者のためのWeb標準技術
初心者のためのWeb標準技術初心者のためのWeb標準技術
初心者のためのWeb標準技術
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
完全負け組なモバイルWebが、これから復活する(多分)
完全負け組なモバイルWebが、これから復活する(多分)完全負け組なモバイルWebが、これから復活する(多分)
完全負け組なモバイルWebが、これから復活する(多分)
 
SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術SPAを実現するために必要な通信技術
SPAを実現するために必要な通信技術
 
いい感じのフロントエンド開発環境を作ってみた
いい感じのフロントエンド開発環境を作ってみたいい感じのフロントエンド開発環境を作ってみた
いい感じのフロントエンド開発環境を作ってみた
 
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
 
HTML5 開発環境の紹介
HTML5 開発環境の紹介HTML5 開発環境の紹介
HTML5 開発環境の紹介
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
One-time Binding & $digest
One-time Binding & $digestOne-time Binding & $digest
One-time Binding & $digest
 

Similaire à 次世代Web業務アプリケーション

Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
Masakazu Muraoka
 
スマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントスマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイント
Masakazu Muraoka
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
y_uuki
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
Masakazu Muraoka
 
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
Masakazu Muraoka
 
Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況
Masakazu Muraoka
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
Masakazu Muraoka
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
 

Similaire à 次世代Web業務アプリケーション (20)

デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
デブサミ2014【13-D-2】川田寛氏 HTML5がSIに与えた衝撃、エンジニアは何を学ぶべきか?
 
Dev sum2014
Dev sum2014Dev sum2014
Dev sum2014
 
Html5 and Graphics
Html5 and GraphicsHtml5 and Graphics
Html5 and Graphics
 
AMD basic and practice
AMD basic and practiceAMD basic and practice
AMD basic and practice
 
Dreamweaver CS6で作るレスポンシブWebデザイン
Dreamweaver CS6で作るレスポンシブWebデザインDreamweaver CS6で作るレスポンシブWebデザイン
Dreamweaver CS6で作るレスポンシブWebデザイン
 
デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界
デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界
デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界
 
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
 
HTML5 and Graphics
HTML5 and GraphicsHTML5 and Graphics
HTML5 and Graphics
 
html5とcss3実例紹介とデモ
html5とcss3実例紹介とデモhtml5とcss3実例紹介とデモ
html5とcss3実例紹介とデモ
 
イマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れイマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れ
 
スマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントスマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイント
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
 
LightSwitchでWebアプリ開発
LightSwitchでWebアプリ開発LightSwitchでWebアプリ開発
LightSwitchでWebアプリ開発
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
 
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
 
Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況
 
Htmlのコトバ
HtmlのコトバHtmlのコトバ
Htmlのコトバ
 
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 

Plus de Fumio SAGAWA (9)

三大フレームワーク(Angular, react, vue.js) 比較によるweb components 入門
三大フレームワーク(Angular, react, vue.js) 比較によるweb components 入門三大フレームワーク(Angular, react, vue.js) 比較によるweb components 入門
三大フレームワーク(Angular, react, vue.js) 比較によるweb components 入門
 
NativeScript with angular2
NativeScript with angular2NativeScript with angular2
NativeScript with angular2
 
どういったフレームワークを選ぶべきか
どういったフレームワークを選ぶべきかどういったフレームワークを選ぶべきか
どういったフレームワークを選ぶべきか
 
イマドキのフロントエンド開発
イマドキのフロントエンド開発イマドキのフロントエンド開発
イマドキのフロントエンド開発
 
Start angular2
Start angular2Start angular2
Start angular2
 
HTML5最前線
HTML5最前線HTML5最前線
HTML5最前線
 
ngJapan報告会
ngJapan報告会ngJapan報告会
ngJapan報告会
 
Single-page application
Single-page applicationSingle-page application
Single-page application
 
開発スタイルのこれから for Backbone (powerd by Yeoman)
開発スタイルのこれから for Backbone (powerd by Yeoman)開発スタイルのこれから for Backbone (powerd by Yeoman)
開発スタイルのこれから for Backbone (powerd by Yeoman)
 

次世代Web業務アプリケーション