Slide 1

Slide 1 text

ଆॶࡆᄛҦ੻ ࢃᆀࢀקდjosephj https://speakerdeck.com/u/josephj/p/sdcc Module Loader Strategy

Slide 2

Slide 2 text

ܱႿ໡ࢀקდ (josephj)

Slide 3

Slide 3 text

ܱႿ໡ࢀקდ ஝҄ߌ֛ c܋฿ cჿ؟܄৚ ୍ᄅٺ (josephj)

Slide 4

Slide 4 text

ܱႿ໡ࢀקდ ࿮޷అଉ cభ؊۽ӱഽ cYDN࠯ඌ҃֡ഽ cᇶေཛଢğᆩ് ஝҄ߌ֛ c܋฿ cჿ؟܄৚ ୍ᄅٺ  (josephj)

Slide 5

Slide 5 text

ܱႿ໡ࢀקდ ࿮޷అଉ cభ؊۽ӱഽ cYDN࠯ඌ҃֡ഽ cᇶေཛଢğᆩ് miiiCasa ᄉႥ॓࠯ cభ؊࠯ඌ๶ؒᇶܵ c࠯ඌ҃֡ഽ ஝҄ߌ֛ c܋฿ cჿ؟܄৚ ୍ᄅٺ  ᇀࣂ (josephj)

Slide 6

Slide 6 text

2010.7ਆ฿၂၀֥Кࣘྛ਽༯ࠞധख़֥ႆའ

Slide 7

Slide 7 text

2010.7ਆ฿၂၀֥Кࣘྛ਽༯ࠞധख़֥ႆའ ք಩ࢃഽ ۋ྆ღѯĆ Ϥ؇ҕ٠

Slide 8

Slide 8 text

2010.7ਆ฿၂၀֥Кࣘྛ਽༯ࠞധख़֥ႆའ ք಩ࢃഽ ۋ྆ღѯĆ Ϥ؇ҕ٠ http://josephj.com/entry.php?id=336 КࣘWebRebuildဆᾣđ൬ὤ⁷ẵĆ https://speakerdeck.com/u/josephj/p/webrebuild ࡹ৫భ؊षؿ๶ؒ ֒ൈဆࢃᇶี

Slide 9

Slide 9 text

൉હ൞ଆॶĤ ॖၛФᇗگ০Ⴈ֥ჭࡱ

Slide 10

Slide 10 text

Ⴎ7۱҂๝ݓࡅ෮ิ܂֥50؟۱ଆॶ෮ܒӮ http://astronomy.wikia.com/wiki/International_Space_Station NASAૅݓ෾ॢሹඇ෾ॢᅟ

Slide 11

Slide 11 text

Ⴎ7۱҂๝ݓࡅ෮ิ܂֥50؟۱ଆॶ෮ܒӮ http://astronomy.wikia.com/wiki/International_Space_Station NASAૅݓ෾ॢሹඇ෾ॢᅟ ᄝ಩ޅٳ۽ࣚ༥֥۽ӱਵთ ଆॶ߄षؿ൞сಖ౴൝ğ wҐႨ࠻Ⴕଆॶaх૧ᇗྍյᄯ੽ሰx

Slide 12

Slide 12 text

GitHub

Slide 13

Slide 13 text

GitHub GitHub൞ೈุြࢸ֥w੽ሰࢌੀ౵x git submodule add ࣼॖၛ౞඾ࡆೆљದཿݺ֥ଆॶ

Slide 14

Slide 14 text

http://www.flickr.com/photos/halfbisqued/2353845688/ ຩ်ᇏ֥ଆॶႻ൞൉હĤ

Slide 15

Slide 15 text

http://www.flickr.com/photos/halfbisqued/2353845688/ ಩ޅॖၛФᄛೆ൐Ⴈ֥ )5.-a$44ა+BWB4DSJQU֖σ ຩ်ᇏ֥ଆॶႻ൞൉હĤ

Slide 16

Slide 16 text

http://www.flickr.com/photos/halfbisqued/2353845688/ ಩ޅॖၛФᄛೆ൐Ⴈ֥ )5.-a$44ა+BWB4DSJQU֖σ ӑࠩݺႨ֥ਆ۱ଆॶğjQuery აTwitter Bootstrap ຩ်ᇏ֥ଆॶႻ൞൉હĤ ӱ྽ჴ္ॖၛቓԛ௎ਊຩᅟ

Slide 17

Slide 17 text

ᇶีğଆॶࡆᄛҦ੻

Slide 18

Slide 18 text

ᇶีğଆॶࡆᄛҦ੻ cԮ๤ଆൔ

Slide 19

Slide 19 text

ᇶีğଆॶࡆᄛҦ੻ cԮ๤ଆൔ c်Ҫࠩഡקଆൔ Page-level Setting 

Slide 20

Slide 20 text

ᇶีğଆॶࡆᄛҦ੻ cԮ๤ଆൔ c်Ҫࠩഡקଆൔ Page-level Setting  cଆॶҪࠩഡקଆൔ Module-level Setting 

Slide 21

Slide 21 text

Ԯ๤ଆൔ

Slide 22

Slide 22 text

Ԯ๤ଆൔ ႨMJOLISFGࠇTDSJQUTSDቓࡆᄛ

Slide 23

Slide 23 text

ਆρ೘ֹ֥(JU)VCषؿᆀ https://github.com/josephj/github-chinese-developer ᆃՑဆࢃ֥ٓ২۵۽ऎ׻ᄝ҂๝֥#SBODIᇏ

Slide 24

Slide 24 text

ਆρ೘ֹ֥(JU)VCषؿᆀ https://github.com/josephj/github-chinese-developer ᆃՑဆࢃ֥ٓ২۵۽ऎ׻ᄝ҂๝֥#SBODIᇏ

Slide 25

Slide 25 text

ਆρ೘ֹ֥(JU)VCषؿᆀ https://github.com/josephj/github-chinese-developer ᆃՑဆࢃ֥ٓ২۵۽ऎ׻ᄝ҂๝֥#SBODIᇏ ᆃဢ֥ཬທၩđड़קն҆ٳದ׻൞ᆰࢤࡆᄛଆॶ֥ Bootstrap CSS Bootstrap CSS Page CSS jQuery Handlebars Page JS

Slide 26

Slide 26 text

ؓႿ၂۱ຩᅟषؿ๶ؒط࿽đᆃဢቓ߶ཊೆࠁ੹ ླေ၂ק֥षؿଆൔট቎൯

Slide 27

Slide 27 text

်૫ଆॶğ၂ᇕ๶ؒषؿଆൔ ૄ۱်૫ଆॶ׻్ٳԛ)5.-a+BWB4DSJQUa$44

Slide 28

Slide 28 text

်૫ଆॶğ၂ᇕ๶ؒषؿଆൔ ૄ۱်૫ଆॶ׻్ٳԛ)5.-a+BWB4DSJQUa$44

