SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
TypeScript 勉強会


                                    @v vakame


Saturday, January 26, 13
俺の名前を言ってみろ

                       わかめ まさひろ
                                         @v vakame
                           GoogleAppEngine

                               Android

                                  alterJS
Saturday, January 26, 13
アンケート

                           • JavaScriptバリバリです

                           • Java+Servletバリバリです

                           • Java+Androidバリバリです

                           • C言語ならまかせろー!

                           • ハードウェアなら任せろー!


Saturday, January 26, 13
今日の約束

                     • 話の途中でも質問して良い

                           • 挙手はする

                           • JavaScriptの質問でもまぁよし

                     • Twitterをちょっと盛る

                           • #tsjpstudy


Saturday, January 26, 13
Webアプリの時代
                           • Webアプリがどんどんリッチに
                            • Google Maps
                            • GoogleApps
                            • Facebook
                           • 大規模開発の必要性
                            • コードたくさん
                            • 関係者多数
                           • サーバの土管化 (JSON吐く機械)

Saturday, January 26, 13
JavaScript sucks!
                           • JavaScriptは確かに良い言語だよ
                           • しかし腐ってる部分もクソ多い
                           • packageとかnamespaceとかない
                            • 綺麗なコード書ける=上級者
                           • prototypeのOOP??ナニソレ
                           • 型( ゚!゚)クレ 動的型付とかないわ
                           • なのにブラウザ上で動くのはJSだけ

Saturday, January 26, 13
TypeScriptって?
                     • Anders Hejlsberg開発
                           • MSのC#の作者
                     • JavaScriptに変換して実行する
                     • ECMAScript6を意識
                           • 未来が来ないなら俺が行く!
                           • 現行ブラウザは 3.1 がほとんど
                           • JavaScriptはイケてない!

Saturday, January 26, 13
TypeScript the Great
                           • JSのSuperSet(上位互換)だよ!
                            • 全てのJSはTypeScriptである
                           • 可読性の高い変換後JSコード
                           • moduleあるよ!
                           • classもあるよ!継承もあるよ!
                           • 型もあるよ!
                           • 既存の資産も捨てなくて済むよ!
                           • TypeScriptはロックインもされない!

Saturday, January 26, 13
型がある
                           • リファクタリングした時安心

                           • IDEが賢くなる余地が大きい

                            • シンボルのリネーム

                            • メソッドシグニチャの変更

                            • 100%アクセス可能な要素のみ補完

                           • 作り始めた時 != 設計の決定

Saturday, January 26, 13
TypeScript以外は?

                           • まとめて alterJS と呼ばれるらしい

                           • CoffeeScript
                           • Dart
                           • JSX
                           • Haxe



Saturday, January 26, 13
CoffeeScriptは?
                           • Better JavaScript
                           • インデントベース
                           • 可読性の高い変換後JSコード
                           • Railsで標準採用
                           • classベースのOOP
                           • 既存の資産も活かせる
                           • TG社でもみんなが使ってる
                           • 惜しむらくは型がない!

Saturday, January 26, 13
Dartは?
                           • Google先生が作ってる
                           • 将来的にJavaScriptを完全に置き換え
                           • 全く別言語からの変換
                            • 変換後JSはかなり読めない
                           • Dartにロックインされる
                           • IDEが並行で開発されている!!
                           • 言語仕様が後発のくせに芋っぽい
Saturday, January 26, 13
JSXは?
                           • DeNAが作ってる

                           • 動作速度最優先!強力な最適化!

                           • それなりにES6っぽい見た目

                            • 変換後JSはかなり読めない

                           • 開発のリソースがちょっと足りなさげ

Saturday, January 26, 13
Haxeは?
                           • OCamlで書かれている

                           • 言語仕様的にはかなり美しい

                           • 変換後JSはかなり読めない

                           • 色々な言語に変換できる

                           • 優秀なIDEがWindowsにしかない

