Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
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
Submit search
EN
Uploaded by
大樹 小倉
PDF, PPTX
16,453 views
モダンJavaScript環境構築一歩目
JavaScriptの現状を支えるエコシステム群を軽く紹介して、モジュールについて少し掘り下げた勉強会
Software
◦
Read more
102
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 51
2
/ 51
3
/ 51
4
/ 51
5
/ 51
6
/ 51
7
/ 51
8
/ 51
9
/ 51
10
/ 51
11
/ 51
12
/ 51
13
/ 51
14
/ 51
15
/ 51
16
/ 51
17
/ 51
18
/ 51
19
/ 51
20
/ 51
21
/ 51
22
/ 51
23
/ 51
24
/ 51
25
/ 51
26
/ 51
27
/ 51
28
/ 51
29
/ 51
30
/ 51
31
/ 51
32
/ 51
33
/ 51
34
/ 51
35
/ 51
36
/ 51
37
/ 51
38
/ 51
39
/ 51
40
/ 51
41
/ 51
42
/ 51
43
/ 51
44
/ 51
45
/ 51
46
/ 51
47
/ 51
48
/ 51
49
/ 51
50
/ 51
51
/ 51
Recommended
PDF
JavaScript MVC入門
by
大樹 小倉
PDF
JavaScriptユーティリティライブラリの紹介
by
Yusuke Hirao
PDF
JavaScript基礎勉強会
by
大樹 小倉
PDF
大規模なJavaScript開発の話
by
terurou
PPTX
モテる JavaScript
by
Osamu Monoe
PDF
覚醒!JavaScript
by
Haraguchi Go
PDF
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
by
civic Sasaki
PDF
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
PDF
JavaScriptことはじめ
by
Yuki Ishikawa
PDF
キメるClojure
by
Yoshitaka Kawashima
PDF
JVMの中身を可視化してみた
by
Kengo Toda
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
PPT
第4回勉強会 Groovyの文法からSpockまで
by
Mugen Fujii
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
by
Masahiro Wakame
PDF
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
by
parrotstudio
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PDF
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
by
Hiroh Satoh
PDF
TypeScriptへの入口
by
Sunao Tomita
PDF
これからのJavaScriptの話
by
Shogo Sensui
PDF
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
by
Y Watanabe
PDF
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
by
Oonishi Keitarou
PDF
クライアントサイドjavascript簡単紹介
by
しくみ製作所
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
by
Akira Inoue
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
PDF
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
by
Yuki Fujisawa
PDF
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
PDF
コンパイラ指向ReVIEW
by
Masahiro Wakame
PPTX
TypeScriptをオススメする理由
by
Yusuke Naka
PDF
JavaScript入門
by
Ryo Maruyama
PPTX
Java scriptの基礎
by
ManabuYoneyama
More Related Content
PDF
JavaScript MVC入門
by
大樹 小倉
PDF
JavaScriptユーティリティライブラリの紹介
by
Yusuke Hirao
PDF
JavaScript基礎勉強会
by
大樹 小倉
PDF
大規模なJavaScript開発の話
by
terurou
PPTX
モテる JavaScript
by
Osamu Monoe
PDF
覚醒!JavaScript
by
Haraguchi Go
PDF
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
by
civic Sasaki
PDF
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
JavaScript MVC入門
by
大樹 小倉
JavaScriptユーティリティライブラリの紹介
by
Yusuke Hirao
JavaScript基礎勉強会
by
大樹 小倉
大規模なJavaScript開発の話
by
terurou
モテる JavaScript
by
Osamu Monoe
覚醒!JavaScript
by
Haraguchi Go
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
by
civic Sasaki
Javascriptのあれやこれやをまとめて説明してみる
by
Shunji Konishi
What's hot
PDF
JavaScriptことはじめ
by
Yuki Ishikawa
PDF
キメるClojure
by
Yoshitaka Kawashima
PDF
JVMの中身を可視化してみた
by
Kengo Toda
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
PPT
第4回勉強会 Groovyの文法からSpockまで
by
Mugen Fujii
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
by
Masahiro Wakame
PDF
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
by
parrotstudio
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PDF
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
by
Hiroh Satoh
PDF
TypeScriptへの入口
by
Sunao Tomita
PDF
これからのJavaScriptの話
by
Shogo Sensui
PDF
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
by
Y Watanabe
PDF
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
by
Oonishi Keitarou
PDF
クライアントサイドjavascript簡単紹介
by
しくみ製作所
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
by
Akira Inoue
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
PDF
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
by
Yuki Fujisawa
PDF
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
PDF
コンパイラ指向ReVIEW
by
Masahiro Wakame
JavaScriptことはじめ
by
Yuki Ishikawa
キメるClojure
by
Yoshitaka Kawashima
JVMの中身を可視化してみた
by
Kengo Toda
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
第4回勉強会 Groovyの文法からSpockまで
by
Mugen Fujii
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
by
Masahiro Wakame
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
by
parrotstudio
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
by
Hiroh Satoh
TypeScriptへの入口
by
Sunao Tomita
これからのJavaScriptの話
by
Shogo Sensui
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
by
Y Watanabe
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
by
Oonishi Keitarou
クライアントサイドjavascript簡単紹介
by
しくみ製作所
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
by
Akira Inoue
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
by
Yuki Fujisawa
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
コンパイラ指向ReVIEW
by
Masahiro Wakame
Similar to モダンJavaScript環境構築一歩目
PPTX
TypeScriptをオススメする理由
by
Yusuke Naka
PDF
JavaScript入門
by
Ryo Maruyama
PPTX
Java scriptの基礎
by
ManabuYoneyama
PDF
JSX / Haxe / TypeScript
by
bleis tift
PDF
JavaScript.Next
by
dynamis
PDF
Kanazawa.js.Next
by
dynamis
PDF
JavaScript.Next Returns
by
dynamis
KEY
いまさらJavaScript
by
Naomichi Yamakita
PDF
JSer Class #3
by
mizuky fujitani
PDF
JavaScript Tips 2015(PDF 版)
by
taskie
PDF
Harmoware-VIS Tutorial
by
Nobuo Kawaguchi
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
by
Akira Inoue
PPT
20090121 J QueryからはじめるJava Script~初級編~
by
Hiromu Shioya
PDF
Java scriptの進化
by
maruyama097
PDF
JavaScript (ECMAScript) 2013
by
dynamis
PDF
JSer Class #1
by
mizuky fujitani
PPTX
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
by
Shumpei Shiraishi
PDF
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
by
Takuma Morikawa
PPTX
Nds meetup8 lt
by
ushiboy
PPTX
Javascriptのデザインパターン【勉強会資料】
by
株式会社キャッチアップ
TypeScriptをオススメする理由
by
Yusuke Naka
JavaScript入門
by
Ryo Maruyama
Java scriptの基礎
by
ManabuYoneyama
JSX / Haxe / TypeScript
by
bleis tift
JavaScript.Next
by
dynamis
Kanazawa.js.Next
by
dynamis
JavaScript.Next Returns
by
dynamis
いまさらJavaScript
by
Naomichi Yamakita
JSer Class #3
by
mizuky fujitani
JavaScript Tips 2015(PDF 版)
by
taskie
Harmoware-VIS Tutorial
by
Nobuo Kawaguchi
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
by
Akira Inoue
20090121 J QueryからはじめるJava Script~初級編~
by
Hiromu Shioya
Java scriptの進化
by
maruyama097
JavaScript (ECMAScript) 2013
by
dynamis
JSer Class #1
by
mizuky fujitani
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
by
Shumpei Shiraishi
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
by
Takuma Morikawa
Nds meetup8 lt
by
ushiboy
Javascriptのデザインパターン【勉強会資料】
by
株式会社キャッチアップ
モダンJavaScript環境構築一歩目
1.
第二回JavaScript勉強会小倉 大樹
2.
JavaScript道1. 必須の基礎知識2. モダンJavaScript
初級編3. JavaScript最新事情4. 以後未定ECMAScript今日はここやります修
3.
JavaScriptの基礎知識jQuery その前に前回のあらすじ
4.
strict mode変数宣言関数定義スコープクロージャプロトタイプ指向CoursesJavaScriptの基礎知識
5.
strict mode"use strict";
// global!function() {"use strict"; // innner only}エラーを出やすくする
6.
変数の巻き上げ(function () {console.log(a);var
a = 'aaaa';console.log(a);})();(function () {var a;console.log(a);var a = 'aaaa';console.log(a);})();BeforeAfter
7.
変数宣言のルール変数の宣言は全部関数の先頭でダサいけど、そういう言語だから諦める
8.
関数宣言と関数式// statementfunction hoge()
{}!// expressionvar hoge = function() {};宣言の方では宣言の巻き上げが発生する。式では関数に名前が付かない(つけることも出来る)。Function関数? なんですかそれ?
9.
関数の定義方法巻き上げによる意図せぬ動作の防止基本は関数式!この辺は今後説明します関数宣言nameプロパティが必要になる、オブジェクトのコンストラクターとか
10.
スコープ超重要基礎var globar =
'global desu';!function scope1() {var locar = 'local desu';console.log(globar); // global desufunction scope2() {var locarSecond = 'local mark2 desu';console.log(locar); // local desu}console.log(locarSecond); // ReferenceError: locarSecondis not defined}console.log(locar); // ReferenceError: locar is notdefined
11.
必須知識です関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数で実現している。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで ることができる。from wikipediaクロージャとは
12.
クロージャの例var incrementGenerator =
function (start) {var inc = function () {start += 1;return start;}return inc;};!var inc1 = incrementGenerator(0);var inc2 = incrementGenerator(0);!inc1(); // 1inc2(); // 1inc1(); // 2inc2(); // 2
13.
プロトタイプ指向クラスとは違うのだよ
14.
JavaScriptはオブジェクト指向言語ここまでやりました
15.
次回の予定オブザーバーパターンjshintPromiseモジュール化いろいろでしたが
16.
ModernJavaScript DevThe Beginners'
CourseEcosystem Node, npm, glup……jshint Lint, Style FormatModularize Rule StyleTool
17.
Server-side JavaScriptProcessorNode.js (fork:
io.js) and othersPackageManager npm, bowerBuildTool Grunt or GulpModule DependencyManagement RequireJS, browserify, component,WebPackecosystemon
18.
乱立しすぎww挙げた以外にも色々あって、とても説明しきれない説明してもどうせすぐ陳腐化する名前と概要だけ出して流していきます!
19.
Node.js## install nodebrew$
curl -L git.io/nodebrew | perl - setup!## set $PATH$ export PATH=$HOME/.nodebrew/current/bin:$PATH## install stable version as binary$ nodebrew install-binary stable
20.
npm## install globally$
npm install -g hogehoge!## install locally and save package.json$ npm install --save-dev hogehoge!## install from package.json$ npm install
21.
bowerフロント向けのパッケージマネージャーCSSとかも入ってるnpmよりもフロント向けライブラリが充実してるなので両方使わざるを得ないことがあったりしてつらい
22.
Grunt & Gulpビルドツール。Rakeみたいなものファイル監視&やることの多いJavaScriptの強い味方AltJSのコンパイル、依存性の管理、ファイルの結合、圧縮テスト……Gulpの方が新しく、使いやすい(らしい)
23.
RequireJS…etcJavaScriptにモジュールシステムを組み込むツールいくつかの仕様、ツールが入り乱れていてヤバい結合、圧縮、依存性管理もやったりするので複雑RequireJSが最初(筆者の知る限り)最近また増えてきた一番新しいのはWebPack とてもつらい
24.
TestToolsTest Framework Jasmine,
QUnit, Mocha, ChaiHeadLess Browser PhantomJS and moreTest Runner Karmaブラウザ環境のシミュレーターのせいでちょっと煩雑
25.
複雑、乱立、陳腐化JavaScriptで実現することに対する要求が高まった!学習コストの高まりでも中規模以上なら使わないと破綻する!トレードオフを考慮した設計、チームビルディングが必要UXを意識したモダンなJavaScriptはもはや片手間で扱えるものではなくなったっぽい
26.
文化JavaScriptのツール周りは、枯れているかよりも現在どれだけ開発が活発かで判断したほうが良さそう。!枯れていると廃れつつあるがほぼイコールになりかねない印象
27.
JSHint•detect errors and
potential problems•enforce your team's coding conventions•very flexibleNo check, No commit!
28.
たいへんなのでじっくりせつめいします
29.
The History and
Futureそして、次のバージョンであるECMAScript6には 言語の機能そのものにモジュールの仕組みが……!当初のJavaScriptにはモジュールや名前空間にあたる仕組みがなかったそれを補うためにいくつかのツールやライブラリが考案された代表的な仕様がCommonJSであるCommonJSとはサーバ、クライアント、その他環境での標準的な仕様を定めるものその中でモジュールの仕様も策定された
30.
Present day, Present
time未だ黎明期。ライブラリやツールの力を借りつつ、きたるECMAScript6になるべく移行しやすい方法をとるべき。
31.
JavaScript Module Pattern•
グローバルに投げ込む• jQueryプラグイン• フルセットツールキットによる独自実装 ◦DojoToolkit ◦Ext.js• CommonJS ◦RequireJSとか先に紹介したやつら• AMD(Modules/AsynchronousDefinition)• TypeScript、Haxe、Scala.jsなどのモジュール機能• ECMAScript6
32.
全部グローバルパターン(function(win, undefined) {!function
MyClass() {}!MyClass.prototype.method = function(name) {console.log("Hello " + name);};!win.MyClass = MyClass;!})(window);<script src="MyClass.js"></script><script>new MyClass().method("JavaScriptModule");</script>昔使われてたやつ
33.
全部グローバルパターンどこがダメだったかグローバル汚染を起こしているので名前が衝突する可能性があるモジュール化とは言えないブラウザでしか動作しない(NodeやWebWorkerが考慮されていない)undefinedの上書きはuse strictで防げるのでダサい
34.
jQueryPlugin全部グローバルとだいたい同じ問題を抱える
35.
CommonJSNode.js使ったことがある人は見覚えがあるはずvar MyClass =
require("./MyClass.js");
36.
AMD各モジュールを非同期に読み込むための仕組み依存ライブラリが超大量な場合に高速化が望める一応CommonJSの一部!define(['jquery', 'underscore'], function
($, _) {function a(){}; // publicfunction b(){}; // privatereturn a;});
37.
AMDの問題点• Node.js、WebWorkerで使いどころがない• クライアントサイドでの動的な依存性解決のコストが無視できない•
コードが複雑化する• ES6が実用化されれば出番はない手間やデメリットの割にリターンが少ない
38.
AltJS言語ごとに違うが、相互運用性やロックインに注意すれば十分に選択肢相互運用性で言えばTypeScriptが最良かもしれない
39.
DemonstrationCommonJS!Webpack!GulpWebpackによるCommonJSスタイルのモジュール化
40.
Webpack今あるツールで一番新しく、万能だとおもわれる
41.
Why Webpack?ほぼ全てのモジュールシステムに対応 AMD,
CommonJS, ES6 etcetc……複数ファイルでの出力を当初から考慮 Browserifyとの比較一番新しいっぽい JS文化Instagramが使ってくれてる 知見ありがとうございます
42.
Installation!$ npm install
-g webpack!$ touch entry.js index.html
43.
Codemodule.exports = "BOO!";content.jsvar
MESSAGE = require('./content.js');document.write(MESSAGE);entry.jsとりあえずCommonJSスタイルでの例
44.
Codeindex.html<!DOCTYPE html><html lang="en"><head><meta
charset="UTF-8"><title></title></head><body><script type="text/javascript" src="bundle.js" charset="utf-8"></script></body></html>
45.
Build!$ webpack entry.js
bundle.js!$ open index.html
46.
Dependency Resolutionhello.js(function(global) {"use
strict";!var Greeter = (function () {function Greeter(message) {this.greeting = message;}Greeter.prototype.greet = function () {return "Hello, " + this.greeting;};return Greeter;})();!if (typeof module !== "undefined") {module.exports = Greeter;}!})((this || 0).self || global);
47.
Dependency Resolutiongreet.jsvar MESSAGE
= require('./content.js');var Greeter = require('./hello.js');var g = new Greeter(MESSAGE);!module.exports = g;document.write(require('./greet.js').greet());entry.js
48.
Webpackまとめ• 割と簡単にブラウザにモジュール機能を導入出来た• CommonJS以外の書き方にも対応してる•
複数ファイルへの出力、CSSや画像への依存関係などにも対応• webpack.config.jsで複雑なモジュールのビルドの設定を行える• Gulpとの連携も考慮しておく様々なモジュールシステム、ブラウザ以外の環境、ClojureCompilerへの対応……などを考えるとモジュール化の書き方はもっともっと洗練する必要がある。が、それはまたの機会に。
49.
JavaScript Moduleまとめ• ES6が標準化するまでの辛抱(IE?)•
中規模以上ならモジュール化は必須、小規模でも必須• 規模感や求めるクオリティが標準程度なら学習コストはペイする(はず)• 複数環境や高圧縮Minifierに耐えるコードを書く場合はさらに大変• もっとよく知りたい人はgithubのリポジトリやuupa氏のドキュメントを読む
50.
次回予告
51.
アーキテクチャMMVM入門MVC モナドの価値PromiseパターンShadow DOMObserverリアクティブプログラミング
Download
[8]
ページ先頭
©2009-2025
Movatter.jp