Slide 29

Slide 29 text

標題

內文

်૫ଆॶ֥)5.-ࢲܒ

Slide 30

Slide 30 text

標題

內文

標題

內文

်૫ଆॶ֥)5.-ࢲܒ

Slide 31

Slide 31 text

標題

內文

標題

內文

်૫ଆॶ֥)5.-ࢲܒ ၂۱*%սі၂۱ଆॶ ҂ିᇗگ

Slide 32

Slide 32 text

標題

內文

標題

內文

်૫ଆॶ֥)5.-ࢲܒ ၂۱*%սі၂۱ଆॶ ҂ିᇗگ IE CE GUսіଆॶ֥ѓ ๨aଽಸaѓແࢲܒ

Slide 33

Slide 33 text

ၹૄ۱ଆॶ*%׿৫a$44҂߶޺ཌྷ໪ಙ ՎଆॶࢡZLQTC ZLQ൞ཛଢ෪ཿaTC൞4FBSDI#PY֥⅜⇔

Slide 34

Slide 34 text

...
...
form .extra [HTML] ၹૄ۱ଆॶ*%׿৫a$44҂߶޺ཌྷ໪ಙ ՎଆॶࢡZLQTC ZLQ൞ཛଢ෪ཿaTC൞4FBSDI#PY֥⅜⇔

Slide 35

Slide 35 text

...
...
form .extra [HTML] #ykpsb { margin-bottom:10px; } #ykpsb form { float:left; } #ykpsb .extra { float:right; } [CSS] ၹૄ۱ଆॶ*%׿৫a$44҂߶޺ཌྷ໪ಙ ՎଆॶࢡZLQTC ZLQ൞ཛଢ෪ཿaTC൞4FBSDI#PY֥⅜⇔

Slide 36

Slide 36 text

঺֡෮ิ֥ JavaScript ଆॶଆൔ window.mods[“ykpsb”] = function () { }();

Slide 37

Slide 37 text

঺֡෮ิ֥ JavaScript ଆॶଆൔ window.mods[“ykpsb”] = function () { }(); // 利用闭包与外界隔绝 var privateVar, publicFn; // 内部自行处理,不会影响其他模块 privateVar = "123"; publicFn = function () {};

Slide 38

Slide 38 text

঺֡෮ิ֥ JavaScript ଆॶଆൔ window.mods[“ykpsb”] = function () { }(); // 利用闭包与外界隔绝 var privateVar, publicFn; // 内部自行处理,不会影响其他模块 privateVar = "123"; publicFn = function () {}; return { // 仅揭露需公开的方法 publicFn: publicFn };

Slide 39

Slide 39 text

঺֡෮ิ֥ JavaScript ଆॶଆൔ window.mods[“ykpsb”] = function () { }(); // 利用闭包与外界隔绝 var privateVar, publicFn; // 内部自行处理,不会影响其他模块 privateVar = "123"; publicFn = function () {}; return { // 仅揭露需公开的方法 publicFn: publicFn }; // 外界仅可存取公开方法 mod["ykpsb"].publicFn();

Slide 40

Slide 40 text

Nicholas Zakas Former Principal Front End Engineer, Yahoo! Zakas֥Scalable JavaScript ଆॶ ܴҳᆀଆൔğ ൌቔোර)VCܼѬ۵ࡓ๐ ֥ྛູđղ֞҂൐Ⴈಆთэ ඔॴଆቆ܎๙֥ଢ֥b https://github.com/miiicasa/module

Slide 41

Slide 41 text

http://www.nipic.com/show/2/55/d96dde66860c5190.html ؿᅚ֞၂קܿଆđھೂޅ࿊ᄴૄ်෮ླ֥ଆॶ֖଻Ĥ ်૫ଆॶ߄߶్ٳԛޓ؟ਬ೛֥֖σđೂޅᄛೆ൞၂૊࿐໙

Slide 42

Slide 42 text

http://www.nipic.com/show/2/55/d96dde66860c5190.html ฿ଧĆ໡ھೂޅԩ৘ ᆃહ؟ଆॶ֖σ଻Ĥ ؿᅚ֞၂קܿଆđھೂޅ࿊ᄴૄ်෮ླ֥ଆॶ֖଻Ĥ ်૫ଆॶ߄߶్ٳԛޓ؟ਬ೛֥֖σđೂޅᄛೆ൞၂૊࿐໙

Slide 43

Slide 43 text

http://www.flickr.com/photos/billjacobus1/123644872/ ᆃൈ໡ૌླေ၂۱Loaderࠏᇅ ླྀᇹᄛೆਬ೛౏؟֥ଆॶ֖σ

Slide 44

Slide 44 text

်Ҫࠩഡקଆൔ ୍aКࣘ8FC3FCVJMEၰีᆭ၂ https://speakerdeck.com/u/josephj/p/webrebuild

Slide 45

Slide 45 text

http://josephj.com/lab/2012/github-chinese-develope/ ਆρ೘ֹ֥षؿᆀ ࡌഡ໡ૌႨࢠႵܿଆ֥w်૫ଆॶଆൔxটषؿ

Slide 46

Slide 46 text

ਆρ೘ֹ֥षؿᆀ ࡌഡ໡ૌႨࢠႵܿଆ֥w်૫ଆॶଆൔxটषؿ http://josephj.com/lab/2012/github-chinese-develope/

Slide 47

Slide 47 text

ਆρ೘ֹ֥षؿᆀ 条件过滤模块 _filter.php _filter.css _filter.js ࡌഡ໡ૌႨࢠႵܿଆ֥w်૫ଆॶଆൔxটषؿ http://josephj.com/lab/2012/github-chinese-develope/

Slide 48

Slide 48 text

ਆρ೘ֹ֥षؿᆀ 列表模块 _list.php _list.css _list.js 条件过滤模块 _filter.php _filter.css _filter.js ࡌഡ໡ૌႨࢠႵܿଆ֥w်૫ଆॶଆൔxটषؿ http://josephj.com/lab/2012/github-chinese-develope/

Slide 49

Slide 49 text

ਆρ೘ֹ֥षؿᆀ 资讯模块 列表模块 _info.php _info.css _info.js _list.php _list.css _list.js 条件过滤模块 _filter.php _filter.css _filter.js ࡌഡ໡ૌႨࢠႵܿଆ֥w်૫ଆॶଆൔxটषؿ http://josephj.com/lab/2012/github-chinese-develope/

Slide 50

Slide 50 text

Ԯ๤ቔمड़ק߶ӁളИख c)551౨౰ඔਈݖ؟ c߶ᄯӮ်૫ቅೖ c֖σଽಸໃ࿢෪ cླႨಆთэඔ܎๙ cᄛೆ֤ॉ੮༵ުඨ྽ cીႵౢԣ֥ࡏܒaၞཊೆࠁ੹

