SlideShare a Scribd company logo
1 of 68
Download to read offline
覚醒JavaScript
ES6で作るIsomophicアプリケーション
株式会社サイバード
ゲーム事業本部イケメンスタジオ
大西 啓太郎
自己紹介
{
name: '大西 啓太郎',
twitter: '@keitarouhoge',
job: {
company: 'CYBIRD',
team: 'イケメンスタジオ',
role: 'WEBエンジニア',
age: '2014年新卒入社2年目'
},
skills: ['PHP', 'Ruby', 'JavaScript',
'Node.js', 'Java']
}
今日話したいこと
そう、JavaScriptです
今日話したいこと
• ES6ってなんぞや
• Isomophicってなんぞや
• 実際に現場でES6を導入してみたという話
ES6ってなんぞや
ES6って何?
ES6(ECMAScript6)は次のECMAScriptのスタンダードであり、
2015年6月に仕様が確定し、現在色々なブラウザやNode.jsなど
のJavaScript実行エンジンで実装が進んでいます。
新しい構文のサポートなどでJavaScriptでのプログラミングの表
現力が増します!
*ECMAScript: Ecma Internationalによって標準化されたスクリ
プト言語である。実装ごとの互換性が低い JavaScript 類(特に
JScript)の標準を定めたものである
ES6 -> ECMAScript 2015(ES2015)
ES6と今まで呼ばれていたものが改名された。今後は年単位のよ
り細かいリリースを計画しているようです
ECMAScript7
ES6のFeatureを一部紹
介
class構文をサポート
class Animal
{
constructor(name)
{
this.name = name;
}
sayName()
{
console.log('my name is %s', this.name);
}
tree()
{
return 'Animal';
}
static classname()
{
return 'Animal';
}
}
class構文をサポート
継承も簡単にできるようになりました
class Dog extends Animal
{
sayName()
{
console.log('wanwan. my name is %s', this.name);
}
tree()
{
return (super.tree() + ':Dog');
}
}
Generatorをサポート
function* anotherGenerator(i) {
yield i + 1;
yield i + 2;
yield i + 3;
}
function* generator(i){
yield i;
yield* anotherGenerator(i);
yield i + 10;
}
var gen = generator(10);
console.log(gen.next().value);
Generatorはすごい
• Generatorが関数の実行を状態を保ったまま中断できる特性
を活かして非同期処理の制御を行うことができる
• 非同期処理に対して、手続き型ちっくなアプローチが可能で
try~catch構文もカジュアルに利用することができる
• 『co』というライブラリと一緒に使うことですごい使いやす
くなる
1秒後に足し算結果を返す非同期関数
var calc = function(a, b)
{
return new Promise(function(resolve) {
setTimeout(function() {
resolve(a + b);
}, 1000);
});
}
var calc = function(a, b)
{
return new Promise(function(resolve) {
setTimeout(function() {
resolve(a + b);
}, 1000);
});
}
calc(10, 20).then(function(result){
console.log(result);
});
Call Back Hell
calc(1, 2).then(function(result){
console.log(result);
calc(10, 20).then(function(result){
console.log(result);
calc(100, 200).then(function(result){
console.log(result);
});
});
});
then Chain
calc(1, 2)
.then(function(result){
console.log(result);
return calc(10, 20);
})
.then(function(result){
console.log(result);
return calc(100, 200);
})
.then(function(result){
console.log(result);
});
非同期処理の並列実行
Promise.all([
calc(1, 2),
calc(10, 20),
calc(100, 200),
])
.then(function(results){
console.log(results);
});
Generatorを知らない
JavaScriptはこれが限界
yieldによる関数実行の中断
var calc = function(a, b)
{
return new Promise(function(resolve) {
setTimeout(function() {
resolve(a + b);
}, 1000);
});
}
var co = require('co');
co(function *(){
var a = yield calc(1, 2);
console.log(a);
});
Call Back Hell, then Chainいらない
var co = require('co');
co(function *(){
var a = yield calc(1, 2);
console.log(a);
var b = yield calc(10, 20);
console.log(b);
var c = yield calc(100, 200);
console.log(c);
});
並列実行も簡単
var co = require('co');
co(function *(){
var results = yield [
calc(1, 2),
calc(10, 20),
calc(100, 200),
];
console.log(results);
});
Generator + co 最高!
大本命『Async, Await』
ES7でやってくる
var run = async function(){
var result = await calc(1, 2);
console.log(result);
var result = await calc(10, 20);
console.log(result);
var result = await calc(100, 200);
console.log(result);
};
run();
JavaScriptの非同期処理制御の歴史
1. Ajaxの登場による非同期処理に対する需要が高ぶる
2. Callback Hell(コールバック地獄)(Ajax浸透)
3. ThenableインタフェースによるCallback Hellからの脱出・高
度な非同期処理制御の提供開始(Promise)
4. Generator構文, coによる手続き型ちっくな効果可読性を重視
した制御が可能に(ES6)
5. 言語レベルでの非同期処理制御のサポート(ES7)
Template Strings
`string text`
`string text line 1
string text line 2`
`string text ${expression} string text`
Default Paramaters
function add(x=10, y= 20)
{
return x+y;
}
console.log('1+2 = %s', add(1,2));
console.log('1 = %s', add(1));
console.log(' = %s', add());
ES6によってJavaScriptがもっと楽し
く書けるようになった!!
ブラウザでのES6対応状況
https://kangax.github.io/compat-table/es6/
デスクトップブラウザ
Edge > Firefox > Chrome >>>> IE, Safari
サーバーランタイム・モバイルブラウザ
Node.js v4から一気対応が増えた!
モバイルはまだまだ時間がかかりそう
こう思いませんか??
• なんだ数年後の話か
• こんな未来の話はいつの間にか消え去るのがいつもの流れ
• やっぱTypeScriptが最高なんや!
Babel
つまりどういうことだってばよ
ES6で書かれたJavaScriptのコードをES5(従来のブラウザで実行
できる形に変換します)
『トランスコンパイラ』と呼ばれています。
$ babel xxx.js > yyy.js
$ babel-node xxx.js
これが
class Animal
{
constructor(name)
{
this.name = name;
}
sayName()
{
console.log('my name is %s', this.name);
}
}
'use strict';
var _createClass = .......
function _classCallCheck(instance, Constructor) { ..... }
var Animal = (function () {
function Animal(name) {
_classCallCheck(this, Animal);
this.name = name;
}
_createClass(Animal, [{
key: 'sayName',
value: function sayName() {
console.log('my name is %s', this.name);
}
}]);
return Animal;
})();
※一部削っています。
今日からES6で
JavaScriptは書ける!!
自動化!自動化!
JavaScriptビルドツール
• Grunt
• Gulp
• Fly
これらのツールを使うことでBabelでのトランスコンパイル作業
を自動化することも簡単にできるようになります。
※FlyはES6/ES7で作られたビルドツールです。
Isomophicってなんぞや
Isomophicのコンセプト
アプリケーションの状態とコードは、ブラウザとサーバ間で共
有されています。サーバがリクエストを受け取ると、新しい
flux-reactアプリケーショ ンインスタンスを生成してレンダリン
グをします。すると、ストレージ(アプリケーション)の状態
がそのレンダリング済みのHTMLアウトプットに渡されま す:
サーバはこのレンダリング済みのファイルで応答します。 ブラ
ウザは(BrowserifyやWebpackで作られた)同じコードをロー
ドし.....
なんか難しい
私の中のIsomophicのキーワード
• Node.js/JavaScriptで書かれたコードである
• サーバーサイド・ブラウザ(クライアント)環境にてソースコー
ド・ライブラリを使い回すことができる
• サーバーサイド・ブラウザどっちでも動くプログラムである
Isomophicであることに
よるメリット
Validation処理を1つのソースコード
で定義することでサーバー・クライア
ント両方でValidationできる
ゲームであればチート対策などに効果的!
しかも低コスト!
サーバー・クライアントのどっちかソ
ースコードを修正するだけでもう片方
の振る舞いも変化させることができ
る。
ソースコードの修正が少なくて低コスト!
全部JavaScriptで書くことができる
学習コストが低い!
サーバー担当・クライアント担当みたいな変な役割を無くすこ
とでコミュニケーションコスト削減!
ブラウザ用JavaScriptの出力などは自動化!
• RequireJS
• Browserify
• Webpack
最近はWebpackが流行っている模様
こんなはなしがやってきた
• 某シリーズもののゲームの集計システムを作ってくれ。
• バッチ処理で夜間に集計を集計をブンブン回して、集計結果
をAPIで取得できて、ブラウザで閲覧できるやつね。
• 将来的に色々なタイトルで利用するから汎用性高くてイケて
るやつね。
こんな構成に
• バッチ処理: Node.js
• API: Node.js(Express)
• ブラウザ: Backbone.js / Marionette.js
お気づきでしょうか・・・
そう、すべてJavaScriptで作られてい
ることに
• Node.js(v4.0.0)
• ECMAScript6
• トランスコンパイラ: Babel
他にも
• ソースコードのリポジトリも1つで全部やっています。
• OSSのライブラリに頼って開発していますが、全部同じライ
ブラリを使っています。
• テスティングフレームワークも『Mocha』『power-assert』
『Nightmare2』などを使って同じしくみでテストができてい
ます。
ビルドフロー
export function* build () {
yield this.start(['to5', 'browserify'])
}
export function* to5 () {
yield this.clear(paths.dist.lib)
yield this
.source(paths.src)
.babel({
stage: 0, sourceMaps: true
})
.target(paths.dist.lib)
}
export function* browserify () {
yield this.clear(paths.dist.browser)
yield this
.source(paths.dist.lib + '/www/public/app.js')
.browse()
.concat('app.js')
.target(paths.dist.browser)
}
ES6/Isomiphic使ってよかったこと
• Class構文により、やっとJavaScriptが普通の言語になったの
で、他の言語の人もJavaScriptにとっつきやすくなった
• Generatorの導入によって非同期処理の制御が簡単にできる
ようになった
• 書くソースコードの量が圧倒的に少なくて楽できている
• JavaScript芸人というポジションを確立できたこと
ES6/Node.jsを現場に浸透させるため
の苦労
• 社内・社外のパートナー含め、周りはPHPの人が多い
• JavaScriptはある程度触れる人は多いが、新しく覚えてもら
うことも多い
Lesson教材が実は充実している
• javascripting(JavaScriptお勉強用ライブラリ)
• learnyounode(Node.jsお勉強用ライブラリ)
• tower-of-babel(ES6お勉強用ライブラリ)
• how-to-npm(パッケージ管理に関してのお勉強ライブラリ)
辛い話
• 他の言語も書いてみたい(Golang, Elixir, Rubyとかね)
• Class構文でPropertyを扱いづらい
class Sample
{
name: 'sample';
sayName()
{
console.log('my name is %s', this.name);
}
}
// my name is undefined
new Sample().sayName();
※半年後にはどうなっているかわかりませんが常に最新の
JavaScriptを追い求めていきます!
みんなでJavaScriptの波に乗りましょう!
ご清聴ありがとうござい
ました。