Saturday, January 26, 13
まとめ
       CoffeeScript
           僕Python派閥なんで…
       Dart
                     そもそもJavaScript捨てる予定だしー
       JSX
                     お前に足りないものは情熱思想理念頭脳気品優
       Haxe
          僕JS以外にも狙い定めてるし僕の言語仕様
                     超美しいよ!なんてったってOCamlだしね!
       TypeScript
           JavaScript後進の優等生ざます
Saturday, January 26, 13
残念ながら…


         JavaScriptわからずに開発できるほど甘くはないぜ
                JavaScriptも基本教養として学習しましょう。
                              TypeScriptを踏み台にするのは大アリ




Saturday, January 26, 13
TypeScriptの実践へ



Saturday, January 26, 13
既存資産の活用
                           • 型指定ファイルを作成

                            • xxx.d.ts という拡張子

                           • お手本はたくさんある

                           • 普通のtsコンパイルで.d.tsの出力も

                           • Roadmapでは0.9.xで集積サイトが

Saturday, January 26, 13
TypeScript実装
                           • この後松崎さんから詳しく

                           • TypeScriptはTypeScriptで書かれてる

                            • コンパイラ = JavaScript

                            • ブラウザ上でコンパイラが動く!

                             • Playground
                            • あとまぁNode.jsでも動く

Saturday, January 26, 13
構造的部分型

                           • シグニチャあってればまぁいいか

                           • interface Hoge { name: string }
                           • function foo(hoge: Hoge) { ... }
                           • foo({ name: “羊”}); // OK!

                           • このお陰で既存資産の活用が現実的


Saturday, January 26, 13
ライブコーディング!


                           • 時間ある?

                           • GAE/J&Slim3 + TypeScript&AngularJS
                           • 作りかけのアプリに1機能追加してみる




Saturday, January 26, 13
参考
                     • G+ TypeScript
                           • http://vvaka.me/U0LuCB
                     • わかめはてブ

                           • http://vvaka.me/WOYMmL
                     • TypeScript クイックガイド

                           • http://phyzkit.net/typescript/

Saturday, January 26, 13
参考
                     • Playground
                      • http://www.typescriptlang.org/
                         Playground/
                     • Spec
                      • http://vvaka.me/UL7KUz
                     • DefinitelyTyped
                      • http://vvaka.me/WYHzGT
                     • 今日の元ネタ
                           • http://vvaka.me/VokmDn

Saturday, January 26, 13

Mais conteúdo relacionado

Mais procurados

MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話Akihiro Kuwano
 
初心から一週間で作ってみた Kinesis Client Library for Go
初心から一週間で作ってみた Kinesis Client Library for Go初心から一週間で作ってみた Kinesis Client Library for Go
初心から一週間で作ってみた Kinesis Client Library for GoTerui Masashi
 
わたしのRubyの楽しみかた
わたしのRubyの楽しみかたわたしのRubyの楽しみかた
わたしのRubyの楽しみかたYuusaku Iwamoto
 
R stan導入公開版
R stan導入公開版R stan導入公開版
R stan導入公開版考司 小杉
 
真にスレッドセーフなHash mapとは #渋谷java
真にスレッドセーフなHash mapとは  #渋谷java真にスレッドセーフなHash mapとは  #渋谷java
真にスレッドセーフなHash mapとは #渋谷javaHiroyuki Ohnaka
 
データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
 データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831 データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831Yusaku Kinoshita
 
LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!Toshio Ehara
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + NashornTakuya Ueda
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステムShinya Mochida
 
20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなし20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなしivoryworks .
 
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷wpscala
 
mozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-divermozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-diverJxck Jxck
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介しくみ製作所
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」Muyuu Fujita
 
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことksimoji
 
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話Yusaku Kinoshita
 

Mais procurados (20)

MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話
 
初心から一週間で作ってみた Kinesis Client Library for Go
初心から一週間で作ってみた Kinesis Client Library for Go初心から一週間で作ってみた Kinesis Client Library for Go
初心から一週間で作ってみた Kinesis Client Library for Go
 
Database smells
Database smellsDatabase smells
Database smells
 
Meguro es7
Meguro es7Meguro es7
Meguro es7
 