Slide 51

Slide 51 text

MINI ๩ݖഡק֖ ࡼ؟۱ẵσކѩaቋཬ߄ ֥षؿߌ࣢۽ऎ http://www.flickr.com/photos/prettypony/2644225789/ https://github.com/josephj/mini

Slide 52

Slide 52 text

Mini֥ഡק֖ ൅ٳಸၞഡק

Slide 53

Slide 53 text

࿙ᅳ֖σ֥ਫ਼ࣥđॖၛഡק؟۱ %&7@3005൞7JSUVBM)PTU֥ߌ࣢эਈ Mini֥ഡק֖ ൅ٳಸၞഡק

Slide 54

Slide 54 text

࿙ᅳ֖σ֥ਫ਼ࣥđॖၛഡק؟۱ %&7@3005൞7JSUVBM)PTU֥ߌ࣢эਈ קၬEFNPႵଧུ$44ა+4֖ Mini֥ഡק֖ ൅ٳಸၞഡק

Slide 55

Slide 55 text

ᆷקtypeაmoduleࠧॖሱ׮ކѩ౏ቋཬ߄

Slide 56

Slide 56 text

ᆷקtypeაmoduleࠧॖሱ׮ކѩ౏ቋཬ߄ /mini?module=&type=

Slide 57

Slide 57 text

ᆷקtypeაmoduleࠧॖሱ׮ކѩ౏ቋཬ߄ /mini?module=&type=

Slide 58

Slide 58 text

ીႵMiniൈ֥౦ঃ

Slide 59

Slide 59 text

ીႵMiniൈ֥౦ঃ

Slide 60

Slide 60 text

๩ݖMiniॖၛնږࡨഒ౨౰ඔਈ

Slide 61

Slide 61 text

๩ݖMiniॖၛնږࡨഒ౨౰ඔਈ

Slide 62

Slide 62 text

ႮႿMiniીႵߏթࠏᇅaᆺିႨᄝषؿߌ࣢ ᄝbuildൈ֤ყ༵Ӂളކѩࠣቋཬ߄ު֥֖σ

Slide 63

Slide 63 text

ႮႿMiniીႵߏթࠏᇅaᆺିႨᄝषؿߌ࣢ ᄝbuildൈ֤ყ༵Ӂളކѩࠣቋཬ߄ު֥֖σ

Slide 64

Slide 64 text

ႮႿMiniીႵߏթࠏᇅaᆺିႨᄝषؿߌ࣢ ᄝbuildൈ֤ყ༵Ӂളކѩࠣቋཬ߄ު֥֖σ ཌഈ֥CSS/JSᄝBuildުӮູֆ၂֖σ

Slide 65

Slide 65 text

်Ҫࠩഡקଆൔ֥ᆜุࡏܒ

Slide 66

Slide 66 text

်Ҫࠩഡקଆൔ֥ᆜุࡏܒ ޓᆰत֥ᄛೆࠏᇅđॖၛႵֹིࡼଆॶ֖σކѩ࿢෪

Slide 67

Slide 67 text

ᆃ൞NJJJ$BTBՖ၂ष൓ࣼ൐Ⴈ֥ଆॶࡆᄛٚൔ ຩᅟഈཌު׻ޓ໗קaޓડၩ ֌ෛᇷࠫՑ֥ڿϱđ໡ⁿứགྷਔ҂ഒ໙ี ်Ҫࠩഡקଆൔ

Slide 68

Slide 68 text

ڿϱсקϴෛᇷଆॶ ۿି ֥ྍᄹaྩڿa၍Ԣ ྩڿ.JOJ֥ቆ෿ഡק҂ࣼݺਔગĤ ಌׄົ޹҂ၞ

Slide 69

Slide 69 text

ڿϱсקϴෛᇷଆॶ ۿି ֥ྍᄹaྩڿa၍Ԣ ྩڿ.JOJ֥ቆ෿ഡק҂ࣼݺਔગĤ ಌׄົ޹҂ၞ ڿϱ֞ྍϱުđႵ۱်૫ଆॶླေ၍Ԣ čࠎЧࣼႵ۱֖σླ၍ԢĎ

Slide 70

Slide 70 text

֌ଆॶ၇ঠܱ༢൞٤ӈگᄖ֥Ć http://www.flickr.com/photos/kalavinka/4617897952/

Slide 71

Slide 71 text

֌ଆॶ၇ঠܱ༢൞٤ӈگᄖ֥Ć http://www.flickr.com/photos/kalavinka/4617897952/

Slide 72

Slide 72 text

֌ଆॶ၇ঠܱ༢൞٤ӈگᄖ֥Ć ်૫ଆॶJavaScript http://www.flickr.com/photos/kalavinka/4617897952/

Slide 73

Slide 73 text

֌ଆॶ၇ঠܱ༢൞٤ӈگᄖ֥Ć ۿିଆॶ JavaScript ်૫ଆॶJavaScript http://www.flickr.com/photos/kalavinka/4617897952/

Slide 74

Slide 74 text

֌ଆॶ၇ঠܱ༢൞٤ӈگᄖ֥Ć YUI CSS ်૫ଆॶCSS ۿିଆॶ JavaScript ်૫ଆॶJavaScript http://www.flickr.com/photos/kalavinka/4617897952/

Slide 75

Slide 75 text

֌ଆॶ၇ঠܱ༢൞٤ӈگᄖ֥Ć YUI CSS ်૫ଆॶCSS ۿିଆॶ JavaScript ်૫ଆॶJavaScript མေ၍Ԣ၂۱်૫ଆॶ ଧུۿିଆॶ္ླေ၂ఏ၍Ԣ଻Ĥ http://www.flickr.com/photos/kalavinka/4617897952/

Slide 76

Slide 76 text

ࢳथ၇ঠ໙ีđቋ࣍ޓࠅಣ֥".%ࡏܒ

Slide 77

Slide 77 text

6006 // 定义⼀一个 AMD 模块 define(“editor”, [“handlebars”], function () { function Editor { /* Constructor */ } return Editor; },); ࢳथ၇ঠ໙ีđቋ࣍ޓࠅಣ֥".%ࡏܒ

Slide 78

Slide 78 text

6006 // 定义⼀一个 AMD 模块 define(“editor”, [“handlebars”], function () { function Editor { /* Constructor */ } return Editor; },); ࢳथ၇ঠ໙ีđቋ࣍ޓࠅಣ֥".%ࡏܒ ֻؽ۱ҕඔॖၛקၬՎଆॶླေଧུଆॶ

Slide 79

Slide 79 text