More Related Content

What's hot

JavaScript基礎勉強会
JavaScript基礎勉強会JavaScript基礎勉強会
JavaScript基礎勉強会大樹 小倉
 
モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScriptOsamu Monoe
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancementkamiyam .
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~JustSystems Corporation
 
これからのJavaScriptの話
これからのJavaScriptの話これからのJavaScriptの話
これからのJavaScriptの話Shogo Sensui
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜JustSystems Corporation
 
Javaキャッチアップ(SE9-12)
Javaキャッチアップ(SE9-12)Javaキャッチアップ(SE9-12)
Javaキャッチアップ(SE9-12)risa buto
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpNorito Agetsuma
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform信之 岩永
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LTAzure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LTJun-ichi Sakamoto
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiTomohiro Kumagai
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamerYoshitaka Kawashima
 

What's hot (20)

JavaScript基礎勉強会
JavaScript基礎勉強会JavaScript基礎勉強会
JavaScript基礎勉強会
 
モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
 
これからのJavaScriptの話
これからのJavaScriptの話これからのJavaScriptの話
これからのJavaScriptの話
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
 
Javaキャッチアップ(SE9-12)
Javaキャッチアップ(SE9-12)Javaキャッチアップ(SE9-12)
Javaキャッチアップ(SE9-12)
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
Heap statsfx analyzer
Heap statsfx analyzerHeap statsfx analyzer
Heap statsfx analyzer
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LTAzure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer
 