わたしのRubyの楽しみかた
わたしのRubyの楽しみかたわたしのRubyの楽しみかた
わたしのRubyの楽しみかた
 
R stan導入公開版
R stan導入公開版R stan導入公開版
R stan導入公開版
 
真にスレッドセーフなHash mapとは #渋谷java
真にスレッドセーフなHash mapとは  #渋谷java真にスレッドセーフなHash mapとは  #渋谷java
真にスレッドセーフなHash mapとは #渋谷java
 
データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
 データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831 データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
 
LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + Nashorn
 
片手間JS on Rails
片手間JS on Rails片手間JS on Rails
片手間JS on Rails
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム
 
20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなし20101009 gunma.web#2 スタパさんをつくるはなし
20101009 gunma.web#2 スタパさんをつくるはなし
 
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
 
mozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-divermozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-diver
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
 
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
 
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 

Semelhante a TypeScript 勉強会

JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方Shuyo Nakatani
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会Masahiro Wakame
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!K Kinzal
 
LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂masayoshi takahashi
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作Yuki Yazaki
 
ミニマムswfエンジン for iOS
ミニマムswfエンジン for iOSミニマムswfエンジン for iOS
ミニマムswfエンジン for iOSflare phoenix
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道Shigeru UCHIYAMA
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Isamu Suzuki
 
Dark vol4 for_slideshare
Dark vol4 for_slideshareDark vol4 for_slideshare
Dark vol4 for_slideshareara_ta3
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScriptyjono Seino
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScriptyjono Seino
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめYuki Ishikawa
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3Masahiro Wakame
 
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしようRxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしようFumihiko Shiroyama
 
春のJavaScript祭り
春のJavaScript祭り春のJavaScript祭り
春のJavaScript祭りMasahiro Hata
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 

Semelhante a TypeScript 勉強会 (20)

Slimの紹介
Slimの紹介Slimの紹介
Slimの紹介
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
 
ミニマムswfエンジン for iOS
ミニマムswfエンジン for iOSミニマムswfエンジン for iOS
ミニマムswfエンジン for iOS
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
 
Dark vol4 for_slideshare
Dark vol4 for_slideshareDark vol4 for_slideshare
Dark vol4 for_slideshare
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScript
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScript
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめ
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしようRxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
 
春のJavaScript祭り
春のJavaScript祭り春のJavaScript祭り
春のJavaScript祭り
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 

Mais de Masahiro Wakame

GoCon2016 spring 自作Webフレームワーク uconを作った話
GoCon2016 spring 自作Webフレームワーク uconを作った話GoCon2016 spring 自作Webフレームワーク uconを作った話
GoCon2016 spring 自作Webフレームワーク uconを作った話Masahiro Wakame
 
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るGoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るMasahiro Wakame
 
TypeScriptは明日から使うべき
TypeScriptは明日から使うべきTypeScriptは明日から使うべき
TypeScriptは明日から使うべきMasahiro Wakame
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部Masahiro Wakame
 
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKMasahiro Wakame
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEWMasahiro Wakame
 
20ヶ月を取り戻す Dart flight school
20ヶ月を取り戻す Dart flight school20ヶ月を取り戻す Dart flight school
20ヶ月を取り戻す Dart flight schoolMasahiro Wakame
 
Google Glassでできること XE11版 最新開発情報 Mirror API & GDK
Google Glassでできること XE11版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE11版 最新開発情報 Mirror API & GDK
Google Glassでできること XE11版 最新開発情報 Mirror API & GDKMasahiro Wakame
 
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例Masahiro Wakame
 
ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築Masahiro Wakame
 
Firefox OS勉強会 2nd TypeScript+AngularJS
Firefox OS勉強会 2nd TypeScript+AngularJSFirefox OS勉強会 2nd TypeScript+AngularJS
Firefox OS勉強会 2nd TypeScript+AngularJSMasahiro Wakame
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までMasahiro Wakame
 
俺とお前とGoogleware
俺とお前とGoogleware俺とお前とGoogleware
俺とお前とGooglewareMasahiro Wakame
 
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作ったDatastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作ったMasahiro Wakame
 