6006 6006 // 定义⼀一个 AMD 模块 define(“editor”, [“handlebars”], function () { function Editor { /* Constructor */ } return Editor; },); ࢳथ၇ঠ໙ีđቋ࣍ޓࠅಣ֥".%ࡏܒ // 使用⼀一个 AMD 模块 require(["editor"], function (Editor) { new Editor(); }); ֻؽ۱ҕඔॖၛקၬՎଆॶླေଧུଆॶ ᄝ൐Ⴈൈၛ׮෿ᄛೆٚൔࡼཌྷܱଆॶ֖σ၂ѩᄛೆ

Slide 80

Slide 80 text

ಌׄBuildݻൈݖࣲ ໡ૌ܋Ⴕᆃહ؟်֥૫ླყ༵#VJMEğ

Slide 81

Slide 81 text

ಌׄBuildݻൈݖࣲ ໡ૌ܋Ⴕᆃહ؟်֥૫ླყ༵#VJMEğ

Slide 82

Slide 82 text

NJJJ$BTB#VJMEੀӱᇏ ູ֤෮Ⴕ်૫ࡹᇂ࣡෿֖ Վֆཛቔြ֤ݻൈٳ϶Ć ಌׄBuildݻൈݖࣲ ໡ૌ܋Ⴕᆃહ؟်֥૫ླყ༵#VJMEğ

Slide 83

Slide 83 text

NJJJ$BTB#VJMEੀӱᇏ ູ֤෮Ⴕ်૫ࡹᇂ࣡෿֖ Վֆཛቔြ֤ݻൈٳ϶Ć ֌൞ӻ࿃ᆜކ֥ѓሙ൞ ປᆜ#VJME҂ႋӑݖٳᇒ ಌׄBuildݻൈݖࣲ ໡ૌ܋Ⴕᆃહ؟်֥૫ླყ༵#VJMEğ

Slide 84

Slide 84 text

ಌׄཌഈԢԋ঒଴

Slide 85

Slide 85 text

ಌׄཌഈԢԋ঒଴ ࠧ൐ࣜݖ#FBVUJGJFSಯ҂ၞྩڿaߎ൞֤#VJMEaؓေ౰ૹࢮषؿࣼҵਔུ

Slide 86

Slide 86 text

ૄ်֥+4ა$44֖σ׻൞ປಆ҂ᇗگ֥ ္ၹՎીႵϷمቓ֞ॴ်ࡗ֥ߏթ ಌׄߏթིੱҵ

Slide 87

Slide 87 text

miii_index_my_contact_18fa331dfbf2bd392660925ba8f41239.js miii_index_my_contact_34945d9e0efb63c7dc62dcbbc3442a60.css ਆ်Ⴕྸ؟܋Ⴈ်֥૫ଆॶaಏ໭ߏթ֥ݺԩ miii_index_my_device_704b3ae3682d178a94465c066b0f6d42.js miii_index_my_device_623f7e30575a7180ddeb11fd748aed31.css ಌׄߏթིੱҵ ުট໡ૌູਔߏթaԎ৖ԛ၂ུ܋Ⴈ.JOJଆॶ ֌ᆃဢቓّطಞഡק۷଴ၞົ޹

Slide 88

Slide 88 text

ଆॶҪࠩഡקଆൔ ᆇᆞ֥ଆॶ֝ཟषؿĆ

Slide 89

Slide 89 text

໡ྏଢᇏ֥໩ກϹĆ ಞଆॶ߄षؿ҂ླေᄜႵِସ်૫஥ᇂĆ

Slide 90

Slide 90 text

໡ྏଢᇏ֥໩ກϹĆ ಞଆॶ߄षؿ҂ླေᄜႵِସ်૫஥ᇂĆ

Slide 91

Slide 91 text

໡ྏଢᇏ֥໩ກϹĆ षؿᆀህᇿႿֆ၂ଆॶ֥षؿ ഡקՎଆॶླေଧུ၇ঠଆॶ ಞଆॶ߄षؿ҂ླေᄜႵِସ်૫஥ᇂĆ ଆॶࡏܒ

Slide 92

Slide 92 text

໡ྏଢᇏ֥໩ກϹĆ -PBEFS࠹ෘԛ်૫ Ⴕଧུଆॶླᄛೆ षؿᆀህᇿႿֆ၂ଆॶ֥षؿ ഡקՎଆॶླေଧུ၇ঠଆॶ ಞଆॶ߄षؿ҂ླေᄜႵِସ်૫஥ᇂĆ ଆॶࡏܒ ଆॶ-PBEFS

Slide 93

Slide 93 text

໡ྏଢᇏ֥໩ກϹĆ -PBEFS࠹ෘԛ်૫ Ⴕଧུଆॶླᄛೆ षؿᆀህᇿႿֆ၂ଆॶ֥षؿ ഡקՎଆॶླေଧུ၇ঠଆॶ ಞଆॶ߄षؿ҂ླေᄜႵِସ်૫஥ᇂĆ ଆॶࡏܒ ଆॶ-PBEFS ჹ؊ଆॶᄛೆࠏᇅ ڛༀఖაᛍফఖ؊ࢌ޺஥ކ ሱ׮ၛིିቋࡄ߄ٚൔᄛೆჹ؊ଆॶ

Slide 94

Slide 94 text

3FRVJSF+4൞ଢభቋ୤Я֥".%ൌቔ

Slide 95

Slide 95 text

3FRVJSF+4൞ଢభቋ୤Я֥".%ൌቔ ॖၛሱ׮၂۱၂۱ᄛೆ၇ঠ֥ଆॶ ࠇؿ҃భ๩ݖSKTቓކѩࠣቋཬ߄ // AMD Module define(“editor”, [‘a’,’b’,’c’], function () { function Editor { /* Constructor */ } return Editor; }); require(["editor"], function (Editor) { new Editor(); });

Slide 96

Slide 96 text

3FRVJSF+4൞ଢభቋ୤Я֥".%ൌቔ ॖၛሱ׮၂۱၂۱ᄛೆ၇ঠ֥ଆॶ ࠇؿ҃భ๩ݖSKTቓކѩࠣቋཬ߄ // AMD Module define(“editor”, [‘a’,’b’,’c’], function () { function Editor { /* Constructor */ } return Editor; }); require(["editor"], function (Editor) { new Editor(); }); ކѩაቋཬ߄ಯಖ߶ႵཌഈԢհ঒଴ა #VJMEൈࡗݖࣲ֥ਆ۱໙ีa മᇀଆॶ၂؟ؓषؿ෎؇္߶ᄯӮԊࠌ 3FRVJSF+4֥ࡏܒၹՎ҂෾ژކ໡֥ླ౰

Slide 97

Slide 97 text

ݓଽࢠഒದ൐Ⴈ֥:6*ݦൔ९

Slide 98

Slide 98 text

ݓଽࢠഒದ൐Ⴈ֥:6*ݦൔ९ ᄪᄝ೘୍భaᄅࣼิԛ֥ଆॶࡏܒ

Slide 99

