Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
靖陣
Uploaded by
靖 陣内
PDF, PPTX
4,257 views
TypeScript による今風の web アプリ開発
Modern development of web application with TypeScript
Technology
◦
Related topics:
Web Development
•
Read more
1
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 31
2
/ 31
3
/ 31
4
/ 31
5
/ 31
6
/ 31
7
/ 31
8
/ 31
9
/ 31
10
/ 31
11
/ 31
12
/ 31
13
/ 31
14
/ 31
15
/ 31
16
/ 31
17
/ 31
18
/ 31
19
/ 31
20
/ 31
21
/ 31
22
/ 31
23
/ 31
24
/ 31
25
/ 31
26
/ 31
27
/ 31
28
/ 31
29
/ 31
30
/ 31
31
/ 31
More Related Content
PPTX
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
by
Kondo Hitoshi
PDF
Visual Studioで始めるTypeScript開発入門
by
Narami Kiyokura
PPTX
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
by
Kondo Hitoshi
PDF
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
by
Jun-ichi Sakamoto
PPTX
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
by
Shumpei Shiraishi
PDF
TypeScript超入門
by
Narami Kiyokura
PPTX
TypeScriptをオススメする理由
by
Yusuke Naka
PDF
3日時間をもらったのでTypeScriptを触ってみた
by
Yasushi Kato
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
by
Kondo Hitoshi
Visual Studioで始めるTypeScript開発入門
by
Narami Kiyokura
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
by
Kondo Hitoshi
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
by
Jun-ichi Sakamoto
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
by
Shumpei Shiraishi
TypeScript超入門
by
Narami Kiyokura
TypeScriptをオススメする理由
by
Yusuke Naka
3日時間をもらったのでTypeScriptを触ってみた
by
Yasushi Kato
What's hot
PPTX
TypeScriptはいいぞ
by
Jun Suzuki
PPTX
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
by
Fujio Kojima
PPTX
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
by
慎一 古賀
PDF
Visual Studio ~ 過去、現在、そして未来
by
Akira Inoue
PPTX
JavaScript使いのためのTypeScript実践入門
by
Shumpei Shiraishi
PDF
angular X designer - デザイナからみたAngularJS #ten1club
by
silvers ofsilvers
PPTX
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
by
ShinichiAoyagi
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
by
ShinichiAoyagi
KEY
塹壕よりLivetとMVVM
by
Hiroshi Maekawa
PDF
TypeScript and Visual Studio Code
by
Akira Inoue
PDF
TypeScript 入門してみる
by
Ken Fukuyama
PDF
TypeScript と Visual Studio Code
by
Akira Inoue
PDF
無償版Visual StudioでいろいろWeb開発
by
Narami Kiyokura
PPTX
Xamarin+MVVMCross のあれこれ
by
ShinichiAoyagi
PPTX
AngularJS2でつまづいたこと
by
Takehiro Takahashi
PDF
Win32 APIをてなずけよう
by
Kouji Matsui
PDF
.NET Coreから概観する.NETのOSSへの取り組み
by
Kouji Matsui
PPT
T35 ASP.NET MVCを使ったTDD入門
by
normalian
PPTX
オレたちとVisual Studioとの関係を話そう
by
Mitsuhito Ishino
PDF
React.js + Flux
by
dsuke Takaoka
TypeScriptはいいぞ
by
Jun Suzuki
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
by
Fujio Kojima
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
by
慎一 古賀
Visual Studio ~ 過去、現在、そして未来
by
Akira Inoue
JavaScript使いのためのTypeScript実践入門
by
Shumpei Shiraishi
angular X designer - デザイナからみたAngularJS #ten1club
by
silvers ofsilvers
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
by
ShinichiAoyagi
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
by
ShinichiAoyagi
塹壕よりLivetとMVVM
by
Hiroshi Maekawa
TypeScript and Visual Studio Code
by
Akira Inoue
TypeScript 入門してみる
by
Ken Fukuyama
TypeScript と Visual Studio Code
by
Akira Inoue
無償版Visual StudioでいろいろWeb開発
by
Narami Kiyokura
Xamarin+MVVMCross のあれこれ
by
ShinichiAoyagi
AngularJS2でつまづいたこと
by
Takehiro Takahashi
Win32 APIをてなずけよう
by
Kouji Matsui
.NET Coreから概観する.NETのOSSへの取り組み
by
Kouji Matsui
T35 ASP.NET MVCを使ったTDD入門
by
normalian
オレたちとVisual Studioとの関係を話そう
by
Mitsuhito Ishino
React.js + Flux
by
dsuke Takaoka
Similar to TypeScript による今風の web アプリ開発
PDF
ng-japan 2015 TypeScript+AngularJS 1.3
by
Masahiro Wakame
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
by
Akira Inoue
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
by
Akira Inoue
PDF
TypeScript 言語処理系ことはじめ
by
Yu Nobuoka
PDF
TypeScript 1.0 オーバービュー
by
Akira Inoue
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
by
Masahiro Wakame
PDF
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
by
Akira Inoue
PDF
TypeScriptは明日から使うべき
by
Masahiro Wakame
PDF
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
by
Takuma Morikawa
PDF
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
by
Akira Inoue
PDF
TypeScript 独習会
by
Masahiro Wakame
PDF
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
by
Akira Inoue
PDF
Visual Studio Codeで始めるTypeScript
by
Akira Inoue
PDF
Ecmascript2015とその周辺について
by
豊明 尾古
PPTX
Haxeとtype scriptの比較
by
西田 慎吾
PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
by
Itaru Kitagawa
PDF
Learn ES2015
by
Muyuu Fujita
PDF
TypeScriptへの入口
by
Sunao Tomita
PPTX
TypeScriptからひも解く方向性
by
echigoya-jp
PDF
JSX / Haxe / TypeScript
by
bleis tift
ng-japan 2015 TypeScript+AngularJS 1.3
by
Masahiro Wakame
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
by
Akira Inoue
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
by
Akira Inoue
TypeScript 言語処理系ことはじめ
by
Yu Nobuoka
TypeScript 1.0 オーバービュー
by
Akira Inoue
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
by
Masahiro Wakame
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
by
Akira Inoue
TypeScriptは明日から使うべき
by
Masahiro Wakame
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
by
Takuma Morikawa
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
by
Akira Inoue
TypeScript 独習会
by
Masahiro Wakame
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
by
Akira Inoue
Visual Studio Codeで始めるTypeScript
by
Akira Inoue
Ecmascript2015とその周辺について
by
豊明 尾古
Haxeとtype scriptの比較
by
西田 慎吾
サーバサイドエンジニアが 1年間まじめにSPAやってみた
by
Itaru Kitagawa
Learn ES2015
by
Muyuu Fujita
TypeScriptへの入口
by
Sunao Tomita
TypeScriptからひも解く方向性
by
echigoya-jp
JSX / Haxe / TypeScript
by
bleis tift
TypeScript による今風の web アプリ開発
1.
1 TYPESCRIPT による 今風の WEB アプリ開発by
陣内靖(じんのうちやすし) @delphinus35
2.
2 TYPESCRIPT とは…… 次世代JS -
ECMAScript2015 の上位互換+ 型 Microsoft 製 オープンソース 各種エディタのサポートが充実 MS 製だけどVisual Studio は別に必要ない。 IntelliSense 並みのコード補完を実現するための仕組み が附属。 Vim でも補完できる!
3.
3 ECMASCRIPT2015 で 追加された文法 Class &
Module Arrow Function ()=>{} Block Scope Variables let,const Rest / Spread Parameters (a,b,...args)=>{} New Object Literals {some,more,props} Map / Set, Promise, Generator, Symbol, ... 今後まだまだ増える予定(ES2017 以降?) Decorator, async / await, ...
4.
4 MODULE LOADING some_module.js exportconsthoge="ほげ"; exportfunctionfuga{console.log("ふが");} app.js import{hoge,fuga}from"./some_module"; console.log(hoge); fuga();
5.
5 今までのJS はモジュールという概念がなかった。 変数のスコープは関数スコープのみ。 function(){varhoge;} 複数のファイルで変数・関数を共有したいと思ったらグ ローバル汚染するしかなかった。 ブラウザーならwindow.hoge="ほげ" グローバル汚染せずに複数ファイルに分けて開発が可能 になった! 他の言語なら当たり前の機能がやっと……!
6.
6 TYPESCRIPT はES2015 +
型lethoge:string="ほげ"; //hoge=1;#=>型が stringでないのでエラー! //オリジナルの型を定義できる typeLogLevel="debug"|"info"|"warn"|"error"|"fatal"; functionlog(level:LogLevel,message:string){ console.log(`[${level}]${message}`); } //log("waaarn","fugafuga"); //#=>第1引数の型が LogLevelと合致しないのでエラー!
7.
7 コンパイル時にエラーを見つけてくれる。 とかくフリーダムになりがちなJavaScript では凄く助か る。 今回のプロジェクトではテストとかないのに、コンパイ ル通ったら一発で動いた!スゴイ! テストは書くべきだけどね……(結局書いてない)
8.
8 実践TypeScript をRails プロジェクトで使ってみた。 その中で遭遇した諸々。
9.
9 既存ライブラリーは NPM で管理 jQuery とかunderscore.js
とかいろいろ使いたいときもあ る。 大体のライブラリーは に登録してあるし、してない ものはgithub から直で入れる。 bower? 何それ(^q^) npm #jQueryのインストール npminstall-DEjquery
10.
10 ツールはグローバルに インストールしない 今まではgulp やtypescript 等の関連ツールをグローバル にインストールして使ってた。 これだと各人が入れたバージョンを管理できない>< ビルドした結果が違うと開発に齟齬を来す。 npminstall-gtypescript #/usr/local/bin/typescriptに入る
11.
11 各種ツールはNPM 経由で実行 ツールのインストール先はプロジェクトローカル。 gulp やbrowserify
等のツールも全部npm 経由で実行す る。 package.jsonにタスクを書いて、npmrunで実行。 こうすると、必ずプロジェクトにローカルなバージョン に固定されるので開発者も戸惑わない。 npminstall-DEgulp #node_modules/.bin/gulpに入る npmstart #gulp起動 npmrunbuild #TSをコンパイル &browserify npmrunclean #ビルド済みのファイルを削除 npmruntslint #TSの文法チェック npmruntypedoc #ドキュメント作成 ...
12.
12 パッケージの バージョン管理 各人の環境で、jQuery その他のライブラリや、 TypeScript やgulp
等のツール類もバージョンを揃える必 要がある。 package.jsonとnpm-shrinkwrap.jsonで可能。 Ruby で言うならGemfile.lockみたいなもの。
13.
13 再びTYPESCRIPT の話
14.
14 既存のJS ライブラリと 共存する 最初からTypeScript で書いてあるライブラリなんてほと んどない。 jQuery
プラグインとか使いたい! それ、型定義ファイルでできるよ。
15.
15 型定義ファイル 既存のライブラリーがexport する関数・変数などについ ての型情報が書いてある。 メジャーなライブラリーについては に揃 ってる。 メジャーじゃないものは……自分で書くしかない。 De
nitelyTyped
16.
16 書いてみた例 使用例 jquery-easy-loading.d.ts
17.
17 書いてみた結果…… 型定義ファイルを書くためにはライブラリーのソースを 読んで理解しないといけない。 ドキュメントに返値の型までちゃんと書いてあれば楽 なんだけどね…… 結構大変だけど書かないと開発始められない。 全部any 型にキャストすれば何とかならんでもない。 既存のライブラリーを使いたいときはこのコストとのト レードオフ。
18.
18 複数ファイルをまとめる (TypeScript でも)複数ファイルでアプリを構成するこ とはできるが、<script>をたくさん書くとパフォーマン ス的にアレ。 複数のモジュールを一つにまとめ、場合によっては難読 化する。
19.
19 BROWSERIFY browserifymyapp.js>bundle.js BEFORE <scriptsrc="http://example.com/jquery.min.js"></script> <scriptsrc="http://example.com/underscore.min.js"></script> <scriptsrc="http://example.com/backbone.min.js"></script> <scriptsrc="http://example.com/bootstrap.min.js"></script> <scriptsrc="http://example.com/myapp.js"></script> AFTER <scriptsrc="http://example.com/bundle.js"></script> ファイルサイズは相当でかくなるけどね。
20.
20 RAILS の アセットパイプライン アセットパイプラインとは…… 簡単に言うと、複数のJS, CSS
を連結・圧縮してくれる 便利機能。Coffee やSass からの透過的な変換もやって くれる。 スーパー便利すぎるが故に闇が深い>< アセットパイプライン| Rails日本語ドキュメント| Ruby STUDIO
21.
21 アセットパイプラインと 共存する Sprockets(アセット(略)の主要gem)を全部 JavaScript で置き換えてしまった が、こ こまでやるのは大変。 折衷案として、browserify
でビルドした一つのJS を public/assetsに置く。 app/assets/javascriptsは無視 パッケージによっては個別のCSS / img が必要なこともあ る。(bootstrap とか) これらはapp/assets/...に手でコピーしてアセットパ イプラインに載せる。 スゴイ人も居る
22.
22 タスクの自動化 定型タスクを自動化する。 TypeScript をコンパイル。 複数ファイルをビルドしてまとめる。 (必要なら)難読化する。 (必要なら)スクリプトを所定の場所に移動する。 などなど…… gulp がデファクトスタンダード。 Grunt?
何それ(^q^) JS 界はこんなんばっかり……
23.
23 GULP 定型タスクの例 //JSの文法チェックを eslintで行う gulp.task( 'eslint', ()=>gulp.src('gulp/**/*.js') .pipe(plumber({errorHandler:handleErrors})) .pipe(eslint()) .pipe(eslint.failOnError()) .pipe(plumber.stop()) );
24.
24 だいぶ秘伝のタレ化してしまった。 プロジェクト固有のバッドノウハウの固まりなので一般 化できない。メンテもしにくい。 せめてES2015 で書いてeslint かけることで品質を担保。 gulp
自体バージョン変わると文法もごりごり変わるし、 プロダクト自体すぐにオワコン化する。 Grunt ェ…… この辺はホントJS キツイ。 根本的な解決策は今のところない。
25.
25 フロントエンドの ログを取りたい! 普通のWeb アプリならconsole.log()で十分。 でもWebView で表示してるときのログは見れない。 本番環境ではユーザーの端末で致命的なエラーが起こっ たときに教えて欲しい。
26.
26 ログをバックエンドに送る モジュールを書くLogger.fatal=(message:string):JQueryPromise<{}>=>{ constlevel="fatal"; return$.post("/log",{level,message}); }; //他にも Logger.infoとか Logger.debugとか…… でもこれだと、どこでログを吐いたのか分からない。 (´・ω・`)
27.
27 STACKTRACE-JS https://github.com/stacktracejs/stacktrace.js //logger.ts Logger.fatal=(message:string):Promise<{}>=>{ constlevel="fatal"; returnStackTrace .get() .then((stackframes:StackTrace.StackFrame[])=> Promise.resolve( $.post("/log",{level,message,stackframes}) ) ); }; //hogehoge.ts exportclasshoge{ fuga(){ Logger.fatal("ERROR!!!"); } }
28.
28 スタックトレースが取れるスゴイやつ。 Perl とかRuby のcallerみたいなの。 なんでこんな基本的なものがJS
には標準でないの (怒) Promiseを返すことから分かるように、非同期に動作す る。 ソースマップなどを加味して分かりやすいログを吐いて くれるけど、結構重い。 複数のスタックトレースを同時に生成しようとすると うまく吐けない。
29.
29 まとめJS 界隈は常に勉強して(≒空気を読んで)行かないとす ぐにおいて行かれる。 Rails のような頼れる存在はいないので自分で道を切り開 く必要がある。
30.
30 メリット スゴイ勉強になる(意識高い感) 何もないからこそ、自分の思い通りに作れる万能感。 デメリット 使ってるプロダクトがすぐオワコン化する。 書いたソースがすぐ暗黒化する。 一年後の自分ですらメンテできない。 ドキュメント大事!!!
31.
31 終わり超便利!reveal.js 初めに戻る
Download