函館IKA Eclipse活用術
函館IKA Eclipse活用術函館IKA Eclipse活用術
函館IKA Eclipse活用術Masahiro Wakame
 
函館IKA ICS開発情報
函館IKA ICS開発情報函館IKA ICS開発情報
函館IKA ICS開発情報Masahiro Wakame
 

Mais de Masahiro Wakame (20)

GoCon2016 spring 自作Webフレームワーク uconを作った話
GoCon2016 spring 自作Webフレームワーク uconを作った話GoCon2016 spring 自作Webフレームワーク uconを作った話
GoCon2016 spring 自作Webフレームワーク uconを作った話
 
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るGoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
 
TypeScriptは明日から使うべき
TypeScriptは明日から使うべきTypeScriptは明日から使うべき
TypeScriptは明日から使うべき
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
 
Google Glass XE17版
Google Glass XE17版Google Glass XE17版
Google Glass XE17版
 
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
 
20ヶ月を取り戻す Dart flight school
20ヶ月を取り戻す Dart flight school20ヶ月を取り戻す Dart flight school
20ヶ月を取り戻す Dart flight school
 
TypeScript 独習会
TypeScript 独習会TypeScript 独習会
TypeScript 独習会
 
Google Glassでできること XE11版 最新開発情報 Mirror API & GDK
Google Glassでできること XE11版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE11版 最新開発情報 Mirror API & GDK
Google Glassでできること XE11版 最新開発情報 Mirror API & GDK
 
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
 
ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築
 
Firefox OS勉強会 2nd TypeScript+AngularJS
Firefox OS勉強会 2nd TypeScript+AngularJSFirefox OS勉強会 2nd TypeScript+AngularJS
Firefox OS勉強会 2nd TypeScript+AngularJS
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
 
俺とお前とGoogleware
俺とお前とGoogleware俺とお前とGoogleware
俺とお前とGoogleware
 
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作ったDatastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
 
わかめモナ化LT
わかめモナ化LTわかめモナ化LT
わかめモナ化LT
 
NFC app launcher
NFC app launcherNFC app launcher
NFC app launcher
 
函館IKA Eclipse活用術
函館IKA Eclipse活用術函館IKA Eclipse活用術
函館IKA Eclipse活用術
 
函館IKA ICS開発情報
函館IKA ICS開発情報函館IKA ICS開発情報
函館IKA ICS開発情報
 

