SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
むずかしくない

JavaScriptのやさしい話
jQueryからの次のステップ
NDS in Niigata #8 @civic
おまえ、誰よ?
Twitter: @civic
NDS主催
Python, Java
TODO:ここに輝かしい実績を入れる1
TODO:ここに輝かしい実績を入れる2
今日話す内容
旧来のJavaScript開発から

一段ステップアップする
初心者向けの内容です
JavaScript

スキルチェック
いくつチェック?
jQueryを使ったことがある
Chrome Developer Toolを使ったことがある
nodejs, npmを使っている
ES6やAltJS系を使っている(ことがある)
browserify, webpackなどのモジュールシステムを使って
いる
grunt, gulpなどのタスクランナーを使っている
✓ 1∼3個ぐらいの人を対象
jQueryなんかでJavaScriptを使っている
ブラウザをリロードして確認
目次
JavaScript開発は覚えることが多い
ステップアップのためのツール
パッケージマネージャー
モジュールシステム
覚えることが多い
JavaScript関連技術は新しい
ネタがどんどん出てくる
Xはもう古い
これからはYの時代
https://flic.kr/p/6DvWAj
プクスー/
オッサンには時間がない
いきなり全部ではなく、はじめの一歩
まずはこれらを使ってみてはどうか
困ってから新しいことを覚えていくスタイル
ステップアップのためのツール
https://flic.kr/p/5YWuWk
ステップアップのツール
○ パッケージマネージャー
○ モジュールシステム
ー タスクランナー
ー 各種フレームワーク
(今回 対象外)
とりあえず

この2つを覚える
パッケージマネージャー
モジュールシステム
デモの内容
デモの内容はチュートリアル記事としてまとめ
ました

http://goo.gl/KapBRp
デモの手順を手を動かして確認する場合に

どうぞ
パッケージマネージャー
npm
npm
JavaScriptライブラリの管理
Java(maven), Ruby(gem), Python(pip)....
「ライブラリを取ってきてくれるツール」
旧来のWebページ作成
の流れ(例)
HTML作成
「jQuery使うか」
jQueryのサイトを開いてjsのダウンロード
<script>タグの挿入
demo
旧来の問題点
ライブラリのダウンロードの一貫性
<script>タグだらけ
依存関係の問題→順序大事
ライブラリAの使用にはBが必要
npmの場合
npm initで初期設定
npm installでライブラリをダウンロード
node_modulesに配備
--save でpackage.jsonという設定ファイルに
モジュール名とバージョンを記録
npmを使った結果www
npmでインストール
統一されたダウンロード方法
package.jsonに記録
環境の再現ができる
demo
<script>の問題は?
<script>タグのsrcはnode_modules?
<script>タグだらけの問題は変わらない?
ライブラリの依存関係は?
次に説明するモジュールシステムで解決!
モジュールシステム
WebPack
モジュールシステム
ライブラリの依存関係を解決
1つのJavaScriptソースファイルに結合
(モジュールバンドラー)
WebPack
モジュールシステムの1つ
npmで入れたライブラリ(モジュール)を使う時

var $ = require("jquery");
ビルドという作業を行う

→ JavaScriptの依存関係解決、連結
ビルドのやり方
$ webpack (ソースjs) (出力するJS)
$ webpack main.js bundle.js
demo
ね、簡単でしょ?
どんな利点があるのか?
ライブラリを気軽に利用可能
自身が作成するコードも小さいモジュールに分割
再利用可能に
さらに便利に
ファイルの連結時に

圧縮したい
ファイルの連結時に

圧縮したい
--optimize-minimize
ビルドされたら

デバッグしにくい!
ビルドされたら

デバッグしにくい!
デバッグするときにソースが読めないじゃん
source-mapを使う
元のJSと、ビルド後のJSの行とを対応づける
--devtool source-map
そんなにオプション引数

覚えきれない!
オプション引数

覚えきれない!
webpack.config.jsに記述
オプション引数なしで起動可能に
また設定ファイルの書き方を覚えなければ...
webpack.config.js
module.exports = {
entry: './main.js',
output: {filename: 'bundle.js'},
devtool: 'source-map',
};
ファイル編集のたびにコマ
ンドを実行するのが面倒!
ファイル編集のたびにコマ
ンドを実行するのが面倒!
ファイルの変更を監視
webpack --watch
Webサーバーとして動作・自動リロード
webpack-dev-server --inline
demo
なんかES6とかいう新しい
JavaScriptがあるようだけど!
(ちょっと難しい話)
なんかES6とかいう新しい
JavaScriptがあるようだけど
ES6(ES2015)をES5に変換する
最新のJavaScriptで書いて、現行のJavaScriptに
変換して使う
npm install babel-loader
webpack.config.js
...
module: {
loaders: [{
test: /.jsx?$/,
exclude: /node_modules/,
loader: 'babel'
}]
}
(※babel6では babel?presets[]=es2015)
ファイルのコピーとか他に
も色々やりたいことがある!
ファイルのコピーとか他に
も色々やりたいことがある!
そろそろ、タスクランナーも使おうな...
gulp
grunt
まとめ
今日学んだこと
ライブラリモジュールの管理
npmでやろう
JSのビルド(依存関係解決)
webpackでやろう
今日学んだこと
ライブラリ

