javascriptと共に歩いて行く決意をした君へ

83
JavaScriptと共に 歩いて行く 決意をした君へ

Upload: muyuu-fujita

Post on 21-May-2015

4.468 views

Category:

Technology


1 download

DESCRIPTION

春のJavaScript祭りで発表した資料です http://javascript-fes.doorkeeper.jp/events/14171

TRANSCRIPT

Page 1: JavaScriptと共に歩いて行く決意をした君へ

JavaScriptと共に歩いて行く決意をした君へ

Page 2: JavaScriptと共に歩いて行く決意をした君へ

自己紹介• むゆう @anticyborg

• IT僧侶• フロントエンドエンジニア• エンジニア2年目

Page 3: JavaScriptと共に歩いて行く決意をした君へ

今日話すこと• 今日から使える便利TIPS

• 規模にあわせたフレームワークの選定• 言語仕様をもう1歩深く理解する

Page 4: JavaScriptと共に歩いて行く決意をした君へ

今日話すこと• 今日から使える便利TIPS

• 規模にあわせたフレームワークの選定• 言語仕様をもう1歩深く理解する

Page 5: JavaScriptと共に歩いて行く決意をした君へ

今日話すこと• 如何にして僕がJSを覚えたか• 挫折しないJSの習得の流れ

Page 6: JavaScriptと共に歩いて行く決意をした君へ

プログラム

Page 7: JavaScriptと共に歩いて行く決意をした君へ

書けますか?

Page 8: JavaScriptと共に歩いて行く決意をした君へ

html/cssが生業の人は次のステップとしてJavaScriptの習得に向かうケースも多い

Page 9: JavaScriptと共に歩いて行く決意をした君へ

最初の壁

Page 10: JavaScriptと共に歩いて行く決意をした君へ

プログラム

Page 11: JavaScriptと共に歩いて行く決意をした君へ

書けますか?

Page 12: JavaScriptと共に歩いて行く決意をした君へ

そう

Page 13: JavaScriptと共に歩いて行く決意をした君へ

プログラムは最初の1歩が踏み出しにくい

Page 14: JavaScriptと共に歩いて行く決意をした君へ

JSに限らず、プログラムはhtml/cssと違って習得にあたり障壁が多いように思う

Page 15: JavaScriptと共に歩いて行く決意をした君へ

html/css/JSの役割分担(Webブラウザ限定)• html

• 自然言語に意味をつけるための仕組み• css

• htmlにスタイルを充てるための言語• JavaScript

• 動的にページを書き換える

Page 16: JavaScriptと共に歩いて行く決意をした君へ

html/cssには俗に言う「プログラムとしての要素」はほぼない

Page 17: JavaScriptと共に歩いて行く決意をした君へ

html/cssとJavaScriptはかなり違うジャンル

Page 18: JavaScriptと共に歩いて行く決意をした君へ

でも覚えたい

Page 19: JavaScriptと共に歩いて行く決意をした君へ

そうだ本を買おう

Page 20: JavaScriptと共に歩いて行く決意をした君へ

やさしくわかるモダンJavaScript入門

Page 21: JavaScriptと共に歩いて行く決意をした君へ

JavaScriptプログラミング入門

Page 22: JavaScriptと共に歩いて行く決意をした君へ

入門 JavaScript

Page 23: JavaScriptと共に歩いて行く決意をした君へ

「いいえ、結構です」

Page 24: JavaScriptと共に歩いて行く決意をした君へ

「まくらですか?」

Page 25: JavaScriptと共に歩いて行く決意をした君へ

入門書という名の高等技術書に

Page 26: JavaScriptと共に歩いて行く決意をした君へ

我々は何度煮え湯を飲まされたか

Page 27: JavaScriptと共に歩いて行く決意をした君へ

JavaScriptなんぞやめちまえ!

Page 28: JavaScriptと共に歩いて行く決意をした君へ

そこでjQuery

Page 29: JavaScriptと共に歩いて行く決意をした君へ

jQueryは特徴として「DOM操作を手軽に行う」事を念頭に置いて開発されたため、とてもWeb制作者フレンドリーな記述が可能になるため、とにかく敷居が低い。