Slide 99 text

ݓଽࢠഒದ൐Ⴈ֥:6*ݦൔ९ ᄪᄝ೘୍భaᄅࣼิԛ֥ଆॶࡏܒ // AMD Module define(‘editor’, [‘a’,’b’,’c’], function () { function Editor { /* Constructor */ } return Editor; }); require(["editor"], function (Editor) { new Editor(); });

Slide 100

Slide 100 text

ݓଽࢠഒದ൐Ⴈ֥:6*ݦൔ९ ᄪᄝ೘୍భaᄅࣼิԛ֥ଆॶࡏܒ ۵ಀ୍ҌႵ֥".%a෮ေࢳथଆॶ၇ঠྟ֥නਫ਼൞၂ᇁ֥ // AMD Module define(‘editor’, [‘a’,’b’,’c’], function () { function Editor { /* Constructor */ } return Editor; }); require(["editor"], function (Editor) { new Editor(); }); // YUI Module YUI.add("editor", function () { function Editor { /* Constructor */ } Y.Editor = Editor; }, “VERSION”, {requires:[‘a’,’b’,’c’]}); YUI.use("editor", function (Y) { new Y.Editor(); });

Slide 101

Slide 101 text

ၛYUI DataTableູٓ২

Slide 102

Slide 102 text

ၛYUI DataTableູٓ২

Slide 103

Slide 103 text

ၛYUI DataTableູٓ২ ҂Reload֥ྛູޓ؟ğ ߐ်aஆ྽aᆰࢤщࠠb္ ॖၛࢤ൳۲োሧਘটჷđ൞ ޓگᄖ֥ଆቆ

Slide 104

Slide 104 text

ᆺေࠫྛս઒ࣼॖၛᄛೆ෮ླଆॶ

Slide 105

Slide 105 text

ᆺေࠫྛս઒ࣼॖၛᄛೆ෮ླଆॶ

Slide 106

Slide 106 text

ᆺေࠫྛս઒ࣼॖၛᄛೆ෮ླଆॶ YUI().use('datatable', function (Y) { });

Slide 107

Slide 107 text

ᆺေࠫྛս઒ࣼॖၛᄛೆ෮ླଆॶ YUI().use('datatable', function (Y) { }); ିམཞྛս઒Мުđቓਔ؟ഒ൙౦ગĤ alert(Y.DataTable);

Slide 108

Slide 108 text

yui (Seed) ࠹ෘ෮ླଆॶ֥ੀӱ

Slide 109

Slide 109 text

yui (Seed) ࠹ෘ෮ླଆॶ֥ੀӱ YUI().use('datatable')

Slide 110

Slide 110 text

yui (Seed) widget datatable-core base-build datatable-head datatable-body ࠹ෘ෮ླଆॶ֥ੀӱ YUI().use('datatable')

Slide 111

Slide 111 text

escape yui (Seed) widget datatable-core base-build datatable-head datatable-body model-list node-event-delegate base-base attribute event-focus base-plugin-host node-base node-style classnamemanager view ࠹ෘ෮ླଆॶ֥ੀӱ YUI().use('datatable')

Slide 112

Slide 112 text

escape yui (Seed) widget datatable-core base-build datatable-head datatable-body model-list node-event-delegate base-base attribute event-focus base-plugin-host node-base node-style classnamemanager view yui-base event-delegate pluginhost event-synthetic attribute-core attribute-events attribute-extras array-extras array-invoke arraylist json-parse model ࠹ෘ෮ླଆॶ֥ੀӱ YUI().use('datatable')

Slide 113

Slide 113 text

escape yui (Seed) widget datatable-core base-build datatable-head datatable-body model-list node-event-delegate base-base attribute event-focus base-plugin-host node-base node-style classnamemanager view yui-base event-delegate pluginhost event-synthetic attribute-core attribute-events attribute-extras array-extras array-invoke arraylist json-parse model ࠹ෘ෮ླଆॶ֥ੀӱ YUI().use('datatable') ൌ࠽ഈdatatable܋Ⴕ64ἠଆॶ֖ླᄛೆ ၂۱၂۱ᄛೆ߶ޓҠིି YUI֥ԩ৘ٚൔູޅĤ

Slide 114

Slide 114 text

఼ն֥࿢෪ࠏCombo

Slide 115

Slide 115 text

఼ն֥࿢෪ࠏCombo ࿮޷֥Combo ࠏᇅ ᆰࢤၛGETҕඔࡼ҂๝ଆॶ֖σԱ৵ѩቋཬ߄

Slide 116

Slide 116 text

఼ն֥࿢෪ࠏCombo ࿮޷֥Combo ࠏᇅ ᆰࢤၛGETҕඔࡼ҂๝ଆॶ֖σԱ৵ѩቋཬ߄ http://yui.yahooapis.com/combo? ଆॶ1֥ؓႋਫ਼ࣥ ଆॶ2֥ؓႋਫ਼ࣥ ଆॶ3֥ؓႋਫ਼ࣥ  ଆॶn֥ؓႋਫ਼ࣥ

Slide 117

Slide 117 text

ѩྛ٤؁ೖࡆᄛ YUI().use('datatable')

Slide 118

Slide 118 text

YUI ᇕሰ֖σ ѩྛ٤؁ೖࡆᄛ YUI().use('datatable')

Slide 119

Slide 119 text

YUI ᇕሰ֖σ ᄛೆཌྷܱCSS ѩྛ٤؁ೖࡆᄛ YUI().use('datatable')

Slide 120

Slide 120 text

ࡼ෮ླJavaScriptଆॶٳ೛౨౰aѩྛ༯ᄛ YUI ᇕሰ֖σ ᄛೆཌྷܱCSS ѩྛ٤؁ೖࡆᄛ YUI().use('datatable')

Slide 121

Slide 121 text

