75

わかった気になるJS開発手法

Embed Size (px)

DESCRIPTION

Javascript、ほんとうにちゃんと書けてますか

Citation preview

Page 1: わかった気になるJS開発手法
Page 2: わかった気になるJS開発手法

わかった

Page 3: わかった気になるJS開発手法

わかった気になる

Page 4: わかった気になるJS開発手法

わかった気になるJS開発手法

Page 5: わかった気になるJS開発手法

わかった気になるJS開発手法

\テッテレー/

Page 6: わかった気になるJS開発手法

アジェンダァ

•「アップロード」?アホか!•Makefileを書かないJSerは悪い奴だ•GCCって知ってるか•テストコードを書かないと死ぬ奴向け

Page 7: わかった気になるJS開発手法

1.アップロードとか最初に言ったのはどこのどいつだ

Page 8: わかった気になるJS開発手法

1.アップロードとか最初に言ったのはどこのどいつだ

Page 9: わかった気になるJS開発手法

まず諸君らはJSを書くだろう 書かない人は

対象外なのでニコニコチャンネルで

アニメをどうぞ

Page 10: わかった気になるJS開発手法

そしたらそれを試しに動かしたい

Page 11: わかった気になるJS開発手法

まずこういうソフトを起動する奴は

いますぐ腹を切って死ね

Page 12: わかった気になるJS開発手法

file:///.... みたいなURLを開く奴は

いますぐ首を裂いて死ね

Page 13: わかった気になるJS開発手法

せめて置換Proxyを使え!

http://coderepos.org/share/wiki/CocProxy

•ファイル名マッチでローカルと置換•ちょっとした設定を書いてファイル内の部分置換•Rubyで書かれているので自分で改造しよう

CocProxy

Page 14: わかった気になるJS開発手法

直す アップロード 開く デバッグ

直す ファイルコピー デバッグ

過去今日から

シンボリックリンク推奨

Page 15: わかった気になるJS開発手法

理由

クロスドメイン通信や、LocalStrageなどは、特定ドメイン下でしか動かない実際に出力される要素、APIの結果によって動かないこともあるので、ローカルのサンプルじゃデバッグにならない

あとからこんなことを言っても遅い!

Page 16: わかった気になるJS開発手法

大規模jsは基本的に500行以上あってクソみたいに複雑

2.

Page 17: わかった気になるJS開発手法

大規模jsは基本的に500行以上あってクソみたいに複雑

2.

Page 18: わかった気になるJS開発手法

単体のJSファイルを200行書くと人間は死ぬ

Page 19: わかった気になるJS開発手法

単体で200行以上あるJSは保守されない

Page 20: わかった気になるJS開発手法

俺だってしたくない

Page 21: わかった気になるJS開発手法

ファイルを

プロダクトに未来はない分割しなくては

Page 22: わかった気になるJS開発手法

「でも」Javascriptには

#includeもrequireもimportもない!

Page 23: わかった気になるJS開発手法
Page 24: わかった気になるJS開発手法

本当にない

Page 25: わかった気になるJS開発手法

include実装例function include(astrFile){ var script = document.createElement('script'); script.src = astrFile; script.type = 'text/javascript'; script.defer = true; document.getElementsByTagName('head').\ item(0).appendChild(script);}include('bbb.js');include('ccc.js');

Page 26: わかった気になるJS開発手法

こんなんじゃなくスマートな解決方法が

ある

Page 27: わかった気になるJS開発手法
Page 28: わかった気になるJS開発手法

困ったらコイツを参考にする

Page 29: わかった気になるJS開発手法

Makefile書いてファイル結合したら?

Page 30: わかった気になるJS開発手法

その発想はなかった

Page 31: わかった気になるJS開発手法

Javascriptはmakeするもの

だった

Page 32: わかった気になるJS開発手法

catして繋げるだけのMakefile

${JQ}: ${MODULES} ¦ ${DIST_DIR}@@echo "Building" ${JQ}

@@cat ${MODULES} ¦ \sed 's/.function..jQuery...{//' ¦ \sed 's/}...jQuery..;//' ¦ \sed 's/@DATE/'"${DATE}"'/' ¦ \${VER} > ${JQ};via https://github.com/jquery/jquery/blob/master/Makefile