TypeScript 勉強会

  • 1. TypeScript 勉強会 @v vakame Saturday, January 26, 13
  • 2. 俺の名前を言ってみろ わかめ まさひろ @v vakame GoogleAppEngine Android alterJS Saturday, January 26, 13
  • 3. アンケート • JavaScriptバリバリです • Java+Servletバリバリです • Java+Androidバリバリです • C言語ならまかせろー! • ハードウェアなら任せろー! Saturday, January 26, 13
  • 4. 今日の約束 • 話の途中でも質問して良い • 挙手はする • JavaScriptの質問でもまぁよし • Twitterをちょっと盛る • #tsjpstudy Saturday, January 26, 13
  • 5. Webアプリの時代 • Webアプリがどんどんリッチに • Google Maps • GoogleApps • Facebook • 大規模開発の必要性 • コードたくさん • 関係者多数 • サーバの土管化 (JSON吐く機械) Saturday, January 26, 13
  • 6. JavaScript sucks! • JavaScriptは確かに良い言語だよ • しかし腐ってる部分もクソ多い • packageとかnamespaceとかない • 綺麗なコード書ける=上級者 • prototypeのOOP??ナニソレ • 型( ゚!゚)クレ 動的型付とかないわ • なのにブラウザ上で動くのはJSだけ Saturday, January 26, 13
  • 7. TypeScriptって? • Anders Hejlsberg開発 • MSのC#の作者 • JavaScriptに変換して実行する • ECMAScript6を意識 • 未来が来ないなら俺が行く! • 現行ブラウザは 3.1 がほとんど • JavaScriptはイケてない! Saturday, January 26, 13
  • 8. TypeScript the Great • JSのSuperSet(上位互換)だよ! • 全てのJSはTypeScriptである • 可読性の高い変換後JSコード • moduleあるよ! • classもあるよ!継承もあるよ! • 型もあるよ! • 既存の資産も捨てなくて済むよ! • TypeScriptはロックインもされない! Saturday, January 26, 13
  • 9. 型がある • リファクタリングした時安心 • IDEが賢くなる余地が大きい • シンボルのリネーム • メソッドシグニチャの変更 • 100%アクセス可能な要素のみ補完 • 作り始めた時 != 設計の決定 Saturday, January 26, 13
  • 10. TypeScript以外は? • まとめて alterJS と呼ばれるらしい • CoffeeScript • Dart • JSX • Haxe Saturday, January 26, 13
  • 11. CoffeeScriptは? • Better JavaScript • インデントベース • 可読性の高い変換後JSコード • Railsで標準採用 • classベースのOOP • 既存の資産も活かせる • TG社でもみんなが使ってる • 惜しむらくは型がない! Saturday, January 26, 13
  • 12. Dartは? • Google先生が作ってる • 将来的にJavaScriptを完全に置き換え • 全く別言語からの変換 • 変換後JSはかなり読めない • Dartにロックインされる • IDEが並行で開発されている!! • 言語仕様が後発のくせに芋っぽい Saturday, January 26, 13
  • 13. JSXは? • DeNAが作ってる • 動作速度最優先!強力な最適化! • それなりにES6っぽい見た目 • 変換後JSはかなり読めない • 開発のリソースがちょっと足りなさげ Saturday, January 26, 13
  • 14. Haxeは? • OCamlで書かれている • 言語仕様的にはかなり美しい • 変換後JSはかなり読めない • 色々な言語に変換できる • 優秀なIDEがWindowsにしかない Saturday, January 26, 13
  • 15. まとめ CoffeeScript 僕Python派閥なんで… Dart そもそもJavaScript捨てる予定だしー JSX お前に足りないものは情熱思想理念頭脳気品優 Haxe 僕JS以外にも狙い定めてるし僕の言語仕様 超美しいよ!なんてったってOCamlだしね! TypeScript JavaScript後進の優等生ざます Saturday, January 26, 13
  • 16. 残念ながら… JavaScriptわからずに開発できるほど甘くはないぜ JavaScriptも基本教養として学習しましょう。 TypeScriptを踏み台にするのは大アリ Saturday, January 26, 13
  • 18. 既存資産の活用 • 型指定ファイルを作成 • xxx.d.ts という拡張子 • お手本はたくさんある • 普通のtsコンパイルで.d.tsの出力も • Roadmapでは0.9.xで集積サイトが Saturday, January 26, 13
  • 19. TypeScript実装 • この後松崎さんから詳しく • TypeScriptはTypeScriptで書かれてる • コンパイラ = JavaScript • ブラウザ上でコンパイラが動く! • Playground • あとまぁNode.jsでも動く Saturday, January 26, 13
  • 20. 構造的部分型 • シグニチャあってればまぁいいか • interface Hoge { name: string } • function foo(hoge: Hoge) { ... } • foo({ name: “羊”}); // OK! • このお陰で既存資産の活用が現実的 Saturday, January 26, 13
  • 21. ライブコーディング! • 時間ある? • GAE/J&Slim3 + TypeScript&AngularJS • 作りかけのアプリに1機能追加してみる Saturday, January 26, 13
  • 22. 参考 • G+ TypeScript • http://vvaka.me/U0LuCB • わかめはてブ • http://vvaka.me/WOYMmL • TypeScript クイックガイド • http://phyzkit.net/typescript/ Saturday, January 26, 13
  • 23. 参考 • Playground • http://www.typescriptlang.org/ Playground/ • Spec • http://vvaka.me/UL7KUz • DefinitelyTyped • http://vvaka.me/WYHzGT • 今日の元ネタ • http://vvaka.me/VokmDn Saturday, January 26, 13