ࡼ෮ླJavaScriptଆॶٳ೛౨౰aѩྛ༯ᄛ YUI ᇕሰ֖σ ᄛೆཌྷܱCSS ѩྛ٤؁ೖࡆᄛ ٳ೛აComboઆࠠॉ੮ਔğwଆॶ༵ުඨ྽xawଆॶඔਈxawᛍফఖ๝ൈ౨౰ඔ ਈxawᛍফఖ(&5Ӊ؇ཋᇅxđ٤ӈ֥ሱ׮߄bሱ࠭ေቓᆃဢ֥ࠏᇅ٤ӈ҂ၞb YUI().use('datatable')

Slide 122

Slide 122 text

YUI().use('datatable')

Slide 123

Slide 123 text

ՖᇕሰэӮնඎࣇ޽ਔ323ms 323ms YUI().use('datatable')

Slide 124

Slide 124 text

ՖᇕሰэӮնඎࣇ޽ਔ323ms 323ms ҂ਔࢳଽ౦֥ದ߶ඪ:6*ޓ٧ޓஔն ൌ࠽ഈ෱ᆺᄛೆླေ֥ଆॶaః෰ݦൔ९㢻Ⴕ≾∄ི֥ੱ YUI().use('datatable')

Slide 125

Slide 125 text

ՖᇕሰэӮնඎࣇ޽ਔ323ms 323ms ҂ਔࢳଽ౦֥ದ߶ඪ:6*ޓ٧ޓஔն ൌ࠽ഈ෱ᆺᄛೆླေ֥ଆॶaః෰ݦൔ९㢻Ⴕ≾∄ི֥ੱ YUI().use('datatable') ২ೂğ൐ႨK2VFSZᆇ֥ૄ်׻Ⴈ֥֞BKBYᆃ۱ݦൔગĤ

Slide 126

Slide 126 text

John Resig The creator of jQuery http://www.quora.com/How-could-YUI3-improve-its-image-compared-to-jQuery-MooTools-etc YUIᄛೆٚൔൌᄝ෾SexyਔaႋФն৯๷ܼĆ

Slide 127

Slide 127 text

John Resig The creator of jQuery YUI().use() + pulling code off of Yahoo's CDN is damn sexy and should be promoted *VERY* heavily. http://www.quora.com/How-could-YUI3-improve-its-image-compared-to-jQuery-MooTools-etc YUIᄛೆٚൔൌᄝ෾SexyਔaႋФն৯๷ܼĆ

Slide 128

Slide 128 text

ႵଆॶࡏܒaႵଆॶ-PBEFSa ஥ކቋࡄ߄֥ჹ؊ଆॶᄛೆࠏᇅĆ ߎ֩൉હĤॹ֞Ⴈᄝຩᅟ်૫ଆॶ֥ᄛೆࠏᇅഈĆ :6*֥ࡏܒᆞ൞໡෮௹ஏ֥

Slide 129

Slide 129 text

໙ีğ࿙ᅳComboࠏᇅู֥ս௖

Slide 130

Slide 130 text

໙ีğ࿙ᅳComboࠏᇅู֥ս௖ ࿮޷֥$PNCPࣇ܂ଽ҆൐ႨaߎݺႵದཿਔูս௖Ć ໡࿊ᄴ֥൞.JOJGZᆃ۱۽ऎđ၂ဢ߶Ϻ໡ቓයڛఖ؊ ֥ߏթaކѩა֖σቋཬ߄

Slide 131

Slide 131 text

໙ีğ࿙ᅳComboࠏᇅู֥ս௖ ࿮޷֥$PNCPࣇ܂ଽ҆൐ႨaߎݺႵದཿਔูս௖Ć http://code.google.com/p/minify/ Minify (PHP5) https://github.com/mrclay/minify ໡࿊ᄴ֥൞.JOJGZᆃ۱۽ऎđ၂ဢ߶Ϻ໡ቓයڛఖ؊ ֥ߏթaކѩა֖σቋཬ߄

Slide 132

Slide 132 text

໙ีğ࿙ᅳComboࠏᇅู֥ս௖ ࿮޷֥$PNCPࣇ܂ଽ҆൐ႨaߎݺႵದཿਔูս௖Ć http://code.google.com/p/minify/ Minify (PHP5) https://github.com/mrclay/minify http:///minify?f= ଆॶ1֥ؓႋਫ਼ࣥ ଆॶ2֥ؓႋਫ਼ࣥ  ଆॶn֥ؓႋਫ਼ࣥ ໡࿊ᄴ֥൞.JOJGZᆃ۱۽ऎđ၂ဢ߶Ϻ໡ቓයڛఖ؊ ֥ߏթaކѩა֖σቋཬ߄

Slide 133

Slide 133 text

঒଴ؽğ:6*ሱרଆॶቆ෿ഡקگᄖ

Slide 134

Slide 134 text

঒଴ؽğ:6*ሱרଆॶቆ෿ഡקگᄖ ٤:6*Чദ֥ଆॶ֤ਸ਼ຓקၬđ֌ᆃဢ҂ݺົ޹

Slide 135

Slide 135 text

঒଴ؽğ:6*ሱרଆॶቆ෿ഡקگᄖ YUI_config = {"filter":"raw","async":true,"combine":true,"comboBase":"combo/?f=","comboSep":",","root":"lib/yui/ build/","langs":"zh-TW,en-US","groups":{"mui":{"combine":true,"fetchCSS":true,"root":"lib/mui/","lang":["en-US","zh- TW"],"modules":{"platform-core":{"path":"platform/core.js","requires":["node-base","event-base","platform- sandbox"]},"platform-sandbox":{"path":"platform/sandbox.js"},"lang-service":{"path":"platform/lang_service.js","requires": ["platform-core","platform-sandbox","intl"]},"scroll-pagination":{"path":"scroll-pagination/scroll- pagination.js","requires":["event","event-resize","node-event-delegate","datasource","scroll-pagination-css"]},"scroll- pagination-css":{"path":"scroll-pagination/assets/scroll-pagination.css","type":"css"},"shjs":{"path":"shjs/ sh_php.min.js","requires":["shjs-core","shjs-css"]},"shjs-css":{"path":"shjs/sh_nedit.css","type":"css"},"mui-cssbutton": {"path":"cssbutton/assets/skins/miiicasa/cssbutton-skin.css","type":"css"},"shjs-core":{"path":"shjs/ sh_main.min.js"}}},"index":{"combine":true,"fetchCSS":false,"root":"index/","lang":["en-US","zh-TW"],"modules":{"welcome": {"path":"welcome/welcome.js","lang":["en-US","zh-TW"],"requires":["platform-core","platform-sandbox","lang- service","console"]},"welcome/_notification":{"path":"welcome/_notification.js","requires":["substitute","scroll- pagination","yql","panel","node-event-delegate","handlebars"]},"charming/_masthead":{"path":"charming/ _masthead.js","requires":["panel","shjs"]},"common/_sidebar":{"requires":["mui-cssbutton"]}}}}}; YUI().use("welcome","welcome/_notification","charming/_masthead","common/_sidebar"); ٤:6*Чദ֥ଆॶ֤ਸ਼ຓקၬđ֌ᆃဢ҂ݺົ޹

Slide 136

Slide 136 text

঒଴೘ğ$44҂ൡႨႿ׮෿ࡆᄛ

Slide 137

Slide 137 text

঒଴೘ğ$44҂ൡႨႿ׮෿ࡆᄛ :6*ა3FRVJSF+4׻ॖၛࡆᄛ$44a ֌׻ᆺିҐႨ׮෿ࡆᄛ

Slide 138

Slide 138 text

঒଴೘ğ$44҂ൡႨႿ׮෿ࡆᄛ $44ྶᄝ)5.-ཁൕభࣼሙСݺđ ҂ಖᛍফఖྶ၂ᆰᇗྍ߻ᇅđؓຩᅟིି߶൞ޓն֥Ԋࠌ :6*ა3FRVJSF+4׻ॖၛࡆᄛ$44a ֌׻ᆺିҐႨ׮෿ࡆᄛ