Page 33: わかった気になるJS開発手法

ファイルを分割しておいて最終的にひとつのファイルに

結合する

Page 34: わかった気になるJS開発手法

結合する順序には要注意

Page 35: わかった気になるJS開発手法

GCCってあれだろGNU Compiler Collection

3.

Page 36: わかった気になるJS開発手法

GCCってあれだろGNU Compiler Collection

3.

Page 37: わかった気になるJS開発手法

JavaScriptだって言ってるだろうが

Page 38: わかった気になるJS開発手法

GCCとは

Page 39: わかった気になるJS開発手法

GCCとは

Page 40: わかった気になるJS開発手法
Page 41: わかった気になるJS開発手法
Page 42: わかった気になるJS開発手法

そんなバカな

Page 43: わかった気になるJS開発手法

GCC =

Google Closure Compiler自社の成果物ぐらい検索出来るようにしておけ!

Page 45: わかった気になるJS開発手法

何に使うか

Page 46: わかった気になるJS開発手法

•コードの圧縮•最適化

やってくれることは

以上

Page 47: わかった気になるJS開発手法

function unusedFunction(note) {  alert(note['text']);}

function displayNoteTitle(note) {  alert(note['title']);}

var flowerNote = {};flowerNote['title'] = "Flowers";displayNoteTitle(flowerNote);

var a={};a.title="Flowers";alert(a.title);

空気を呼んでコードを圧縮してくれる

Page 48: わかった気になるJS開発手法

ただし、iPad向けなんかの特定の環境向けにガリガリにチューニングしたコードは逆に最適化をかけると遅くなることが

Page 49: わかった気になるJS開発手法

気をつけて使いましょう

Page 50: わかった気になるJS開発手法

TDDって言ってテスト駆動で開発をするんですよって

4.

Page 51: わかった気になるJS開発手法

TDDって言ってテスト駆動で開発をするんですよって

4.

Page 52: わかった気になるJS開発手法

テストなんてブラウザが変われば全部意味がなくなるんだ

Page 53: わかった気になるJS開発手法

諦めたらそこで試合終了ですよ

Page 54: わかった気になるJS開発手法

困った時の

Page 55: わかった気になるJS開発手法

QUnitを使えばよいのでは

Page 56: わかった気になるJS開発手法

QUnithttp://docs.jquery.com/QUnit

Page 57: わかった気になるJS開発手法

Javascript用のUnitテストライブラリ

Page 58: わかった気になるJS開発手法
Page 59: わかった気になるJS開発手法

なんとなくおしゃれで格好いい

Page 60: わかった気になるJS開発手法

通信周りのテストはhttps://github.com/jquery/jquery/blob/master/test/unit/ajax.js

などが参考になる

Page 61: わかった気になるJS開発手法

実動作テスト

Page 62: わかった気になるJS開発手法

Selenium HQ

Page 63: わかった気になるJS開発手法

もはやおなじみ

Page 64: わかった気になるJS開発手法

ブラウザを選ばない自動テスト

Page 65: わかった気になるJS開発手法

しかしバグッた時の原因究明は

Page 66: わかった気になるJS開発手法

ッデガバ

Page 67: わかった気になるJS開発手法

ブラウザについてくるデバッガは賢い

Page 68: わかった気になるJS開発手法

IE9: sandbox for IESafari: Web InspectorChrome: Web InspectorOpera: DragonflyFirefox: Firebug

Page 69: わかった気になるJS開発手法

iPhone / iPadなどでは

ebifly

http://d.hatena.ne.jp/yaakaito/20110109/1294522573

Page 70: わかった気になるJS開発手法

Android

※よく知らない

Page 71: わかった気になるJS開発手法

最終的に信用出来るのは自分の眼で見た結果だけ

Page 72: わかった気になるJS開発手法

まとめ

5.

Page 73: わかった気になるJS開発手法

•いちいちアップロードとかない•makeして結合してからデプロイ•GCCで圧縮と最適化してもらおう•テストは他にもいろんなツールがあるよ

Page 74: わかった気になるJS開発手法

困ったらjQueryのソース読んだり開発手法パクると上手くいく!

Page 75: わかった気になるJS開発手法

2011. 05. 17rosylilly<[email protected]>わかった気になるJS開発手法