Enviar búsqueda
Cargar
TypeScript による今風の web アプリ開発
•
1 recomendación
•
4,233 vistas
靖
靖 陣内
Seguir
Modern development of web application with TypeScript
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 31
Descargar ahora
Descargar para leer sin conexión
Recomendados
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
Kondo Hitoshi
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
Kondo Hitoshi
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
TypeScript超入門
TypeScript超入門
Narami Kiyokura
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
Yasushi Kato
Recomendados
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
Kondo Hitoshi
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
Kondo Hitoshi
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
TypeScript超入門
TypeScript超入門
Narami Kiyokura
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
Yasushi Kato
TypeScriptはいいぞ
TypeScriptはいいぞ
Jun Suzuki
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Fujio Kojima
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来
Akira Inoue
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
Shumpei Shiraishi
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
ShinichiAoyagi
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code
Akira Inoue
TypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Akira Inoue
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
Xamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれ
ShinichiAoyagi
AngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Takehiro Takahashi
Win32 APIをてなずけよう
Win32 APIをてなずけよう
Kouji Matsui
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
React.js + Flux
React.js + Flux
dsuke Takaoka
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Masayuki Ozawa
Más contenido relacionado
La actualidad más candente
TypeScriptはいいぞ
TypeScriptはいいぞ
Jun Suzuki
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Fujio Kojima
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来
Akira Inoue
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
Shumpei Shiraishi
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
ShinichiAoyagi
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code
Akira Inoue
TypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
Akira Inoue
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
Xamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれ
ShinichiAoyagi
AngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Takehiro Takahashi
Win32 APIをてなずけよう
Win32 APIをてなずけよう
Kouji Matsui
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
React.js + Flux
React.js + Flux
dsuke Takaoka
La actualidad más candente
(20)
TypeScriptはいいぞ
TypeScriptはいいぞ
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code
TypeScript 入門してみる
TypeScript 入門してみる
TypeScript と Visual Studio Code
TypeScript と Visual Studio Code
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
Xamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれ
AngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Win32 APIをてなずけよう
Win32 APIをてなずけよう
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
React.js + Flux
React.js + Flux
Similar a TypeScript による今風の web アプリ開発
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Masayuki Ozawa
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
minazou67
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
慎一 古賀
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Shotaro Suzuki
Toolkit for CreateJSで作るリッチコンテンツ
Toolkit for CreateJSで作るリッチコンテンツ
Yasunobu Ikeda
App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio_
Tech Summit 2016
App017 power shellの新しい相棒_visual_studio
App017 power shellの新しい相棒_visual_studio
Tech Summit 2016
ADO.NET Entity Framework
ADO.NET Entity Framework
Microsoft
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
Hideaki Aoyagi
GovHack千葉市_使ってみよう!CognitiveServices_20171013
GovHack千葉市_使ってみよう!CognitiveServices_20171013
Ayako Omori
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみた
Yoshito Tabuchi
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発
shinobu takahashi
Vs2013 multi device shosuz
Vs2013 multi device shosuz
Shotaro Suzuki
Xamarin から使う Azure
Xamarin から使う Azure
Yoshito Tabuchi
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Yoshito Tabuchi
Solution semniar vs2013_multi_device-1209-new
Solution semniar vs2013_multi_device-1209-new
Shotaro Suzuki
Similar a TypeScript による今風の web アプリ開発
(20)
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Toolkit for CreateJSで作るリッチコンテンツ
Toolkit for CreateJSで作るリッチコンテンツ
App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio
App017 power shellの新しい相棒_visual_studio
ADO.NET Entity Framework
ADO.NET Entity Framework
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
GovHack千葉市_使ってみよう!CognitiveServices_20171013
GovHack千葉市_使ってみよう!CognitiveServices_20171013
Computer Vision と Translator Text API 使ってみた
Computer Vision と Translator Text API 使ってみた
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発
Vs2013 multi device shosuz
Vs2013 multi device shosuz
Xamarin から使う Azure
Xamarin から使う Azure
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Solution semniar vs2013_multi_device-1209-new
Solution semniar vs2013_multi_device-1209-new
Último
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Último
(9)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
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 初めに戻る
Descargar ahora