Slide 139

Slide 139 text

঒଴೘ğ$44҂ൡႨႿ׮෿ࡆᄛ $44ྶᄝ)5.-ཁൕభࣼሙСݺđ ҂ಖᛍফఖྶ၂ᆰᇗྍ߻ᇅđؓຩᅟིି߶൞ޓն֥Ԋࠌ :6*ა3FRVJSF+4׻ॖၛࡆᄛ$44a ֌׻ᆺିҐႨ׮෿ࡆᄛ

Slide 140

Slide 140 text

:6*ࢳथਔն҆ٳ֥ླ౰ ഺ༯֥ూਃ֤ሱ࠭ࡹഡĆ http://www.flickr.com/photos/defenceimages/6771187177/

Slide 141

Slide 141 text

https://github.com/josephj/static-loader ၂ѩࢳथ:6*ቆ෿֥گᄖ؇ა ಞ$44Ԯ๤ࡆᄛ :6*ࢳथਔն҆ٳ֥ླ౰ ഺ༯֥ూਃ֤ሱ࠭ࡹഡĆ http://www.flickr.com/photos/defenceimages/6771187177/

Slide 142

Slide 142 text

ਆρ೘ֹ֥षؿᆀ ᆃ߭໡ૌေࡆഈଆॶ၇ঠܱ༢Ć http://josephj.com/lab/2012/github-chinese-develope/ 资讯模块 列表模块 _info.php _info.css _info.js _list.php _list.css _list.js 条件过滤模块 _filter.php _filter.css _filter.js

Slide 143

Slide 143 text

ਆρ೘ֹ֥षؿᆀ ᆃ߭໡ૌေࡆഈଆॶ၇ঠܱ༢Ć http://josephj.com/lab/2012/github-chinese-develope/ 资讯模块 列表模块 _info.php _info.css _info.js _list.php _list.css _list.js 条件过滤模块 _filter.php _filter.css _filter.js module, cookie •module • node-event-delegate • node-style • node-screen • cache • jsonp • handlebars • event-resize •cookie •module • node-base •handlebars

Slide 144

Slide 144 text

ૄ۱ଆॶ֥ቆ෿ഡק ҂ᄜ→Ὂ ර.JOJ֥∉૫℟ק

Slide 145

Slide 145 text

ૄ۱ଆॶ֥ቆ෿ഡק ҂ᄜ→Ὂ ර.JOJ֥∉૫℟ק

Slide 146

Slide 146 text

ૄ۱ଆॶ֥ቆ෿ഡק ଆॶקၬሱദ+4ა$44໊ᇂ ࠣ၇ঠܱ༢ ҂ᄜ→Ὂ ර.JOJ֥∉૫℟ק

Slide 147

Slide 147 text

ᆷקՎ်૫Ⴕଧ်ུ૫ଆॶ ޓᆰत֥ᆷקٚൔ

Slide 148

Slide 148 text

ᆷקՎ်૫Ⴕଧ်ུ૫ଆॶ ޓᆰत֥ᆷקٚൔ

Slide 149

Slide 149 text

ᆷקՎ်૫Ⴕଧ်ུ૫ଆॶ ҂ླᆩ֡Мᗥ֥၇ῳଆΰĆᆺေᆷק်૫ଆॶ ၍Ԣ္҂ླေքྏ႕ཙљ֥ଆॶ ޓᆰत֥ᆷקٚൔ

Slide 150

Slide 150 text

౞ၞࡼ෮Ⴕླေ֥ഡקაѓదൻԛ گᄖ֥൙౦ႋھࢌ۳ӱൔটቓάĆ

Slide 151

Slide 151 text

౞ၞࡼ෮Ⴕླေ֥ഡקაѓదൻԛ گᄖ֥൙౦ႋھࢌ۳ӱൔটቓάĆ

Slide 152

Slide 152 text

౞ၞࡼ෮Ⴕླေ֥ഡקაѓదൻԛ گᄖ֥൙౦ႋھࢌ۳ӱൔটቓάĆ

Slide 153

Slide 153 text

ࡆᄛ֥ٚൔ൅ٳႪၳ

Slide 154

Slide 154 text

ࡆᄛ֥ٚൔ൅ٳႪၳ ၛԮ๤ٚൔࡆᄛᇕሰა်૫$44

Slide 155

Slide 155 text

ࡆᄛ֥ٚൔ൅ٳႪၳ ٳ೛❣ứ֥+4౨౰ ൞ሱ׮࠹ෘ၇ঠܱ༢طളӮ ၛԮ๤ٚൔࡆᄛᇕሰა်૫$44

Slide 156

Slide 156 text

ໃটषؿॖၛປಆህᇿᄝଆॶഈ

Slide 157

Slide 157 text

ໃটषؿॖၛປಆህᇿᄝଆॶഈ "๙ᆩ࿟༏ଆॶ (_notification) ଆॶषؿᆀ" ଆॶ଀ӫ welcome/_notification $44֖σ welcome/_notification.css +4֖σ welcome/_notification.js ཌྷ၇ଆॶ scroll-pagination, node-event-delegate, viewer

Slide 158

Slide 158 text

ໃটषؿॖၛປಆህᇿᄝଆॶഈ "๙ᆩ࿟༏ଆॶ (_notification) ଆॶषؿᆀ" #်൮ଆॶ (_masthead) ଆॶषؿᆀ# ଆॶ଀ӫ welcome/_notification $44֖σ welcome/_notification.css +4֖σ welcome/_notification.js ཌྷ၇ଆॶ scroll-pagination, node-event-delegate, viewer ଆॶ଀ӫ common/_masthead $44֖σ common/_masthead.css +4֖σ common/_masthead.js ෮ླଆॶ panel, device-navigation

Slide 159

Slide 159 text

ໃটषؿॖၛປಆህᇿᄝଆॶഈ "๙ᆩ࿟༏ଆॶ (_notification) ଆॶषؿᆀ" #်൮ଆॶ (_masthead) ଆॶषؿᆀ# $ҧшণଆॶ (_sidebar) ଆॶषؿᆀ$ ଆॶ଀ӫ welcome/_notification $44֖σ welcome/_notification.css +4֖σ welcome/_notification.js ཌྷ၇ଆॶ scroll-pagination, node-event-delegate, viewer ଆॶ଀ӫ common/_masthead $44֖σ common/_masthead.css +4֖σ common/_masthead.js ෮ླଆॶ panel, device-navigation ଆॶ଀ӫ welcome/_sidebar $44֖σ welcome/_sidebar.css +4֖σ ↥ ෮ླଆॶ ↥