Viewers also liked

BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!Toshio Ehara
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おうHayashi Yuichi
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶdcubeio
 
Titanium CLI × Alloy × CoffeeScript × Jade で作るiPhoneアプリのお話
Titanium CLI × Alloy  ×  CoffeeScript × Jade  で作るiPhoneアプリのお話Titanium CLI × Alloy  ×  CoffeeScript × Jade  で作るiPhoneアプリのお話
Titanium CLI × Alloy × CoffeeScript × Jade で作るiPhoneアプリのお話Oonishi Keitarou
 
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)Oonishi Keitarou
 
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in productionUsing JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in productionAnže Žnidaršič
 
ES6時代におけるWeb開発者とセキュリティ業界の乖離
ES6時代におけるWeb開発者とセキュリティ業界の乖離ES6時代におけるWeb開発者とセキュリティ業界の乖離
ES6時代におけるWeb開発者とセキュリティ業界の乖離Yosuke HASEGAWA
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returnsdynamis
 
Prototypeベース in JavaScript
Prototypeベース in JavaScriptPrototypeベース in JavaScript
Prototypeベース in JavaScriptRyo Maruyama
 
FileReader and canvas and server silde
FileReader and canvas and server sildeFileReader and canvas and server silde
FileReader and canvas and server sildeNet Kanayan
 