管理
ビルド
コマンド npm webpack
設定ファイル package.json webpack.config.js
まずはこの2つを
使うことから始めてみよう
ご静聴ありがとうございました

Más contenido relacionado

La actualidad más candente

ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 
メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門
Atsushi Tadokoro
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
 
映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010
Hiroh Satoh
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
sk44_
 

La actualidad más candente (19)

20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
jQueryを中心としたJavaScript
jQueryを中心としたJavaScriptjQueryを中心としたJavaScript
jQueryを中心としたJavaScript
 
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
 
メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
 
映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010
 
jQueryで気をつけてほしいこと
jQueryで気をつけてほしいことjQueryで気をつけてほしいこと
jQueryで気をつけてほしいこと
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 
Clojure Language Update (2015)
Clojure Language Update (2015)Clojure Language Update (2015)
Clojure Language Update (2015)
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
 
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみたJava初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 
Learning jQuery
Learning jQueryLearning jQuery
Learning jQuery
 

Destacado

LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
 

Destacado (20)

レスポンシブなサイトにあっという間にjQueryを実装する 先生:田中 晶子
レスポンシブなサイトにあっという間にjQueryを実装する 先生:田中 晶子レスポンシブなサイトにあっという間にjQueryを実装する 先生:田中 晶子
レスポンシブなサイトにあっという間にjQueryを実装する 先生:田中 晶子
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
今日帰ってすぐに始められるChrome App #nds45
今日帰ってすぐに始められるChrome App #nds45今日帰ってすぐに始められるChrome App #nds45
今日帰ってすぐに始められるChrome App #nds45
 
JavascriptとVisualforceの統合Webinar
JavascriptとVisualforceの統合WebinarJavascriptとVisualforceの統合Webinar
JavascriptとVisualforceの統合Webinar
 
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
 
第38回載せられないapp
第38回載せられないapp第38回載せられないapp
第38回載せられないapp
 
Firefoxos
FirefoxosFirefoxos
Firefoxos
 
第39回続・古くなったkindle4
第39回続・古くなったkindle4第39回続・古くなったkindle4
第39回続・古くなったkindle4
 
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
 
第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話
 
第49回emailを安全んにつかうための心がけ
第49回emailを安全んにつかうための心がけ第49回emailを安全んにつかうための心がけ
第49回emailを安全んにつかうための心がけ
 
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話
 
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップEWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
 
入力フォームチェックをJ queryでやってみた
入力フォームチェックをJ queryでやってみた入力フォームチェックをJ queryでやってみた
入力フォームチェックをJ queryでやってみた
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
 
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
 
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するEWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
 

Similar a むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8

DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217
Mogi Isamu
 
JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発
Yoichi Toyota
 
2012 kanemotolablecture1
2012 kanemotolablecture12012 kanemotolablecture1
2012 kanemotolablecture1
ytanno
 
OpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメOpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメ
Masaki Otsuki
 

Similar a むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8 (20)

Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Javascript を使ってみよう!!
Javascript を使ってみよう!!Javascript を使ってみよう!!
Javascript を使ってみよう!!
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217
 
つぶLT20121215
つぶLT20121215つぶLT20121215
つぶLT20121215
 
JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発
 
(未発表) JavaScriptテスト勉強会@福岡#0の前に考えていたこと
(未発表) JavaScriptテスト勉強会@福岡#0の前に考えていたこと(未発表) JavaScriptテスト勉強会@福岡#0の前に考えていたこと
(未発表) JavaScriptテスト勉強会@福岡#0の前に考えていたこと
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
Nuxt0501ver1
Nuxt0501ver1Nuxt0501ver1
Nuxt0501ver1
 
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
レガシーと向き合い技術スタックを代謝する(ElasticBeanstalk / Vue.js)
 
Beginners scala 20121113
Beginners scala 20121113Beginners scala 20121113
Beginners scala 20121113
 
Vue template-parserを作っている話
Vue template-parserを作っている話Vue template-parserを作っている話
Vue template-parserを作っている話
 
2012 kanemotolablecture1
2012 kanemotolablecture12012 kanemotolablecture1
2012 kanemotolablecture1
 
Getting started with node.js
Getting started with node.jsGetting started with node.js
Getting started with node.js
 
ゆるふわアーキを支える技術
ゆるふわアーキを支える技術ゆるふわアーキを支える技術
ゆるふわアーキを支える技術
 
OpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメOpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメ
 

Último

Último (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8