Slide 160

Slide 160 text

ቋުᄜ$POUSPMMFSᆷק်૫ଆॶࠧॖ ֨ೆު൮် welcome.php 页面开发者

Slide 161

Slide 161 text

ቋުᄜ$POUSPMMFSᆷק်૫ଆॶࠧॖ ֨ೆު൮် welcome.php 页面开发者 Վ်૫Ⴕၛ༯ଆॶğ ·•welcome/_notification ·•charming/_masthead ·•common/_sidebar

Slide 162

Slide 162 text

߭Ἢ်Ҫࠩഡק෮ᄥმ֥঒଴

Slide 163

Slide 163 text

߭Ἢ်Ҫࠩഡק෮ᄥმ֥঒଴ c #VJMEིੱ໙ี ҂ᄜ#VJMEđႮ.JOJGZᄝཌഈሱ׮ކѩa࿢෪aϱЧ॥ܵb

Slide 164

Slide 164 text

߭Ἢ်Ҫࠩഡק෮ᄥმ֥঒଴ c #VJMEིੱ໙ี ҂ᄜ#VJMEđႮ.JOJGZᄝཌഈሱ׮ކѩa࿢෪aϱЧ॥ܵb c ཌഈԢհ໙ี ჰ൓֖σࢥթᄝđॖၛᆰࢤྩᆞ໙ีđᆺေϜ.JOJGZؓႋ֥ߏթीוࠧॖ

Slide 165

Slide 165 text

߭Ἢ်Ҫࠩഡק෮ᄥმ֥঒଴ c #VJMEིੱ໙ี ҂ᄜ#VJMEđႮ.JOJGZᄝཌഈሱ׮ކѩa࿢෪aϱЧ॥ܵb c ཌഈԢհ໙ี ჰ൓֖σࢥթᄝđॖၛᆰࢤྩᆞ໙ีđᆺေϜ.JOJGZؓႋ֥ߏթीוࠧॖ c ົ޹ྟ໙ี Ῐứᆀᆺקၬሱദଆॶ֥ཌྷ၇ྟaᆜ်෮ླଆΰႮ:6*-PBEFSίෘᗥሱọ≘ ೆđܵ৘ಸၞྸ؟b

Slide 166

Slide 166 text

߭Ἢ်Ҫࠩഡק෮ᄥმ֥঒଴ c #VJMEིੱ໙ี ҂ᄜ#VJMEđႮ.JOJGZᄝཌഈሱ׮ކѩa࿢෪aϱЧ॥ܵb c ཌഈԢհ໙ี ჰ൓֖σࢥթᄝđॖၛᆰࢤྩᆞ໙ีđᆺေϜ.JOJGZؓႋ֥ߏթीוࠧॖ c ົ޹ྟ໙ี Ῐứᆀᆺקၬሱദଆॶ֥ཌྷ၇ྟaᆜ်෮ླଆΰႮ:6*-PBEFSίෘᗥሱọ≘ ೆđܵ৘ಸၞྸ؟b c ܋Ⴈ֥ߏթ໙ี Ԣਔಆთ܋ႨҐႨ.JOJGZᇏ֥HSPVQ$POGJHđఃᘧ҂ԩ৘aх૧ົ޹໙ี

Slide 167

Slide 167 text

ࢲე

Slide 168

Slide 168 text

်Ҫ֥ࠩഡᇂॖམӮwᇏနࠢಃx ഡᇂಸၞbԚ௹၂ଢਔಖđ֌ܿଆэնࣼܵ৘҂ၞb ࢲე

Slide 169

Slide 169 text

်Ҫ֥ࠩഡᇂॖམӮwᇏနࠢಃx ഡᇂಸၞbԚ௹၂ଢਔಖđ֌ܿଆэնࣼܵ৘҂ၞb ଆॶҪࠩ℟קᄵ൞wֹٚሱᇍx ഡᇂࢠگᄖaؓӉ௹ົ޹ࢠႵིੱb ஥ކཌྷ၇ྟ࠹ෘaሱ׮ކѩa٤๝҄༯ᄛ֩ࠏᇅ ಞ်૫ଆॶᆇ֥ቓ֞ෛҬࠧႨ ࢲე

Slide 170

Slide 170 text

ࢲე

Slide 171

Slide 171 text

#JH1JQF൞ޓ؟ຩᅟམൌቔ֥ଢѓ ֌൮༵୆֤wࡹ৫ଆॶཌྷ၇ྟxawҐႨ်૫ଆॶषؿଆൔx ༵ࡹ৫ଆॶ֝ཟषؿଆൔҌॖିႵൌቔ֥ࠏ߶ ܝৣࢠऎܿଆ֥ຩᅟष൓ສᆃٚཟ၍׮ ࢲე

Slide 172

Slide 172 text

ཌྷܱ৵ࢲ c2010ࡹ৫భ؊षؿ๶ؒ IUUQXXXTMJEFTIBSFOFUTEDD cॴଆॶ܎๙ࠏᇅ IUUQHJUIVCDPNNJJJDBTBNPEVMF cMiniࡆᄛ۽ऎ IUUQHJUIVCDPNKPTFQIKNJOJ cଆॶࡆᄛࠏᇅ IUUQHJUIVCDPNKPTFQIKTUBUJDMPBEFS cਆρ೘ֹ֥GitHubषؿᆀ IUUQHJUIVCDPNKPTFQIKHJUIVCDIJOFTFEFWFMPQ c໡֥Ѱग़ğᆃဢቓࣼؓਔ IUUQKPTFQIKDPN c໡֥EmailğKPTFQIK!HNBJMDPN 今天看到的所有程式码或工具都是可分享的!

Slide 173

Slide 173 text

Questions?

Slide 174

Slide 174 text

miiiCasa ࡅ๖≐aࡹ৫ࡅᇏ֥SNS 在北京工作的⼀一家人

Slide 175

Slide 175 text

miiiCasa ࡅ๖≐aࡹ৫ࡅᇏ֥SNS 在北京工作的⼀一家人 在老家重慶的奶奶

Slide 176

Slide 176 text

miiiCasa ࡅ๖≐aࡹ৫ࡅᇏ֥SNS 在北京工作的⼀一家人 在老家重慶的奶奶 位於家中、可存放照片的分享器

Slide 177

Slide 177 text

miiiCasa ࡅ๖≐aࡹ৫ࡅᇏ֥SNS 在北京工作的⼀一家人 在老家重慶的奶奶 位於家中、可存放照片的分享器 ޺৵ຩ

Slide 178

Slide 178 text

miiiCasa ࡅ๖≐aࡹ৫ࡅᇏ֥SNS 在北京工作的⼀一家人 在老家重慶的奶奶 想看孫女只要换个频道就可以了 位於家中、可存放照片的分享器 ޺৵ຩ

Slide 179

Slide 179 text

No content