ES6 はじめました
ES6 はじめましたES6 はじめました
ES6 はじめましたNet Kanayan
 
JavaScript : What is it really? AND Some new features in ES6
JavaScript : What is it really? AND Some new features in ES6JavaScript : What is it really? AND Some new features in ES6
JavaScript : What is it really? AND Some new features in ES6Aayush Shrestha
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptMohd Saeed
 
Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうkenji4569
 

Viewers also liked (20)

BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
 
Titanium CLI × Alloy × CoffeeScript × Jade で作るiPhoneアプリのお話
Titanium CLI × Alloy  ×  CoffeeScript × Jade  で作るiPhoneアプリのお話Titanium CLI × Alloy  ×  CoffeeScript × Jade  で作るiPhoneアプリのお話
Titanium CLI × Alloy × CoffeeScript × Jade で作るiPhoneアプリのお話
 
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)
 
Lets start-react
Lets start-reactLets start-react
Lets start-react
 
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in productionUsing JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
 
ES6時代におけるWeb開発者とセキュリティ業界の乖離
ES6時代におけるWeb開発者とセキュリティ業界の乖離ES6時代におけるWeb開発者とセキュリティ業界の乖離
ES6時代におけるWeb開発者とセキュリティ業界の乖離
 
JavaScript.Next Returns
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
 
150421 es6とかな話
150421 es6とかな話150421 es6とかな話
150421 es6とかな話
 
Prototypeベース in JavaScript
Prototypeベース in JavaScriptPrototypeベース in JavaScript
Prototypeベース in JavaScript
 
FileReader and canvas and server silde
FileReader and canvas and server sildeFileReader and canvas and server silde
FileReader and canvas and server silde
 
ES6 - JavaCro 2016
ES6 - JavaCro 2016ES6 - JavaCro 2016
ES6 - JavaCro 2016
 
ES6 はじめました
ES6 はじめましたES6 はじめました
ES6 はじめました
 
kontainer-js
kontainer-jskontainer-js
kontainer-js
 
JavaScript : What is it really? AND Some new features in ES6
JavaScript : What is it really? AND Some new features in ES6JavaScript : What is it really? AND Some new features in ES6
JavaScript : What is it really? AND Some new features in ES6
 
jQuery勉強会#4
jQuery勉強会#4jQuery勉強会#4
jQuery勉強会#4
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 
Getting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascriptGetting started with ES6 : Future of javascript
Getting started with ES6 : Future of javascript
 
Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろう
 

Similar to 覚醒JavaScript -ES6で作るIsomophicアプリケーション-

Node.js勉強会 Framework Koa
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koakamiyam .
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)a know
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能Shingo Sato
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験AdvancedTechNight
 
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!Yuichi Sakuraba
 
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 JavaWebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 JavaKazuhiro Hara
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/AndroidセキュアコーディングMasaki Kubo
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript APIHTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript APIYosuke HASEGAWA
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2Moto Yan
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用Yatabe Terumasa
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイドYuichi Sakuraba
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Hideki Hashizume
 

Similar to 覚醒JavaScript -ES6で作るIsomophicアプリケーション- (20)

Node.js勉強会 Framework Koa
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koa
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
 
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 JavaWebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
 
Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
 
TruffleSqueakの紹介
TruffleSqueakの紹介TruffleSqueakの紹介
TruffleSqueakの紹介
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/Androidセキュアコーディング
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript APIHTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
 

覚醒JavaScript -ES6で作るIsomophicアプリケーション-