Page 30: JavaScriptと共に歩いて行く決意をした君へ

ボタンクリックでモーダルウィンドウを表示の動作をjQueryで記述

$(function(){ // ボタンをクリック $('.btn').click(function(){ $('.modal').css({'display': 'block'}); $('.modal').animate({ 'opacity': 1 }, 400); });});

Page 31: JavaScriptと共に歩いて行く決意をした君へ

あ、これならわかるかも

Page 32: JavaScriptと共に歩いて行く決意をした君へ

Web制作の現場で使うjQueryデザイン入門

Page 33: JavaScriptと共に歩いて行く決意をした君へ

• プログラムの習得要素が少ない• WebのUIをちょっと覚えるならこれ一本で• すげー丁寧

Page 34: JavaScriptと共に歩いて行く決意をした君へ

JavaScriptに入門する

Page 35: JavaScriptと共に歩いて行く決意をした君へ

JavaScriptに入門する

Page 36: JavaScriptと共に歩いて行く決意をした君へ

jQueryに入門する

Page 37: JavaScriptと共に歩いて行く決意をした君へ

jQueryデザイン入門以降はしばらくガリガリ書く他の本はとりあえずいらない

Page 38: JavaScriptと共に歩いて行く決意をした君へ

え、なんで

Page 39: JavaScriptと共に歩いて行く決意をした君へ

• やってかないと疑問が出てこない• 次の壁にぶち当たれない

Page 40: JavaScriptと共に歩いて行く決意をした君へ

思うに

Page 41: JavaScriptと共に歩いて行く決意をした君へ

何かを習得するために一番必要なこと

Page 42: JavaScriptと共に歩いて行く決意をした君へ

読む->書く繰り返し

Page 43: JavaScriptと共に歩いて行く決意をした君へ

以降の壁• プログラム的な仕組み/言語仕様• 処理の分割

Page 44: JavaScriptと共に歩いて行く決意をした君へ

プログラム的な仕組みjQueryでUIを作る際に幾度もご登場願うGoogle先生が教えてくれる参照先で、必ず変数・関数・条件分岐・繰り返し等のいわゆるプログラム的な処理を目にする機会が増える

Page 45: JavaScriptと共に歩いて行く決意をした君へ

$(function(){ // よく使う要素をあらかじめ変数化 var $modal = $('.modal');

// モーダルを開く関数を作る var openModal = function () { $modal.css({'display': 'block'}); $modal.animate({ 'opacity': 1 }, 400); };

// クリックしたらモーダルを開く関数を実行 $('.btn').click(openModal);});

Page 46: JavaScriptと共に歩いて行く決意をした君へ

まだ何となく読める感じはするけど、段々と分かんなっていく。。。

Page 47: JavaScriptと共に歩いて行く決意をした君へ

そろそろも1歩進もう

Page 48: JavaScriptと共に歩いて行く決意をした君へ

言語仕様・TIP等を紹介してる書籍

Page 49: JavaScriptと共に歩いて行く決意をした君へ

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質

Page 50: JavaScriptと共に歩いて行く決意をした君へ

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

Page 51: JavaScriptと共に歩いて行く決意をした君へ

すべての人に知っておいてほしい JavaScriptの基本原則

Page 52: JavaScriptと共に歩いて行く決意をした君へ

ついでに簡単なゲームとかにチャレンジするのもおすすめ• 条件分岐を何となくじゃなくて割ときっちりできるようになる

• アクションに対して行う事が多いので処理をまとめる良い練習になる

• ブラウザ毎の対応が結構必要なことに気付く• オブジェクトについての理解が深まる

Page 53: JavaScriptと共に歩いて行く決意をした君へ

これで1歩進めた

Page 54: JavaScriptと共に歩いて行く決意をした君へ

またガリガリ書く

Page 55: JavaScriptと共に歩いて行く決意をした君へ

次の壁

Page 56: JavaScriptと共に歩いて行く決意をした君へ

処理の分割

Page 57: JavaScriptと共に歩いて行く決意をした君へ

そろそろJSファイルを1ファイルで完結させるのが辛くなってくる

Page 58: JavaScriptと共に歩いて行く決意をした君へ

そろそろJSファイルを1ファイルで完結させるのが辛くなってくる• グローバル変数を使わない• グローバル変数を使う• モジュール化• ファイルの分割• タスク自動化(concat)

Page 59: JavaScriptと共に歩いて行く決意をした君へ

JavaScriptパターン ―優れたアプリケーションのための作法

Page 60: JavaScriptと共に歩いて行く決意をした君へ

moduleA.jsvar app = app || {};

(function($, app){ app.moduleA = { element: $('.moduleA'), get: function(){ // 何か処理 }, set: function(){ // 何か処理 } };})(jQuery, app);

Page 61: JavaScriptと共に歩いて行く決意をした君へ

run.js(function($, app){

var modA = app.moduleA; modA.element.click(modA.get);

})(jQuery, app);

Page 62: JavaScriptと共に歩いて行く決意をした君へ

var app = app || {};

Page 63: JavaScriptと共に歩いて行く決意をした君へ

グローバル変数appを作る

Page 64: JavaScriptと共に歩いて行く決意をした君へ

その中でのみ開発を進める

Page 65: JavaScriptと共に歩いて行く決意をした君へ

read<script src='moduleA.js'></script><script src='run.js'></script></body></html>

Page 66: JavaScriptと共に歩いて行く決意をした君へ

read<script src='moduleA.js'></script><script src='moduleB.js'></script><script src='moduleC.js'></script><script src='run.js'></script></body></html>

Page 67: JavaScriptと共に歩いて行く決意をした君へ

read<script src='moduleA.js'></script><script src='moduleB.js'></script><script src='moduleC.js'></script><script src='moduleD.js'></script><script src='moduleE.js'></script><script src='run.js'></script></body></html>

Page 68: JavaScriptと共に歩いて行く決意をした君へ

そんないっぱいJS読むの?

Page 69: JavaScriptと共に歩いて行く決意をした君へ

バカなの?

Page 70: JavaScriptと共に歩いて行く決意をした君へ

まとめましょう

Page 71: JavaScriptと共に歩いて行く決意をした君へ
Page 72: JavaScriptと共に歩いて行く決意をした君へ

grunt-contrib-concatgrunt.initConfig({ concat: { options: { separator: ';', }, dist: { src: ['moduleA.js', 'run.js'], dest: 'app.js', } }});

Page 73: JavaScriptと共に歩いて行く決意をした君へ
Page 74: JavaScriptと共に歩いて行く決意をした君へ

gulp-concatvar concat = require('gulp-concat');

gulp.task('concat', function() { gulp.src('*.js') .pipe(concat('app.js')) .pipe(gulp.dest('./'))});

Page 75: JavaScriptと共に歩いて行く決意をした君へ

app.jsvar app = app || {};

(function($, app){ app.moduleA = { element: $('.moduleA'), get: function(){ // 何か処理 }, set: function(){ // 何か処理 } };})(jQuery, app);

(function($, app){

var modA = app.moduleA; modA.element.click(modA.get);

})(jQuery, app);

Page 76: JavaScriptと共に歩いて行く決意をした君へ

read<script src='app.js'></script></body></html>

Page 77: JavaScriptと共に歩いて行く決意をした君へ

まとめ

Page 78: JavaScriptと共に歩いて行く決意をした君へ

• 何だかんだで書籍は優秀• 必要なタイミングで必要な書籍が必要• 良いからとにかく量を書け

Page 79: JavaScriptと共に歩いて行く決意をした君へ

今必要なのがどれか分からない

Page 80: JavaScriptと共に歩いて行く決意をした君へ

全部買おう

Page 81: JavaScriptと共に歩いて行く決意をした君へ

全部買おう

Page 82: JavaScriptと共に歩いて行く決意をした君へ

知ってそうな人に聞こう

Page 83: JavaScriptと共に歩いて行く決意をした君へ

あと、とりあえず書こう