1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> KEVIN Schmid: Helo bawb. 3 00:00:09,710 --> 00:00:12,640 Croeso i'r seminar CS50 ar Node.js. 4 00:00:12,640 --> 00:00:13,955 Fy enw i yw Kevin. 5 00:00:13,955 --> 00:00:15,580 Rwy'n TF CS50. 6 00:00:15,580 --> 00:00:17,650 A dwi'n math o fel edrych ymlaen yn fawr am y seminar hwn. 7 00:00:17,650 --> 00:00:20,430 Yr wyf yn meddwl Node.js yn oer iawn. 8 00:00:20,430 --> 00:00:24,200 Yr wyf yn gobeithio y gall y seminar hwn yn cael ei ddefnyddio fel da, yr wyf yn dyfalu, sbardun ar gyfer 9 00:00:24,200 --> 00:00:26,380 rai o'ch prosiectau terfynol os oes gennych ddiddordeb mewn defnyddio 10 00:00:26,380 --> 00:00:27,630 rhywbeth fel Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Byddwn yn fath o gychwyn y seminar i ffwrdd gan dim ond sôn am ychydig o 13 00:00:33,320 --> 00:00:36,970 math o scalability cefndir safbwyntiau Node.js, ac yna 14 00:00:36,970 --> 00:00:39,240 byddwn yn symud at rai enghreifftiau cod. 15 00:00:39,240 --> 00:00:42,340 A byddaf yn cael y cod ar wefan, a gallwch edrych ar y cod. 16 00:00:42,340 --> 00:00:45,475 Ac ar ôl y seminar, byddaf yn trefnu o siarad am sut y gallwch sefydlu Node.js 17 00:00:45,475 --> 00:00:48,220 ar eich cyfrifiadur. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Felly, gadewch i ni ddechrau arni. 20 00:00:49,760 --> 00:00:53,700 Felly, yr wyf yn dyfalu Fi jyst eisiau i siarad am gweinyddwyr y we, mewn gwirionedd, yn gyntaf. 21 00:00:53,700 --> 00:00:59,730 Ac i gychwyn y drafodaeth hon, yr wyf yn yn y bôn yn cael diagram sydd yn dod o 22 00:00:59,730 --> 00:01:04,269 gwerslyfr a ddefnyddir ar gyfer CS61, a oedd yn yn y bôn yn dangos y rhyngweithio 23 00:01:04,269 --> 00:01:08,510 rhwng proses cleient, fel eich gwe porwr neu fel eich cleient nod neu 24 00:01:08,510 --> 00:01:11,340 rhywbeth fel 'na, a weinydd y we. 25 00:01:11,340 --> 00:01:15,150 Felly, mae hyn math o edrych yn debyg i'r llun a welsoch ym darlith ar 26 00:01:15,150 --> 00:01:19,270 Dydd Mercher lle yn y bôn mae gennym rai proses cleient fel Google Chrome. 27 00:01:19,270 --> 00:01:22,980 >> Ac yna cam un yw'r cleient yn anfon cais. 28 00:01:22,980 --> 00:01:27,510 Felly, gall fod yn rhywbeth fel yn dda gadewch i ni ymweld, nid wyf yn gwybod, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Felly, rydym yn cyhoeddi y cais hwnnw. 30 00:01:29,320 --> 00:01:34,280 A yw unrhyw un yn cofio enw'r y protocol sy'n nodi sut mae hynny'n 31 00:01:34,280 --> 00:01:35,610 Dylai cais yn cael ei strwythuro? 32 00:01:35,610 --> 00:01:36,382 Yep. 33 00:01:36,382 --> 00:01:37,650 >> GYNULLEIDFA: [Anghlywadwy]. 34 00:01:37,650 --> 00:01:38,150 >> KEVIN Schmid: Yn union. 35 00:01:38,150 --> 00:01:40,100 Felly, mae fel HTTP, dde? 36 00:01:40,100 --> 00:01:44,720 Felly, yn y bôn y fanyleb ar gyfer sut y Dylai cais hwnnw mewn gwirionedd yn cael ei osod 37 00:01:44,720 --> 00:01:47,450 allan, oherwydd ar ddiwedd y dydd, bod cais yn cael ei gwirionedd dim ond hoffi 38 00:01:47,450 --> 00:01:50,240 llinyn y bôn yn dweud wyf am i hyn. 39 00:01:50,240 --> 00:01:53,580 A'r fanyleb am hynny yw HTTP. 40 00:01:53,580 --> 00:01:55,270 Felly dyna fel protocol. 41 00:01:55,270 --> 00:01:57,920 >> Felly, yna y gweinydd yn derbyn cais hwnnw. 42 00:01:57,920 --> 00:02:01,610 Felly rydych guys yn cael gweinydd gwe osod yn y peiriant CS50. 43 00:02:01,610 --> 00:02:02,460 Mae'n Apache. 44 00:02:02,460 --> 00:02:06,230 Ac mae hyn yn yr wythnos pan fyddwch yn gweithio ar broblem gosod saith, byddwch mewn gwirionedd yn cael eu gweithio 45 00:02:06,230 --> 00:02:08,160 gyda'r gweinydd gwe. 46 00:02:08,160 --> 00:02:12,380 Felly mae'r gweinydd yn derbyn y cais hwnnw, a yna mae'n rhaid i'r math o crafu ei 47 00:02:12,380 --> 00:02:15,090 pen a dweud fel yn dda yr hyn ddylwn i ei wneud gyda hyn? 48 00:02:15,090 --> 00:02:20,060 >> Felly, yn seiliedig ar yr hyn y mae'n penderfynu ei wneud, yna efallai y bydd rhaid i ni gysylltu ryw fath 49 00:02:20,060 --> 00:02:20,730 o adnoddau. 50 00:02:20,730 --> 00:02:23,700 A gallai adnodd hwnnw fod yn llawer o bethau gwahanol. 51 00:02:23,700 --> 00:02:26,810 Ar gyfer un, gallai fod yr un fel ffeil HTML statig. 52 00:02:26,810 --> 00:02:29,820 Felly, a yw'n bosibl efallai fel rhyw HTML sydd yn debyg i 53 00:02:29,820 --> 00:02:31,100 eich gwefan bersonol. 54 00:02:31,100 --> 00:02:35,360 Gallai fod yn ffeil statig fel delwedd neu fel ffilm sydd gennych. 55 00:02:35,360 --> 00:02:37,660 Gallai hyd yn oed i siarad i ryw fath o gronfa ddata 56 00:02:37,660 --> 00:02:39,530 fel cronfa ddata MySQL. 57 00:02:39,530 --> 00:02:43,910 Felly nid oes rhaid iddo bob amser i gyfathrebu gydag adnodd, ond yn 58 00:02:43,910 --> 00:02:45,700 rhai achosion, y gallai. 59 00:02:45,700 --> 00:02:47,800 >> Felly, yna beth mae'n mynd i wneud ar ôl hynny yw ei fod yn mynd i 60 00:02:47,800 --> 00:02:49,430 anfon yr ymateb yn ôl. 61 00:02:49,430 --> 00:02:53,130 Ac mae'r ymateb ar gyfer hyn yw a nodir hefyd gan HTTP. 62 00:02:53,130 --> 00:02:54,830 Felly, yna gall y cleient ei dderbyn. 63 00:02:54,830 --> 00:02:56,740 Gall rhwygo ar wahân ac yn brosesu. 64 00:02:56,740 --> 00:03:00,900 Ac yna byddwch yn cael tudalen ar y we fel Google neu CS50.net neu 65 00:03:00,900 --> 00:03:02,240 beth bynnag aeth chi wneud hynny. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> Felly, mae hyn yn rhyngweithio sylfaenol sy'n rydym yn mynd i fod yn delio â hwy. 68 00:03:06,080 --> 00:03:08,770 Ac rydym yn mynd 'n bert lawer i fod yn canolbwyntio ar y rhan hon o'r 69 00:03:08,770 --> 00:03:10,640 rhyngweithio, y gweinydd. 70 00:03:10,640 --> 00:03:10,990 OK. 71 00:03:10,990 --> 00:03:12,210 Cool. 72 00:03:12,210 --> 00:03:15,500 Unrhyw un gennych unrhyw gwestiynau hyd yn hyn? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Felly, fel y dywedasom, y gweinydd gwe yn derbyn y cais HTTP ac yna faterion hyn 75 00:03:22,430 --> 00:03:24,760 Ymateb HTTP. 76 00:03:24,760 --> 00:03:29,100 Ac fel yr ydym yn siarad am o'r blaen, mae'r Gweinydd gwe offer CS50 yw Apache. 77 00:03:29,100 --> 00:03:32,490 Felly, pan fyddwch yn guys gweithio ar P gosod saith, eich bod yn mynd i fod yn gweithio gyda'r 78 00:03:32,490 --> 00:03:34,120 Gweinydd gwe Apache. 79 00:03:34,120 --> 00:03:37,890 Ni fydd yn rhaid i chi weithio mewn gwirionedd gyda Apache yn uniongyrchol gormod. 80 00:03:37,890 --> 00:03:41,920 Rydych yn fath o ffurfweddu Apache ychydig pan fyddwch yn nodi y lluoedd rhithwir neu 81 00:03:41,920 --> 00:03:44,970 y v lluoedd, a byddwn yn mynd at hynny mewn ychydig. 82 00:03:44,970 --> 00:03:50,620 >> Ond yn y bôn, y gweinydd gwe Apache a sefydlwyd i weithio gyda'r math PHP 83 00:03:50,620 --> 00:03:51,730 y tu allan i'r bocs. 84 00:03:51,730 --> 00:03:56,170 Felly beth sy'n digwydd mewn gwirionedd yw pan fyddwch yn mynd i un o'ch gwefannau fel, dyweder, 85 00:03:56,170 --> 00:04:00,360 cynnal index.php slaes lleol neu rywbeth, yw eich porwr yn anfon y 86 00:04:00,360 --> 00:04:04,330 cais, ac yna Apache yn eistedd yno a ffigurau allan i'w wneud ag ef. 87 00:04:04,330 --> 00:04:08,840 A'r camau yw i weithredu y cod yn index.php a 88 00:04:08,840 --> 00:04:11,330 yna anfonwch i ffwrdd ôl. 89 00:04:11,330 --> 00:04:15,640 Felly, mae hynny. 90 00:04:15,640 --> 00:04:16,980 Felly, rydym yn fath o siarad am hyn. 91 00:04:16,980 --> 00:04:21,990 Felly, gallai fod dim ond yn gwasanaethu ffeil statig neu cynnal rhai cod PHP ac yna mater 92 00:04:21,990 --> 00:04:23,510 yr ymateb. 93 00:04:23,510 --> 00:04:27,670 >> Felly, yna gwestiwn cyffredin y gellir dod i fyny yn dda, sut yr ydym yn wir yn delio 94 00:04:27,670 --> 00:04:31,750 â chael defnyddwyr lluosog ar yr un pryd? 95 00:04:31,750 --> 00:04:36,930 Felly dychmygwch os ydych yn ysgrifennu ar y we gweinyddwr, os ydych wedi cael gweinydd gwe sy'n 96 00:04:36,930 --> 00:04:39,900 yr oeddech yn ceisio ysgrifennu mewn rhywbeth fel C neu rywbeth fel 'na, 97 00:04:39,900 --> 00:04:45,150 yn y bôn y gallwch chi feddwl am sut y mae Gallai fod yn rhyw fath o god sy'n 98 00:04:45,150 --> 00:04:49,330 fyddai'n derbyn y cais, ond wedyn mae'n rhaid iddo wneud yr holl waith hwn arno. 99 00:04:49,330 --> 00:04:53,060 Efallai y bydd yn rhaid i, er enghraifft, cysylltwch â'r cronfa ddata neu rywbeth fel 'na. 100 00:04:53,060 --> 00:04:53,300 Iawn? 101 00:04:53,300 --> 00:04:56,010 Ac yna byddai'n gwneud math hwnnw o brosesu ac yna 102 00:04:56,010 --> 00:04:57,060 anfonodd yr ymateb yn ôl. 103 00:04:57,060 --> 00:04:58,950 Felly dyna fel yr uchel trosolwg lefel. 104 00:04:58,950 --> 00:05:04,210 >> Ond nid yw'n amlwg ar unwaith sut yr ydych yn yn gallu gwneud hynny fel bod dau o bobl neu 105 00:05:04,210 --> 00:05:09,040 gallai hyd yn oed 1,000 o bobl yn gweithio gyda'ch weinydd y we ar yr un pryd. 106 00:05:09,040 --> 00:05:14,880 Felly yr ateb sy'n defnyddio Apache cael ei alw'n edafedd neu brosesau. 107 00:05:14,880 --> 00:05:16,770 Felly, efallai eich bod wedi clywed am termau hyn o'r blaen. 108 00:05:16,770 --> 00:05:22,190 Mae'n iawn os nad ydych, ond yn meddwl am edafedd neu brosesau fel ffyrdd i 109 00:05:22,190 --> 00:05:26,290 system weithredu neu raglen defnyddiwr neu rhywbeth fel 'na, neu weinydd y we 110 00:05:26,290 --> 00:05:28,810 i'r math o weithredu lluosog pethau ar unwaith. 111 00:05:28,810 --> 00:05:31,760 Felly, efallai eich bod wedi clywed y term fel edafedd o weithredu. 112 00:05:31,760 --> 00:05:34,140 Felly, mae'n fath o fel eich bod yn math o amldasgio. 113 00:05:34,140 --> 00:05:37,710 >> Ac os ydych chi wedi gweld ar y bocs eich gliniadur, neu rywbeth fel 'na, 114 00:05:37,710 --> 00:05:43,040 multicore, beth y gallwch ei wneud yw y gallwch rhedeg dau edafedd gwahanol ar wahanol 115 00:05:43,040 --> 00:05:46,700 rhannau o'r CPU fel y gallant mewn gwirionedd yn digwydd ar yr un pryd. 116 00:05:46,700 --> 00:05:48,100 Felly, mae hyn yn wirioneddol pwerus. 117 00:05:48,100 --> 00:05:52,270 Ac mae hyn yn fath o Apache yn ateb i'r broblem hon. 118 00:05:52,270 --> 00:05:57,900 >> Felly, a oes math o fel unrhyw faterion gyda'r dull hwn er bod? 119 00:05:57,900 --> 00:05:59,870 Felly, yr wyf yn dyfalu wyf yn fath o ysgrifennu nhw yno. 120 00:05:59,870 --> 00:06:03,440 Ond mae'r ddau ohonynt yn fath o defnyddio llawer o gof. 121 00:06:03,440 --> 00:06:07,490 Mae'n ddrud iawn i greu edefyn neu broses. 122 00:06:07,490 --> 00:06:11,750 >> A rhan o'r rhesymeg yw mai dim ond fel pan fyddwch yn cynnal rhaglen C 123 00:06:11,750 --> 00:06:15,090 fel eich prif ac yna bod galwadau swyddogaeth arall, sydd wedi 124 00:06:15,090 --> 00:06:16,520 rhyw fath o pentwr. 125 00:06:16,520 --> 00:06:19,910 Felly, edafedd hefyd yn gofyn am yn gyfan gwbl pentwr ar wahân sy'n 126 00:06:19,910 --> 00:06:21,220 Gall fod yn eithaf mawr. 127 00:06:21,220 --> 00:06:25,170 Ac os gallwch chi ddychmygu cael tunnell o ddefnyddwyr ar eich gwefan, byddai gennych 128 00:06:25,170 --> 00:06:26,280 llawer o wahanol edafedd. 129 00:06:26,280 --> 00:06:28,230 Mae hynny'n llawer o staciau rheoli a chynnal. 130 00:06:28,230 --> 00:06:31,280 Felly mae'n defnydd o gof mawr. 131 00:06:31,280 --> 00:06:35,650 >> Ac yna, hefyd, gadewch i ni ddweud dim ond rhaid i chi un CPU, neu gadewch i ni ddweud eich bod wedi 132 00:06:35,650 --> 00:06:38,460 mwy o edafedd nag sydd gennych multicores hynny. 133 00:06:38,460 --> 00:06:38,730 Iawn? 134 00:06:38,730 --> 00:06:43,280 Felly, gadewch i ni ddweud oedd gennych 10 edafedd ac mai dim ond pum CPUs. 135 00:06:43,280 --> 00:06:46,260 Fath o rhaid i chi wneud y peth hyn lle chi newid rhwng y presennol 136 00:06:46,260 --> 00:06:49,090 un sydd wedi rhedeg oherwydd eich Ni all redeg pob un o'r 10 ar unwaith. 137 00:06:49,090 --> 00:06:50,980 Ac mae hynny'n cael ei alw switsh cyd-destun. 138 00:06:50,980 --> 00:06:54,260 Ac mewn gwirionedd mae gan y term hwnnw ychydig o gwahanol gyd-destunau, ond gadewch i ni dim ond 139 00:06:54,260 --> 00:06:56,620 yn meddwl am y peth fel newid rhwng dau edafedd. 140 00:06:56,620 --> 00:06:59,730 Gall hynny fod yn eithaf drud oherwydd yn y bôn yr hyn mae'n rhaid i chi ei wneud yw i chi 141 00:06:59,730 --> 00:07:03,340 rhaid i roi'r gorau i hyn yr ydych yn ei wneud, achub y cyflwr y edau yn rhedeg, a 142 00:07:03,340 --> 00:07:05,440 yna newid i rywle arall. 143 00:07:05,440 --> 00:07:09,420 >> Felly, mae pawb yn fath o yn gweld y cymhelliant pam edafedd a 144 00:07:09,420 --> 00:07:12,030 Gallai prosesau fod ychydig yn swmpus? 145 00:07:12,030 --> 00:07:13,840 A oedd gennych gwestiwn? 146 00:07:13,840 --> 00:07:14,376 OK. 147 00:07:14,376 --> 00:07:15,070 Cool. 148 00:07:15,070 --> 00:07:18,090 Unrhyw un gennych unrhyw gwestiynau? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Felly, os byddwn yn cymryd cam yn ôl am eiliad, mae fath o debyg i 151 00:07:26,720 --> 00:07:30,350 arsylwi y gallwn wneud ynghylch llawer o geisiadau ar y we. 152 00:07:30,350 --> 00:07:34,810 Ac mae hynny'n iawn bod llawer ohonyn nhw Nid mewn gwirionedd yn gwneud hynny lawer yn ddefnyddiol 153 00:07:34,810 --> 00:07:37,140 gweithio tu mewn i edau. 154 00:07:37,140 --> 00:07:41,170 Felly, a oes unrhyw un ddechrau ar P gosod saith o gwbl? 155 00:07:41,170 --> 00:07:45,650 Felly, ydych chi eisiau i ddisgrifio efallai rhai o'r rhannau? 156 00:07:45,650 --> 00:07:47,850 Ydych chi wedi gweithio wrth fewngofnodi neu rywbeth fel 'na? 157 00:07:47,850 --> 00:07:49,330 >> GYNULLEIDFA: Na 158 00:07:49,330 --> 00:07:49,780 >> KEVIN Schmid: OK. 159 00:07:49,780 --> 00:07:50,150 Peidiwch byth â meddwl. 160 00:07:50,150 --> 00:07:50,900 Mae'n ddrwg gennym. 161 00:07:50,900 --> 00:07:55,790 Ond yn y bôn, yn y P set, rydych yn yn mynd i fod yn gwneud llawer o fath o 162 00:07:55,790 --> 00:07:59,760 ymholiadau i gronfa ddata i gael rhywfaint o gwybodaeth gan y gronfa ddata. 163 00:07:59,760 --> 00:08:03,330 A beth yw eich cod yn mynd i gael ei wneud, beth yw'r broses Apache neu 164 00:08:03,330 --> 00:08:06,030 bod edau Apache yn mynd i fod yn ei wneud er ei bod wedi cysylltu â'r 165 00:08:06,030 --> 00:08:08,990 gronfa ddata yn ei fod yn fath o yn mynd i fod yn eistedd yno ac mae'n mynd i fod yn 166 00:08:08,990 --> 00:08:12,130 aros am y gronfa ddata i ateb. 167 00:08:12,130 --> 00:08:16,290 >> Nawr nid allai fod yn swnio fel 'na yn fawr ymdrin oherwydd bod y gronfa ddata ar eich 168 00:08:16,290 --> 00:08:18,240 Offer CS50, dde? 169 00:08:18,240 --> 00:08:22,930 Ond mae rhyw fath o rwydwaith Latency yno oherwydd erbyn hyn ar y we 170 00:08:22,930 --> 00:08:26,830 gweinydd wedi cyhoeddi ei gais ei hun i y gronfa ddata i gyfathrebu â'r 171 00:08:26,830 --> 00:08:29,520 cronfa ddata, ac yna cael y gwybodaeth yn ôl. 172 00:08:29,520 --> 00:08:33,190 Felly, erbyn hyn mae'n debyg yn dda aros i mi, rwy'n mynd i fynd cael rhywbeth oddi wrth y 173 00:08:33,190 --> 00:08:35,770 cronfa ddata ac yna mae 'na llawer o aros digwydd. 174 00:08:35,770 --> 00:08:36,870 A yw hynny'n gwneud synnwyr? 175 00:08:36,870 --> 00:08:38,580 >> Ac ar gyfer rhai pethau nid yw mor ddrwg. 176 00:08:38,580 --> 00:08:41,950 Os 'i jyst wedi i, er enghraifft, cof mynediad, nid yw hynny'n hoffi 177 00:08:41,950 --> 00:08:44,100 ofnadwy latency I / O. 178 00:08:44,100 --> 00:08:47,110 A phan yr wyf yn dweud, I / O latency, yr hyn yr wyf i'n gyfeirio at yn debyg i unrhyw fath o fel 179 00:08:47,110 --> 00:08:48,290 allbwn mewnbwn. 180 00:08:48,290 --> 00:08:52,950 Ond i gael mynediad at ffeil ar y ddisg, fel os oeddwn i eisiau i wasanaethu HTML statig 181 00:08:52,950 --> 00:08:57,850 ffeilio a oedd ar fy nhudalen we neu rhywbeth fel 'na, yr wyf yn fath o yn rhaid i 182 00:08:57,850 --> 00:09:02,310 stopio am ychydig, yn darllen y ffeil i mewn o'r ddisg, ac yna yn 183 00:09:02,310 --> 00:09:04,400 broses honno Im 'yn aros. 184 00:09:04,400 --> 00:09:06,700 Dydw i ddim yn gwneud gwaith defnyddiol. 185 00:09:06,700 --> 00:09:11,270 >> Nid yw hyn yn wir am bopeth, ond mae'n yn gyffredin mewn ceisiadau fel P set 186 00:09:11,270 --> 00:09:13,960 saith ac mae llawer o geisiadau nad ydych chi'n 187 00:09:13,960 --> 00:09:15,440 mewn gwirionedd yn gwneud llawer o feddwl. 188 00:09:15,440 --> 00:09:19,090 A phan rwy'n dweud meddwl, yr wyf yn golygu fel gwaith cyfrifiadurol. 189 00:09:19,090 --> 00:09:23,270 Gallai gwaith Felly cyfrifiadurol fod yn rhywbeth fel, dyweder, yr oeddech am 190 00:09:23,270 --> 00:09:26,590 ysgrifennu gweinydd gwe mai dim ond gyfrifo y nifer Fibonacci nfed. 191 00:09:26,590 --> 00:09:29,300 Nid yw hynny'n swnio fel arbennig o weinydd y we hwyl. 192 00:09:29,300 --> 00:09:34,220 Fel Ni fyddwn yn disgwyl y safle hwnnw i fod yn y Facebook nesaf, ond dyna'r peth 193 00:09:34,220 --> 00:09:35,610 math o waith cyfrifiadurol. 194 00:09:35,610 --> 00:09:39,570 >> A allwch chi ddychmygu yn lle hynny gyda rhyw fath arall o ddiddorol 195 00:09:39,570 --> 00:09:43,070 gwaith cyfrifiadurol. 196 00:09:43,070 --> 00:09:46,050 Gadewch i ni ddweud eich bod yn ysgrifennu rhywbeth bod cyfrifo raddau 197 00:09:46,050 --> 00:09:49,170 gwahanu rhwng dau o bobl neu rywbeth fel 'na. 198 00:09:49,170 --> 00:09:51,860 Felly, sy'n gwneud cynnwys rhyw fath cyfrifo, dde? 199 00:09:51,860 --> 00:09:56,630 A hyd yn oed wedyn, i wneud eich bod yn dal i gael i wneud llawer o aros am efallai 200 00:09:56,630 --> 00:09:59,550 rhaid i chi holi cronfa ddata i edrych i fyny pwy sy'n ffrindiau gyda pwy neu 201 00:09:59,550 --> 00:10:00,600 rhywbeth fel 'na. 202 00:10:00,600 --> 00:10:03,510 Felly mae y math hwnnw o syniad gwaith cyfrifiadurol. 203 00:10:03,510 --> 00:10:05,260 A yw hynny'n gwneud synnwyr? 204 00:10:05,260 --> 00:10:08,258 A oes unrhyw un gennych unrhyw gwestiynau? 205 00:10:08,258 --> 00:10:11,960 >> O, a Amcana rhoi sgwrs gweinyddwyr yno oherwydd sgwrs gweinyddwyr yn fath o 206 00:10:11,960 --> 00:10:13,240 enghraifft dda arall o hyn. 207 00:10:13,240 --> 00:10:15,250 Nid yw gweinydd sgwrs oes gan i wneud llawer o feddwl. 208 00:10:15,250 --> 00:10:18,350 'I jyst yn gorfod aros i bobl anfon negeseuon ac yna pan 209 00:10:18,350 --> 00:10:19,800 ydynt, anfonwch hwy. 210 00:10:19,800 --> 00:10:21,050 OK? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> Felly, dim ond i ailadrodd eto, Apache a gweinyddwyr y we tebyg fel 'na fforc a 213 00:10:28,180 --> 00:10:31,470 llawer o edafedd a phrosesau sy'n gall fod yn fath o wastraffus. 214 00:10:31,470 --> 00:10:37,530 Felly, yr wyf yn dyfalu y cwestiwn a allai ddod o hynny yn oes angen i ni gael 215 00:10:37,530 --> 00:10:39,610 edafedd a phrosesau lluosog? 216 00:10:39,610 --> 00:10:41,890 Beth os ydym yn unig cael un? 217 00:10:41,890 --> 00:10:45,710 >> Felly, gadewch i fath o beintio darlun o'r hyn y byddai hyn yn edrych fel. 218 00:10:45,710 --> 00:10:47,810 Felly, gadewch i ni yn defnyddio dim ond un edau. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 Felly dychmygwch hyn gydag un edau. 221 00:10:52,790 --> 00:10:56,600 >> Gadewch i ni dybio nad ydym yn ei wneud mewn gwirionedd bod llawer yn ddefnyddiol - a phan rwy'n dweud 222 00:10:56,600 --> 00:10:59,450 ddefnyddiol, yr wyf yn golygu gwaith cyfrifiadurol - 223 00:10:59,450 --> 00:11:01,130 mewn edafedd lluosog hynny o'r blaen. 224 00:11:01,130 --> 00:11:04,180 Felly, gadewch i fath o atgyfnerthu popeth i mewn i un edau. 225 00:11:04,180 --> 00:11:07,780 Felly beth os oedd gennym un edau math hwnnw o ychydig yn mynd o gwmpas yn y ddolen a 226 00:11:07,780 --> 00:11:10,880 gyson gwiriadau gwneud rhywbeth newydd yn digwydd. 227 00:11:10,880 --> 00:11:15,130 Felly, er enghraifft, rhywbeth yn digwydd newydd Gallai olygu Cefais rhywbeth yn ôl o 228 00:11:15,130 --> 00:11:19,310 y gronfa ddata, neu rywun a anfonwyd mi cais HTTP newydd. 229 00:11:19,310 --> 00:11:22,290 Felly dyna'r math o ddigwyddiadau hynny'n digwydd, dde? 230 00:11:22,290 --> 00:11:26,130 >> Ac yna beth allaf ei wneud pan fydd y rhai newydd i bethau ddigwydd yn yr un edau 231 00:11:26,130 --> 00:11:30,120 i weithredu, mae hyn yn un edau o gweithredu, gallaf alw rhywfaint cod sy'n 232 00:11:30,120 --> 00:11:32,410 Byddai trin y peth penodol. 233 00:11:32,410 --> 00:11:36,640 Felly, er enghraifft, os wyf yn cael rhywbeth yn ôl o'r gronfa ddata, gallwn redeg fy 234 00:11:36,640 --> 00:11:40,960 rhan fach cyfrifiadol ohoni sydd mewn gwirionedd dim ond yn paratoi y peth i 235 00:11:40,960 --> 00:11:42,620 hanfon yn ôl i'r defnyddiwr. 236 00:11:42,620 --> 00:11:46,710 Felly, mae y math hwnnw o gwneud synnwyr? 237 00:11:46,710 --> 00:11:49,940 >> Ond beth yw'r gwirionedd goblygiadau hyn? 238 00:11:49,940 --> 00:11:50,660 Iawn? 239 00:11:50,660 --> 00:11:53,730 Oherwydd ein bod wedi ysgrifennu llawer o god hynny - 240 00:11:53,730 --> 00:11:58,330 a Im 'jyst yn mynd i neidio ymlaen yn y sleidiau os yw hynny'n iawn. 241 00:11:58,330 --> 00:12:00,930 Felly, os nad oes gwahaniaeth gennych, Im 'jyst mynd i gymryd cam yn ôl. 242 00:12:00,930 --> 00:12:03,410 Felly, y math hwn o beth yn a elwir yn ddolen digwyddiad. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 Ac mae'n fath o sylfaenol syniad y tu ôl Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Felly beth Node.js sydd mewn gwirionedd yn ei wneud fel y we gweinydd yn mae yna edefyn sengl 246 00:12:11,240 --> 00:12:14,850 bod yn y bôn yn mynd o gwmpas mewn cylch fel tra bod un math o dan 247 00:12:14,850 --> 00:12:18,510 y cwfl Node.js sy'n gyson gwirio, wnaethon ni yn derbyn pethau newydd? 248 00:12:18,510 --> 00:12:22,720 Ac yna bydd yn rhedeg trin eich bod yn gosod i fyny. 249 00:12:22,720 --> 00:12:26,720 Ond yn gwestiwn da i ofyn yw, sut y gallwn wneud i hyn ddigwydd 250 00:12:26,720 --> 00:12:28,090 gyda phethau sy'n bodoli eisoes? 251 00:12:28,090 --> 00:12:32,440 >> Felly, yr wyf yn rhoi llinell o god C yma y yn y bôn yn edrych fel ei fod yn agor 252 00:12:32,440 --> 00:12:33,060 ffeil, dde? 253 00:12:33,060 --> 00:12:36,090 Yr wyf yn Mae hi jyst wedi dod allan gyda albwm. 254 00:12:36,090 --> 00:12:39,600 Felly, roedd rhaid i mi agor ei ffeil newydd. 255 00:12:39,600 --> 00:12:43,810 Felly, y ffordd y mae ein cod C ar gyfer gweithredu - 256 00:12:43,810 --> 00:12:47,890 ac yr wyf yn dyfalu y rheswm Dewisais ffeiliau yn oherwydd mae hyn yn fath o graddau 257 00:12:47,890 --> 00:12:52,000 o'r gwaith I / O yr ydym wedi ei wneud yn C yn ymdeimlad fod yna allbwn mewnbwn. 258 00:12:52,000 --> 00:12:55,070 Felly, rydym yn galw cod hwn sy'n mae hyn yn f agored. 259 00:12:55,070 --> 00:12:59,370 Ac yna ar y llinell nesaf ein rhaglen, gallwn yn awr yn gweithio gyda f. 260 00:12:59,370 --> 00:13:02,710 >> Felly, byddai hyn yn enghraifft o rywbeth dyna fel cydamserol neu 261 00:13:02,710 --> 00:13:06,850 blocio oherwydd ar y llinell gyntaf yno rydym yn aros nes i ni 262 00:13:06,850 --> 00:13:08,110 yn cael y ffeil agored. 263 00:13:08,110 --> 00:13:12,260 Felly, ar yr ail linell, rydym yn gwybod ein bod yn gallu gweithio gyda f, ond mae hyn yn golygu bod 264 00:13:12,260 --> 00:13:16,240 na ellir ail linell yn rhedeg mewn gwirionedd nes bod y llinell gyntaf yn cael ei wneud. 265 00:13:16,240 --> 00:13:17,760 A yw hynny'n gwneud synnwyr? 266 00:13:17,760 --> 00:13:20,890 >> Felly, byddai hyn yn ddrwg i roi mewn trin digwyddiad. 267 00:13:20,890 --> 00:13:23,920 A'r rheswm am hynny yw bod y math hwn o aros, dde? 268 00:13:23,920 --> 00:13:26,500 Felly, byddai hyn yn mynd yn ôl â ni yn ôl at yr un peth. 269 00:13:26,500 --> 00:13:29,470 Ac yn awr ni fyddem hyd yn oed y budd edafedd lluosog neu 270 00:13:29,470 --> 00:13:32,390 prosesau oherwydd ein bod yn cael un edau yn Node.js. 271 00:13:32,390 --> 00:13:35,496 A yw hynny'n gwneud synnwyr i bawb? 272 00:13:35,496 --> 00:13:35,990 >> GYNULLEIDFA: Aros. 273 00:13:35,990 --> 00:13:36,980 Felly beth yw'r newydd? 274 00:13:36,980 --> 00:13:37,840 >> KEVIN Schmid: O, felly ie. 275 00:13:37,840 --> 00:13:39,560 Felly, yr wyf i'n mynd i gyrraedd y cyfnewid. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Felly beth os oedd gennym rywbeth oedd yn edrych fel hyn? 278 00:13:42,960 --> 00:13:45,730 Felly beth os nawr rwy'n ei olygu f agor ychydig? 279 00:13:45,730 --> 00:13:48,370 Felly, yr wyf i'n pasio yn yr un dwy ddadl fel o'r blaen. 280 00:13:48,370 --> 00:13:52,610 Rwy'n dal i wrth fy modd y gân newydd bod hi a ddaeth allan gyda. 281 00:13:52,610 --> 00:13:57,260 Ond dw i'n pasio trydydd peth sy'n yn amrywio o'r enw cod. 282 00:13:57,260 --> 00:14:02,280 >> Ond beth yw cod mewn gwirionedd yn y cyd-destun hwn? 283 00:14:02,280 --> 00:14:05,360 A yw'n fel newidyn C rheolaidd? 284 00:14:05,360 --> 00:14:06,740 Mae'n swyddogaeth, dde? 285 00:14:06,740 --> 00:14:09,450 A allai fod yn ychydig yn rhyfedd oherwydd Rwy'n mewn gwirionedd yn hoffi hyn basio 286 00:14:09,450 --> 00:14:12,320 gweithredu mewn swyddogaeth arall. 287 00:14:12,320 --> 00:14:14,400 >> Felly, un neu ddau o bethau i'w nodi ynglŷn â hyn. 288 00:14:14,400 --> 00:14:17,145 Un, dydw i ddim yn galw mewn gwirionedd y swyddogaeth cod. 289 00:14:17,145 --> 00:14:20,650 Felly, nad ydych yn gweld cod gyda'r chwith paren, paren dde. 290 00:14:20,650 --> 00:14:23,010 Im 'jyst yn pasio mewn cod. 291 00:14:23,010 --> 00:14:26,990 Ac yn C, yr hyn y byddai hyn yn ei wneud mewn gwirionedd yn rhoi pwyntydd i mi y gwir 292 00:14:26,990 --> 00:14:29,740 cod, ac yna gallai hyn ei redeg. 293 00:14:29,740 --> 00:14:33,350 Ond dim ond meddwl am y peth fel eich bod yn gan fynd heibio i'r cod i redeg pan 294 00:14:33,350 --> 00:14:35,150 y ffeil yn cael ei agor. 295 00:14:35,150 --> 00:14:41,430 >> Ond beth mae hyn yn ei olygu yw bod bellach yn y gweddill fy rhaglen a allai wneud 296 00:14:41,430 --> 00:14:47,050 pethau eraill, gall barhau i wneud eraill pethau er ein bod, nid mewn gwirionedd yn aros, ond 297 00:14:47,050 --> 00:14:50,890 dim ond cael yng nghefn ein pennau sy'n pan fydd ar agor, yn rhedeg y ffeil sy'n 298 00:14:50,890 --> 00:14:52,130 cod ar y brig. 299 00:14:52,130 --> 00:14:53,390 A yw hynny'n gwneud synnwyr? 300 00:14:53,390 --> 00:14:58,060 >> Ac yn awr y syniad y tu ôl Node.js yw y y cod yn y pethau do gyda f 301 00:14:58,060 --> 00:15:04,590 Dylai rhan fod yn eithaf fyr ac yn syml ac yn syml ac nid mewn gwirionedd yn 302 00:15:04,590 --> 00:15:06,160 computationally dwys iawn. 303 00:15:06,160 --> 00:15:09,390 Efallai y bydd yn rhaid i agor ffeil arall, ond dylai hefyd fod yn eithaf cyflym 304 00:15:09,390 --> 00:15:14,710 oherwydd dylai fod dim ond dweud gwneud f arall agor ac yna galw y cod eraill. 305 00:15:14,710 --> 00:15:19,100 >> Felly, dim ond i fod yn gwbl glir, mae'r f agor sy'n gwneud y gân Katy Perry newydd 306 00:15:19,100 --> 00:15:23,060 mp3 ei wneud, mae hynny'n mynd i 'n bert llawer yn dychwelyd ar unwaith. 307 00:15:23,060 --> 00:15:27,820 Ac yna gallwn dim ond parhau i wneud pethau eraill gan fod yr holl sydd bellach yn f 308 00:15:27,820 --> 00:15:33,410 alwad agored yn ei wneud yw dweud wrth y bôn y cod agored f sylfaenol agor y ffeil 309 00:15:33,410 --> 00:15:36,020 a phan fyddwch chi'n ei wneud agor y ffeil neu pan fyddwch yn ei gael yn ôl, 310 00:15:36,020 --> 00:15:37,480 yna rhedeg y cod hwnnw. 311 00:15:37,480 --> 00:15:39,540 Ond nid yw'n mewn gwirionedd yn rhedeg y cod hwnnw. 312 00:15:39,540 --> 00:15:41,815 A oedd gennych gwestiwn? 313 00:15:41,815 --> 00:15:46,180 >> GYNULLEIDFA: Rydych yn ymddangos i awgrymu rhai adegau sy'n ychwanegu computationally 314 00:15:46,180 --> 00:15:50,545 cod dwys fath o dorri'r [Anghlywadwy] system gyrru. 315 00:15:50,545 --> 00:15:51,795 [Anghlywadwy]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> KEVIN Schmid: Mae hynny'n gwestiwn mawr. 318 00:15:55,290 --> 00:15:59,280 Felly, yr wyf mewn gwirionedd yn cael enghraifft o sut gallech integreiddio computationally 319 00:15:59,280 --> 00:16:01,090 cod dwys mewn ychydig. 320 00:16:01,090 --> 00:16:03,620 Felly, pan gawn at yr enghreifftiau cod, Byddaf yn sicr o dynnu bod un. 321 00:16:03,620 --> 00:16:04,700 A yw hynny'n iawn? 322 00:16:04,700 --> 00:16:05,950 Diolch yn fawr. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Beth oedd eich enw? 325 00:16:08,750 --> 00:16:10,620 >> GYNULLEIDFA: Aaron. 326 00:16:10,620 --> 00:16:14,830 >> KEVIN Schmid: Aaron yn dod i fyny yn iawn pwynt da, sef bod os ydw i wedi 327 00:16:14,830 --> 00:16:18,560 rhyw cod computationally dwys mewn y gwneud pethau gyda f ran, gweddill 328 00:16:18,560 --> 00:16:22,880 Ni all fy rhaglen yn rhedeg ac ni all wrando ar gyfer ceisiadau neu unrhyw beth newydd nes bydd yr holl 329 00:16:22,880 --> 00:16:24,270 bod pethau wedi gorffen. 330 00:16:24,270 --> 00:16:27,390 Felly, os ydw i'n ysgrifennu cod Nôd yn gyffredinol oni bai ein bod yn gwneud rhywbeth fel fy mod i'n mynd 331 00:16:27,390 --> 00:16:33,060 i awgrymu yn ddiweddarach pan fyddwn yn edrych ar y enghreifftiau cod, rhaid i mi fod yn siŵr bod 332 00:16:33,060 --> 00:16:36,060 Nid yw fy cod yn clymu i fyny hwn dolen digwyddiad. 333 00:16:36,060 --> 00:16:38,120 A yw hynny'n gwneud synnwyr? 334 00:16:38,120 --> 00:16:38,350 OK. 335 00:16:38,350 --> 00:16:40,040 Cool. 336 00:16:40,040 --> 00:16:47,090 >> Felly Node.js yn cynnig fframwaith hwn y gallwch adeiladu y digwyddiad ei yrru 337 00:16:47,090 --> 00:16:48,210 gweinyddwyr gyda. 338 00:16:48,210 --> 00:16:53,460 Felly mae wedi mathau hyn o asynchronous nad ydynt yn blocio I / O lyfrgelloedd, tra 339 00:16:53,460 --> 00:16:56,800 llyfrgelloedd C safonol yr ydym wedi bod yn gweithio gyda, fel os ydych yn unig 340 00:16:56,800 --> 00:16:59,500 yn eu defnyddio yn yr un modd ag y mae gennym bod yn eu defnyddio gyda'r f agor ac yn 341 00:16:59,500 --> 00:17:03,000 pethau, y rhai yn cael eu blocio oherwydd rhaid i chi aros am mewn gwirionedd yn 342 00:17:03,000 --> 00:17:04,470 y ffeil i agor. 343 00:17:04,470 --> 00:17:09,290 >> Ond Node.js rhoi i chi hynny ac mae'n yn y bôn yn clymu i mewn i Google V8 344 00:17:09,290 --> 00:17:14,030 JavaScript peiriant sef y rheswm bod Chrome mor gyflym yn prosesu 345 00:17:14,030 --> 00:17:17,040 JavaScript oherwydd ei fod yn mae gan y peiriant V8. 346 00:17:17,040 --> 00:17:22,460 Felly, yr wyf yn gwybod bod yn swnio fel un o'r rhai WWDC cynadleddau datblygwr peth 347 00:17:22,460 --> 00:17:25,390 lle maent yn dim ond taflu criw o'r pethau rhif llythyren ar gyfer proseswyr 348 00:17:25,390 --> 00:17:26,910 ac yn dweud hyn yn mor oer. 349 00:17:26,910 --> 00:17:34,200 Ond mae'n oer eu bod wedi gwneud hyn oherwydd JavaScript - 350 00:17:34,200 --> 00:17:37,010 neu efallai os nad ydych yn gyfarwydd â JavaScript eto oherwydd nad ydym wedi cael 351 00:17:37,010 --> 00:17:38,180 y darlithoedd arno - 352 00:17:38,180 --> 00:17:40,770 ond JavaScript yn dehongli iaith. 353 00:17:40,770 --> 00:17:41,970 >> Ac mae hyn yn bwynt pwysig hefyd. 354 00:17:41,970 --> 00:17:45,790 Felly, mae'n bwysig ein gwefan gweinyddwyr fod yn gyflym, dde? 355 00:17:45,790 --> 00:17:49,970 Ac os ydym yn unig yn rhedeg JavaScript cod sy'n ei ddehongli gyda dim ond 356 00:17:49,970 --> 00:17:52,130 unrhyw hen cyfieithydd gallai fod yn araf. 357 00:17:52,130 --> 00:17:55,980 Fudd-daliadau fel Node o gael y cyfieithydd V8 super gyflym. 358 00:17:55,980 --> 00:17:59,580 Ac nid wyf yn gwybod os ydynt yn enwi ei oherwydd bod y slap V8 yn y talcen 359 00:17:59,580 --> 00:18:01,110 peth, ond OK. 360 00:18:01,110 --> 00:18:07,070 >> Felly, yr wyf wedi paratoi rhai enghreifftiau yn URL hwn. 361 00:18:07,070 --> 00:18:10,490 Ar ôl y seminar, rwy'n fath o yn mynd i siarad am sut y gallwch gael set Nôd 362 00:18:10,490 --> 00:18:13,570 i fyny, ond am y tro, Fi jyst fath o eisiau i gerdded trwy rai enghreifftiau cod. 363 00:18:13,570 --> 00:18:17,250 Felly, os ydych am i ddilyn ar hyd, yr holl cod ffynhonnell ar gael yno. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> Felly, byddaf yn gadael URL hwn i fyny am ychydig. 366 00:18:22,280 --> 00:18:24,440 Ac yna Im 'jyst yn mynd i newid i mewn i'r derfynell. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 A yw pawb yn dda gyda URL hwn? 369 00:18:34,400 --> 00:18:37,990 Felly, yr wyf i'n mynd i newid dros i fy terfynell yma. 370 00:18:37,990 --> 00:18:42,030 >> Felly dyma y cod sy'n Mae gen i ar gyfer heddiw. 371 00:18:42,030 --> 00:18:43,960 Pam na wnewch rydym yn dechrau gyda simpler.js ffeilio? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Y peth arall yw bod hyn i gyd cod yn mynd i gael ei ysgrifennu yn 374 00:18:52,100 --> 00:18:56,660 JavaScript a allai chi neu Efallai nad ydynt yn gyfarwydd â hwy. 375 00:18:56,660 --> 00:19:00,170 Amcana gwpl o bethau yw bod llawer o god JavaScript yw'r math o 376 00:19:00,170 --> 00:19:04,000 cystrawen a strwythur yn debyg iawn i C, er mwyn i chi fath o ei godi fel 377 00:19:04,000 --> 00:19:05,020 chi fynd ymlaen. 378 00:19:05,020 --> 00:19:08,750 Rwyf wedi ceisio i ysgrifennu llawer o'r cod cychwyn ar gyfer hyn mewn ffordd sy'n 379 00:19:08,750 --> 00:19:11,230 yn debyg i C fel ei bod yn ychydig yn fwy darllenadwy. 380 00:19:11,230 --> 00:19:15,980 Ond wrth i ni symud ymlaen, byddaf yn arddangos rhai o'r i'r ychwanegol 381 00:19:15,980 --> 00:19:18,980 nodweddion JavaScript bod yn fath o oer. 382 00:19:18,980 --> 00:19:21,510 >> Ond gadewch i ni edrych ar y rhaglen sampl. 383 00:19:21,510 --> 00:19:24,820 Amcana popeth wedi torri i ffwrdd yno. 384 00:19:24,820 --> 00:19:28,500 Im 'jyst yn mynd i atgyweiria bod go iawn gyflym os yw hynny'n iawn ai peidio. 385 00:19:28,500 --> 00:19:31,400 Nid wyf yn gwybod beth y mae hyn yn mynd i'w wneud. 386 00:19:31,400 --> 00:19:34,660 A yw hynny'n ychydig yn well? 387 00:19:34,660 --> 00:19:36,510 Allwch chi weld y var a stwff? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Felly, y llinell gyntaf yn debyg i'r JavaScript fersiwn newidyn 390 00:19:44,120 --> 00:19:44,800 datganiad. 391 00:19:44,800 --> 00:19:49,870 Felly, dim ond er mwyn tynnu sylw at yr hyn y byddai hyn yn edrych fel yn C. Felly, mae hyn yn union fel 392 00:19:49,870 --> 00:19:52,620 i mi ddweud mynegai yw tri neu rywbeth fel 'na. 393 00:19:52,620 --> 00:19:55,740 Felly doeddwn i ddim yn nodi'r math. 394 00:19:55,740 --> 00:20:00,780 JavaScript yn cael math, ond mae'n teipio ddynamig iawn o ran eu natur, felly 395 00:20:00,780 --> 00:20:02,580 nid oedd yn darparu unrhyw fath o fath arno. 396 00:20:02,580 --> 00:20:03,670 Felly, 'i jyst wedi var. 397 00:20:03,670 --> 00:20:05,320 Dyna fel amrywiol. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> A dwi'n galw hwn HTTP amrywiol. 400 00:20:08,340 --> 00:20:12,480 Ac ar fy ochr dde, yr wyf yn cael y mynegiant yr wyf am ei roi mewn HTTP. 401 00:20:12,480 --> 00:20:14,960 Ac mae hyn yn dweud angen HTTP. 402 00:20:14,960 --> 00:20:18,500 Felly, mae hyn yn fath o debyg i'w cynnwys. 403 00:20:18,500 --> 00:20:22,940 Mae'n ychydig yn fwy fel pwerus na cynnwys yn yr ystyr sy'n cynnwys 404 00:20:22,940 --> 00:20:26,100 Byddai jyst adysgrifia a bastio 'r pennawd ffeil ar gyfer y prototeipiau swyddogaeth neu 405 00:20:26,100 --> 00:20:27,930 beth bynnag gyda'r diffiniadau math. 406 00:20:27,930 --> 00:20:30,590 Ond mae angen yn mynd mewn gwirionedd i fynd â ni i'r cod. 407 00:20:30,590 --> 00:20:33,280 >> Felly, gallwch chi feddwl am y peth fel mewnforio rhai cod. 408 00:20:33,280 --> 00:20:37,960 Felly, rhywle yn y modiwl Node.js system neu beth bynnag, mae ganddynt hyn i gyd 409 00:20:37,960 --> 00:20:40,790 Cod gweinydd HTTP felly Im 'jyst ei lawrlwytho ar gyfer fy hun 410 00:20:40,790 --> 00:20:43,130 defnydd personol yn y rhaglen hon. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> Felly, yna mae gen swyddogaeth hon fy mod wedi ysgrifennu. 413 00:20:46,930 --> 00:20:50,330 Ac yn sylwi nad oedd rhaid i mi nodi y math dychwelyd neu math y 414 00:20:50,330 --> 00:20:51,140 dadleuon eto. 415 00:20:51,140 --> 00:20:54,440 Felly, math o deipio yn rhydd yn y math hwnnw o synnwyr. 416 00:20:54,440 --> 00:20:57,290 Mae dau dadleuon y mae'n ei gymryd i mewn, y cais ac ymateb. 417 00:20:57,290 --> 00:21:02,080 Felly dyna gysyniadol fath o fel cyfarwydd o'r darlun a gawsom 418 00:21:02,080 --> 00:21:05,280 ar y sgrin blaen gan rydym yn cael y cais hwn yr ydym yn 419 00:21:05,280 --> 00:21:06,410 gael gan y defnyddiwr. 420 00:21:06,410 --> 00:21:09,170 Ac yna mae gennym ymateb a gallwn ysgrifennu pethau i. 421 00:21:09,170 --> 00:21:15,060 >> Felly, y llinell gyntaf o hyn yn res.writeHead 200 a yna mae hyn yn 422 00:21:15,060 --> 00:21:17,070 plaen testun math o gynnwys. 423 00:21:17,070 --> 00:21:19,300 Felly, gadewch i ni darnau hyn ar wahân ychydig. 424 00:21:19,300 --> 00:21:22,340 Felly, gadewch i ni dim ond yn canolbwyntio ar res.write am ychydig. 425 00:21:22,340 --> 00:21:28,420 Felly ysgrifennu yn y bôn, ac ysgrifennu pen, yn unig ffyrdd o fath o ysgrifennu 426 00:21:28,420 --> 00:21:29,960 bethau at yr ymateb. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 Felly ysgrifennu pen, os oes unrhyw un yn cofio o'r ddarlith HTTP, a ydych yn guys 429 00:21:36,230 --> 00:21:39,940 cofio penawdau yn y ben y peth HTTP? 430 00:21:39,940 --> 00:21:43,580 Felly pam nad ydw i'n jyst demo penawdau go gyflym. 431 00:21:43,580 --> 00:21:44,640 A fyddai hynny'n ddefnyddiol? 432 00:21:44,640 --> 00:21:45,500 Neu a ddylem yn unig fath o - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 Cadarn. 435 00:21:46,740 --> 00:21:52,340 >> Felly, pan fydd eich porwr yn mynd i google.com neu rywbeth fel 'na, 436 00:21:52,340 --> 00:21:54,250 mae mewn gwirionedd ychydig yn fwy - 437 00:21:54,250 --> 00:21:55,380 mae hyn yn debyg i gyfrinach - 438 00:21:55,380 --> 00:21:58,340 mae fel ychydig mwy o wybodaeth sy'n dod drwy'r bibell na dim ond 439 00:21:58,340 --> 00:22:00,180 chwilio bach a phopeth. 440 00:22:00,180 --> 00:22:03,550 Felly, er mwyn dangos i chi hyn, dw i'n mynd i ddefnyddio rhaglen o'r enw Curl. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 Felly, mae hyn yn rhywbeth y gallwch redeg ar eich llinell gorchymyn Mac OSX neu yn y 443 00:22:08,020 --> 00:22:09,830 offer neu beth bynnag. 444 00:22:09,830 --> 00:22:17,050 Ac felly os wyf yn Crychu HTTP google.com, Dw i'n mynd i weld y HTML. 445 00:22:17,050 --> 00:22:21,230 Ac mae hyn yn, a bod yn deg, dim ond y HTML y math hwnnw o yn dweud wrthych i 446 00:22:21,230 --> 00:22:24,695 ailgyfeirio i www os nad yw eich porwr yn trin yn awtomatig 447 00:22:24,695 --> 00:22:27,110 ailgyfeiriad. 448 00:22:27,110 --> 00:22:33,390 >> Felly, mae hyn yn unig HTML, ond rwy'n mynd i ychwanegu at Crychu cysylltnod hwn Tynnaf eich sylw. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 Ac mae hyn yn mynd i ddangos 'm' r penawdau. 451 00:22:35,600 --> 00:22:40,640 Felly, mae hyn hefyd yn wybodaeth a ddaw thrwy pan fyddaf yn cael yr ymateb hwn. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> Felly, ar y brig, byddwch yn gweld hyn HTTP 301 symud yn barhaol. 454 00:22:45,320 --> 00:22:49,470 Ac mae hyn yn fath o bwysig oherwydd mae hyn yn cyfeirio at y cod statws. 455 00:22:49,470 --> 00:22:53,750 Felly mae'r 301 yma yw'r cod statws, sydd yn y bôn yn unig yn gyfanrif 456 00:22:53,750 --> 00:22:57,750 sy'n dweud wrth y porwr neu bwy bynnag sy'n darllen hwn, os ydych yn esgus bod 457 00:22:57,750 --> 00:23:01,460 ydych yn porwr ac rydych yn gweld hyn, yn y bôn nawr os ydych yn edrych ar 458 00:23:01,460 --> 00:23:04,960 hynny a byddwch yn gweld 301, byddwch yn gwybod fy mod wedi i wneud rhywbeth arbennig yn seiliedig ar 459 00:23:04,960 --> 00:23:08,810 301, neu rywbeth a ddigwyddodd arbennig yn seiliedig ar y 301. 460 00:23:08,810 --> 00:23:12,640 Felly, mae'n dweud symud yn barhaol. 461 00:23:12,640 --> 00:23:17,700 >> Ac yna, yn y bôn, yr ydym wedi criw o barau gwerth allweddol. 462 00:23:17,700 --> 00:23:22,100 Felly, rydym yn cael y lleoliad yn www.google.com. 463 00:23:22,100 --> 00:23:25,190 Ac yna fath o hyn i gyd bethau eraill, ond yn y bôn, yr hyn y mae'r lleoliad yn 464 00:23:25,190 --> 00:23:29,662 ddywediad yw'r lleoliad newydd ar www.google.com. 465 00:23:29,662 --> 00:23:33,800 Felly nawr os ydych yn mynd i google.com, byddwch yn math o weld y porwr math o Blink 466 00:23:33,800 --> 00:23:38,770 ar gyfer ail ac yna ailgyfeirio i chi i'r dde yn ôl i www.google.com. 467 00:23:38,770 --> 00:23:41,840 Felly, gall yr ymatebion gynnwys penawdau hyn. 468 00:23:41,840 --> 00:23:43,330 >> Ac ychydig o bethau i nodi. 469 00:23:43,330 --> 00:23:46,890 Felly, gadewch i ni ddweud ein bod mewn gwirionedd yn llwyddiannus mewn ymweld â dudalen we. 470 00:23:46,890 --> 00:23:49,040 Felly, gadewch i mi fynd i - 471 00:23:49,040 --> 00:23:51,080 beth yw gwefan dda? 472 00:23:51,080 --> 00:23:53,285 Rwy'n drwg yn meddwl da gwefannau ar y fan a'r lle. 473 00:23:53,285 --> 00:23:53,640 >> GYNULLEIDFA: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> KEVIN Schmid: OK. 475 00:23:54,160 --> 00:23:56,040 Gadewch i ni wneud Wikipedia. 476 00:23:56,040 --> 00:23:58,680 Felly dyma Roeddwn yn symud. 477 00:23:58,680 --> 00:23:59,240 Oh aros. 478 00:23:59,240 --> 00:24:00,160 A oedd i? 479 00:24:00,160 --> 00:24:00,890 Ie, yr wyf yn. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Felly, yr wyf yn rhaid i wneud www. 482 00:24:03,005 --> 00:24:06,006 Felly, yr wyf i'n mynd i wneud www. 483 00:24:06,006 --> 00:24:09,680 Ac fel y gwelwch, dyma holl HTML y byddai'r porwr prosesu 484 00:24:09,680 --> 00:24:10,910 ar gyfer Wicipedia. 485 00:24:10,910 --> 00:24:14,055 >> Ond os wyf yn cadw sgrolio i fyny yma, beth 'n annhymerus' weld ar y brig - 486 00:24:14,055 --> 00:24:17,800 wow, mae llawer o HTML ar Wicipedia - 487 00:24:17,800 --> 00:24:22,550 ond beth y gallaf ei weld ar y brig yma yw y cod statws 200 yn hytrach na'r 488 00:24:22,550 --> 00:24:24,570 301 a welais yn gynharach. 489 00:24:24,570 --> 00:24:27,100 Ac yn sylwi bod ganddo 'n glws OK gyfeillgar drws nesaf iddo. 490 00:24:27,100 --> 00:24:29,470 Felly, mae hyn yn debyg i'r cod statws da. 491 00:24:29,470 --> 00:24:31,160 >> A yw hynny'n 200 o nifer yn edrych yn gyfarwydd? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Ie oherwydd pan wnes simpler.js, Ysgrifennais 200 yno. 494 00:24:39,880 --> 00:24:43,290 Felly dyna yn y bôn yn dweud yn dweud wrth y porwr neu bwy bynnag yn ceisio mynd i'r 495 00:24:43,290 --> 00:24:45,440 hyn eu bod yn llwyddiannus. 496 00:24:45,440 --> 00:24:49,040 Neu y math hwnnw o ni fel yn llwyddiannus hefyd. 497 00:24:49,040 --> 00:24:54,320 >> Ac mae y math hwn o gystrawen arbennig yn Javascript i ddatgan 498 00:24:54,320 --> 00:24:59,870 map o allweddi hyn fel math o gynnwys a'r gwerthoedd hyn fel plaen testun. 499 00:24:59,870 --> 00:25:03,780 Felly, os ydych yn edrych ar yr ymateb ein bod yn got yn ôl o Wicipedia o'r blaen, - 500 00:25:03,780 --> 00:25:06,200 Rydw i'n mynd i geisio sgrolio i fyny ychydig yn gyflymach - 501 00:25:06,200 --> 00:25:09,900 gennych allweddi hyn fel gweinydd a'r gwerthoedd hyn Apache. 502 00:25:09,900 --> 00:25:12,120 Felly, rydych wedi cael allweddi a gwerthoedd. 503 00:25:12,120 --> 00:25:15,930 A allwch chi nodi hyn yn Nôd beth i'w hanfon yn ôl. 504 00:25:15,930 --> 00:25:19,380 >> Felly, mae hyn mewn gwirionedd yn fath o, mewn rhai ffyrdd, ac mewn rhai ffyrdd nid yw'n 505 00:25:19,380 --> 00:25:23,170 mewn gwirionedd, ond mae'n lefel ychydig yn is na'r cod PHP y gallech fod yn 506 00:25:23,170 --> 00:25:26,980 ysgrifennu ar gyfer P yn gosod saith oherwydd PHP a Apache fath o yn gofalu am rai 507 00:25:26,980 --> 00:25:28,150 o'r pethau hyn i chi. 508 00:25:28,150 --> 00:25:32,520 Yn PHP, gallwch ddisodli'r diofyn ymddygiad drwy ysgrifennu eich penawdau eich hun. 509 00:25:32,520 --> 00:25:35,520 Ond ar gyfer y dibenion hyn, rydym yn cael i ysgrifennu ein penawdau hunain. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Felly, mae hynny'n llinell gwneud synnwyr i pawb, mae'r llinell pen ysgrifennu? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Awesome. 514 00:25:42,280 --> 00:25:45,870 >> Felly, yna beth yr wyf yn ei wneud yw fy mod yn dod i ben yr ymateb drwy ddweud helo byd. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 Ond dim ond swyddogaeth Gelwir cais trafodwr. 517 00:25:49,920 --> 00:25:53,510 Felly, yn awr yr wyf yn rhaid i fath o wneud mewn gwirionedd yn rhywbeth gyda swyddogaeth hon, dde? 518 00:25:53,510 --> 00:25:59,170 >> Felly, yma yr hyn yr wyf yn ei wneud yw mae hyn yn lein sy'n gwneud hafal gweinydd var 519 00:25:59,170 --> 00:26:03,530 HTTP.create gweinyddwr, ac yna yr pasio yn y cais trafodwr. 520 00:26:03,530 --> 00:26:06,080 Felly, mae hyn yn fath o y Nôd ffordd o greu gweinydd. 521 00:26:06,080 --> 00:26:08,790 Ac yn sylwi fy mod yn pasio yn y cais trafodwr. 522 00:26:08,790 --> 00:26:12,290 Felly, mae hyn yn dweud wrth y createServer swyddogaeth yr wyf am i chi i wneud i mi yn 523 00:26:12,290 --> 00:26:16,270 gweinyddwr, a pan fydd y gweinydd yn derbyn ymateb, Fi angen i chi i alw hyn 524 00:26:16,270 --> 00:26:18,680 ofyn am swyddogaeth trafodwr. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> Felly llinell honno 'n bert lawer gorffen yn syth. 527 00:26:22,290 --> 00:26:28,780 Felly llinell gweinydd var cael ei wneud yn iawn ar ôl i chi wneud hynny 'n bert lawer. 528 00:26:28,780 --> 00:26:31,770 Yr wyf yn golygu, mae'n rhaid iddo sefydlu rhai mewnol wladwriaeth i yn gwybod y byddai'n rhaid i chi 529 00:26:31,770 --> 00:26:35,400 ffoniwch y swyddogaeth cais trafodwr, ond nid yw'n mynd i eistedd yno a 530 00:26:35,400 --> 00:26:37,730 dweud mae gan y defnyddiwr a anfonwyd mi cais eto? 531 00:26:37,730 --> 00:26:39,270 A yw'r defnyddiwr anfon 'm cais eto? 532 00:26:39,270 --> 00:26:40,780 Felly, nid yw'n bloc. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> Felly, beth fydd hyn yn ei wneud yw yn y bôn bellach yn storio pwyntydd i'r cod hwn, 535 00:26:46,120 --> 00:26:49,670 swyddogaeth trafodwr hon cais, ac yna yn rhedeg y cod pan fydd rhywun yn 536 00:26:49,670 --> 00:26:52,170 gwneud cais. 537 00:26:52,170 --> 00:26:54,120 Ac yna rydym yn ei wneud server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> Mae'r 1337 mae yn eithaf mympwyol. 540 00:26:59,960 --> 00:27:02,285 Doedd gen i ddim rheswm penodol ar gyfer casglu y rhif hwnnw. 541 00:27:02,285 --> 00:27:03,860 Yr oedd yn gwbl ar hap. 542 00:27:03,860 --> 00:27:07,010 Ond mai dim ond yn pennu'r porthladd. 543 00:27:07,010 --> 00:27:10,640 Felly mae'r rhan fwyaf gweinyddwyr gwe byddwch yn gweld eu bod yn yn defnyddio porth 80 oherwydd dyna fath 544 00:27:10,640 --> 00:27:11,810 o fel y confensiwn. 545 00:27:11,810 --> 00:27:16,170 Felly os wyf yn mynd i rhywbeth fel, Nid wyf yn gwybod, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 ac yr wyf yn rhoi colon 8 - 547 00:27:17,700 --> 00:27:18,610 oh wow, ni allwch weld hynny. 548 00:27:18,610 --> 00:27:19,370 Mae'n ddrwg gen i. 549 00:27:19,370 --> 00:27:21,820 Ond os wyf yn gwneud Wicipedia - 550 00:27:21,820 --> 00:27:24,810 'N annhymerus' ysgrifennu yma dim ond fel y mae'n amlwg ar y camera. 551 00:27:24,810 --> 00:27:29,150 Ond os wyf yn cymryd hyn i mewn i borwr gyda colon 80, sy'n nodi ewch i 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org ar porthladd 80. 553 00:27:31,430 --> 00:27:36,200 Felly, mae fel sut y mae'r Unol Daleithiau wedi lluosog borthladdoedd fel lle gallwch llong 554 00:27:36,200 --> 00:27:37,440 bethau i fath o. 555 00:27:37,440 --> 00:27:40,730 Felly, mae fel mynd i'r benodol rhoi ar y gweinydd hwn. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Felly, Fi jyst dewis 1337. 558 00:27:45,730 --> 00:27:47,910 Mae yna amrywiaeth eang o rifau eich bod yn gallu codi. 559 00:27:47,910 --> 00:27:50,390 Nid oedd hynny'n gwbl arbennig. 560 00:27:50,390 --> 00:27:54,560 >> Ond yr hyn yr wyf i'n mynd i wneud yn awr yn Rydw i'n mynd i redeg Nôd. 561 00:27:54,560 --> 00:27:59,730 Gadewch i mi mewn gwirionedd yn mynd i bod un neu ddau llinellau i lawr er mwyn i chi ei weld. 562 00:27:59,730 --> 00:28:03,130 Rydw i'n mynd i wneud Node, ac rwy'n mynd i redeg simpler.js. 563 00:28:03,130 --> 00:28:06,880 A byddwn yn siarad am sut i gael Nod a sefydlwyd yn ychydig. 564 00:28:06,880 --> 00:28:09,350 Ond yn awr mai dim ond rhedeg y gweinydd. 565 00:28:09,350 --> 00:28:14,360 >> Felly, un peth y gallwn roi cynnig ac na fydd boed hynny gyffrous yw y gallwn mewn gwirionedd 566 00:28:14,360 --> 00:28:16,300 ceisio cael mynediad iddo yn Curl. 567 00:28:16,300 --> 00:28:20,680 Felly, yr wyf yn gallu ei wneud Curl, ac mae fy peiriant yn llu lleol. 568 00:28:20,680 --> 00:28:24,600 Byddwch hefyd yn gweld hyn yn ysgrifenedig fel hyn weithiau. 569 00:28:24,600 --> 00:28:29,810 Llu lleol a 127.0.0.1 yn garedig o fel eich cyfrifiadur cartref. 570 00:28:29,810 --> 00:28:33,180 Felly, mae fel siarad â eich cyfrifiadur eich hun. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> Ac yna gallaf ddweud 1337. 573 00:28:36,030 --> 00:28:39,630 Felly os wyf yn rhedeg y llinell hon o god, mae'n dweud helo byd. 574 00:28:39,630 --> 00:28:44,050 Ac os wyf yn awyddus i weld bod pethau sy'n Roedd testun math o gynnwys plaen neu 575 00:28:44,050 --> 00:28:46,560 beth bynnag, gallwn hyd yn oed roi hyn yma. 576 00:28:46,560 --> 00:28:48,810 Ac yn sylwi ei fod yn yn dweud OK. 577 00:28:48,810 --> 00:28:50,810 Ac yr wyf yn cael plaen testun. 578 00:28:50,810 --> 00:28:53,140 Ac yna mae fath o hyn oll yn arall pethau y bydd Nôd ychwanegu 579 00:28:53,140 --> 00:28:54,440 yno i mi. 580 00:28:54,440 --> 00:28:55,700 Nid yw hyn yn super bwysig. 581 00:28:55,700 --> 00:28:58,230 >> Hynny yw, mae yna rhyw fath o technegol agweddau ar y yn garedig 582 00:28:58,230 --> 00:29:02,280 o cŵl i siarad am, ond dim ond i ddangos chi, yr wyf hefyd yn cael y pŵer i 583 00:29:02,280 --> 00:29:03,070 newid y rhain o gwmpas. 584 00:29:03,070 --> 00:29:06,280 Felly gall Fi jyst ychwanegu bagad o bethau fel 'na. 585 00:29:06,280 --> 00:29:11,780 Ac yna yn awr, os wyf yn edrych yn fy allbwn, bydd yn hynny. 586 00:29:11,780 --> 00:29:19,740 Felly penawdau hyn yn golygu pethau penodol i borwyr a phethau fel 'na. 587 00:29:19,740 --> 00:29:23,040 >> A gall penawdau yn y bôn yn dweud porwr sut i ymateb i rywbeth. 588 00:29:23,040 --> 00:29:26,280 Os ydych chi wedi clywed erioed o 'cookies' o'r blaen, neu os ydych wedi bod yn flin erioed 589 00:29:26,280 --> 00:29:29,330 gan dudalen we gosod cwcis, neu droi ar floc cwci neu 590 00:29:29,330 --> 00:29:30,320 rhywbeth fel 'na. 591 00:29:30,320 --> 00:29:33,040 Gallwch chi mewn gwirionedd yn gosod cwcis yn y penawdau hyn. 592 00:29:33,040 --> 00:29:36,990 Felly, maent yn dweud porwr sut i ymddygiad mewn rhai achosion. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Felly dyna oedd simpler.js. 595 00:29:40,310 --> 00:29:42,780 A oes unrhyw un gennych unrhyw gwestiynau ar y ffeil cod ffynhonnell? 596 00:29:42,780 --> 00:29:45,420 597 00:29:45,420 --> 00:29:45,610 OK. 598 00:29:45,610 --> 00:29:46,490 Cool. 599 00:29:46,490 --> 00:29:50,780 >> Felly, gadewch i ni gael gwared ar y r o'r ac edrych ar simple.js. 600 00:29:50,780 --> 00:29:53,010 Felly, mae hyn yn 'n bert lawer yr un rhaglen. 601 00:29:53,010 --> 00:29:56,030 Fi jyst ysgrifennu ei fod yn ychydig yn wahanol oherwydd roeddwn i eisiau i ddatrys o amlygu 602 00:29:56,030 --> 00:29:57,850 rhai nodweddion o JavaScript. 603 00:29:57,850 --> 00:30:03,880 >> Felly, yn sylwi bod y cais trafodwr swyddogaeth wedi diflannu yn llwyr. 604 00:30:03,880 --> 00:30:05,800 Oh yep, oedd gennych gwestiwn? 605 00:30:05,800 --> 00:30:08,200 >> GYNULLEIDFA: Yeah, y dadleuon sy'n cael eu pasio i'r 606 00:30:08,200 --> 00:30:10,120 swyddogaeth, beth ydynt? 607 00:30:10,120 --> 00:30:12,050 >> KEVIN Schmid: Felly, y rhai yn JavaScript gwrthrychau. 608 00:30:12,050 --> 00:30:15,230 Yn y ddogfennaeth Node.js, mae'n y bôn yn dweud pa ddulliau yn 609 00:30:15,230 --> 00:30:15,910 sydd ar gael ar eu cyfer. 610 00:30:15,910 --> 00:30:19,602 Rydym yn unig yn digwydd i gael y mynediad i dull hwn a elwir yn pen ysgrifennu a diwedd 611 00:30:19,602 --> 00:30:20,730 a phethau fel 'na. 612 00:30:20,730 --> 00:30:22,590 Ond mae criw cyfan mwy o ddulliau. 613 00:30:22,590 --> 00:30:27,670 >> Ac er enghraifft, fel un ohonynt yn arbennig ar rec, gallwch chi ei wneud 614 00:30:27,670 --> 00:30:34,540 rhywbeth fel rec.method a fydd yn dweud wrthych p'un a yw'n cael HTTP neu 615 00:30:34,540 --> 00:30:36,780 Ceisiadau ar ôl HTTP a pethau fel 'na. 616 00:30:36,780 --> 00:30:39,100 Felly mae pob math o wahanol eiddo, ond maen nhw'n ddau 617 00:30:39,100 --> 00:30:42,560 JavaScript gwrthrychau, ac maent yn rhaid swyddogaethau ynghlwm wrthynt eich bod yn 618 00:30:42,560 --> 00:30:43,850 gallu ysgrifennu pethau i. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> Felly, yn sylwi bod cais trafodwr wedi mynd yn llwyr. 621 00:30:49,030 --> 00:30:52,650 Ond mae'r cod a oedd gennyf yn gais trin yn dal i fod yno. 622 00:30:52,650 --> 00:30:56,520 Yr wyf yn dal i gael res.writeHead hwn ac yr wyf yn dal i gael res.end hwn. 623 00:30:56,520 --> 00:31:00,270 A beth mae hyn yn enghraifft o mewn JavaScript yw syniad hwn o 624 00:31:00,270 --> 00:31:01,460 swyddogaeth dienw. 625 00:31:01,460 --> 00:31:04,180 a dienw yn debyg i enw addas ar ei gyfer gan ei fod nid yn llythrennol yn 626 00:31:04,180 --> 00:31:05,180 gael enw. 627 00:31:05,180 --> 00:31:07,900 Does dim cais swyddogaeth triniwr mewn 'na. 628 00:31:07,900 --> 00:31:10,110 >> Nid oes gan enw, ond mae'n dal i yn cymryd ddadl. 629 00:31:10,110 --> 00:31:12,250 Felly, yr wyf yn dal i got rec a res. 630 00:31:12,250 --> 00:31:16,180 Ac yr wyf yn dal i gael y cod. 631 00:31:16,180 --> 00:31:18,930 Mae hyn yn berffaith iawn JavaScript cod. 632 00:31:18,930 --> 00:31:22,540 Felly gallaf ddatgan swyddogaeth heb rhoi benodol enw. 633 00:31:22,540 --> 00:31:24,250 Mae'n ychydig yn ddryslyd ar y dechrau. 634 00:31:24,250 --> 00:31:26,230 Mae rhai pethau defnyddiol fel y gallwch ei wneud gyda 635 00:31:26,230 --> 00:31:28,450 swyddogaethau dienw hyn. 636 00:31:28,450 --> 00:31:32,100 A oes unrhyw un gennych unrhyw gwestiynau am hyn, neu a yw'n iawn yn unig i, am y tro, 637 00:31:32,100 --> 00:31:34,130 math o ychydig derbyn ei fod bydd yn gwneud yr un peth? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Yep? 640 00:31:37,125 --> 00:31:38,680 >> GYNULLEIDFA: A swyddogaethau yn gyntaf dosbarth yn JavaScript? 641 00:31:38,680 --> 00:31:41,020 >> KEVIN Schmid: Maent yn gyntaf dosbarth yn JavaScript. 642 00:31:41,020 --> 00:31:45,490 A dim ond yn gwybod bod cysyniadau hyn o pasio mewn swyddogaeth ddienw fel 643 00:31:45,490 --> 00:31:49,600 hyn yn berthnasol i'r JavaScript eich bod Gall ysgrifennu yn eich prosiect terfynol ar gyfer 644 00:31:49,600 --> 00:31:51,260 y porwr gwe hefyd. 645 00:31:51,260 --> 00:31:56,700 Felly, er enghraifft, yn y Javascript yn eich porwr, mae hefyd braidd digwyddiad 646 00:31:56,700 --> 00:32:00,680 gyrru yn yr ystyr bod yr hyn yr ydych chi helpu cael yw pan fydd y defnyddiwr yn clicio hyn 647 00:32:00,680 --> 00:32:02,640 botwm, yr wyf am i chi redeg y cod hwn. 648 00:32:02,640 --> 00:32:07,070 >> Felly, mae'n yr un math o syniadau y ochr y cleient pan fydd cliciwch llygoden neu maent yn 649 00:32:07,070 --> 00:32:09,870 llygoden dros rai ddelwedd ar eich tudalen ar y we, yn rhedeg y cod hwn. 650 00:32:09,870 --> 00:32:11,350 Gall fod yn berthnasol i gweinyddwyr. 651 00:32:11,350 --> 00:32:16,380 Felly dyna fath o fel y cyffrous rheswm pam JavaScript yn wirioneddol 652 00:32:16,380 --> 00:32:19,810 bobl addas neu ryw meddwl ei fod yn iaith sy'n addas ar gyfer y math hwn o 653 00:32:19,810 --> 00:32:22,530 gweinydd gyrrwr digwyddiad oherwydd eich bod wedi swyddogaethau dienw hyn. 654 00:32:22,530 --> 00:32:26,150 Mae gennych yr holl syniad o y cod asynchronous. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Unrhyw un gennych unrhyw gwestiynau? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Felly dyna oedd simple.js. 659 00:32:33,440 --> 00:32:38,070 Felly, gadewch i ni edrych ar un yn fwy neu gwpl mwy. 660 00:32:38,070 --> 00:32:42,040 Felly mae hyn yn sleep.js. 661 00:32:42,040 --> 00:32:47,160 Felly, a yw unrhyw un yn gyfarwydd â y C swyddogaeth cysgu? 662 00:32:47,160 --> 00:32:50,936 O efallai un o'r darlithoedd cynharach neu rywbeth fel 'na? 663 00:32:50,936 --> 00:32:54,650 >> Felly, yn y bôn, gallwch basio i mewn Rwy'n credu bod nifer o eiliadau neu os ydych yn defnyddio U 664 00:32:54,650 --> 00:32:57,080 gysgu nifer o filfedau eiliad neu nanoseconds. 665 00:32:57,080 --> 00:33:00,450 Ac yn y bôn, bydd y rhaglen yn stopio rhedeg am y swm hwnnw o amser. 666 00:33:00,450 --> 00:33:01,280 Iawn? 667 00:33:01,280 --> 00:33:06,970 Ac yna bydd yn deffro yn y pen draw ac yna bydd yn jyst parhau i gynnal 668 00:33:06,970 --> 00:33:08,340 y rhaglen. 669 00:33:08,340 --> 00:33:12,740 >> Felly gweinydd hwn math o yn rhoi argraff o gysgu. 670 00:33:12,740 --> 00:33:17,580 Felly, yn sylwi bod gennym yr un res.writeHead 200 gyda'r pennawd fel 671 00:33:17,580 --> 00:33:22,130 o'r blaen, ond yna rydym yn galw hyn swyddogaeth a elwir yn terfyn amser a osodwyd. 672 00:33:22,130 --> 00:33:26,170 Goramser a osodwyd ar gael mewn hefyd eich porwr gwe Google Chrome 673 00:33:26,170 --> 00:33:28,000 neu Safari neu beth bynnag. 674 00:33:28,000 --> 00:33:31,720 Ac yn y bôn yr hyn y mae'n ei wneud yma yn ei fod yn cymryd mewn swyddogaeth. 675 00:33:31,720 --> 00:33:33,360 Rhybudd, unwaith eto, ei fod yn swyddogaeth dienw. 676 00:33:33,360 --> 00:33:36,310 Felly dyna fath o oer oherwydd ein bod yn gan ddefnyddio swyddogaeth dienw o fewn 677 00:33:36,310 --> 00:33:38,950 swyddogaeth dienw sy'n Gall fod ychydig yn rhyfedd. 678 00:33:38,950 --> 00:33:42,270 >> Ond mae'n cymryd y swyddogaeth, sydd yn yn y bôn yn dweud - a'r modd y mae hyn 679 00:33:42,270 --> 00:33:47,430 gweithio mewn 5,000 o milieiliadau, yr wyf am i chi weithredu y swyddogaeth sy'n 680 00:33:47,430 --> 00:33:50,830 dim ond yn dod i ben yr ymateb ac yn ysgrifennu hey. 681 00:33:50,830 --> 00:33:56,730 Felly, mae hyn yn rhoi'r argraff o fel cysgu, ond mae'r ffordd y mae hyn mewn gwirionedd yn 682 00:33:56,730 --> 00:33:59,780 gweithio yw byddwn yn rhedeg trwy y llinell hon yn gyflym iawn. 683 00:33:59,780 --> 00:34:01,190 Rydym yn unig yn ysgrifennu rhywbeth. 684 00:34:01,190 --> 00:34:03,780 Ac yna byddwn hefyd yn rhedeg drwy y llinell hon yn gyflym iawn. 685 00:34:03,780 --> 00:34:08,620 Felly, nid ydym yn mynd mewn gwirionedd i aros am bum eiliad. 686 00:34:08,620 --> 00:34:11,370 Rydym yn jyst yn mynd i redeg cod hwn ar unwaith. 687 00:34:11,370 --> 00:34:14,219 >> Ac yna mae, eto, mae hyn ychydig dolen digwyddiad fod gan y peth hyn 688 00:34:14,219 --> 00:34:17,570 cofrestrau sy'n yn y bôn yn unig yn mynd o gwmpas yn gyson mewn cylch 689 00:34:17,570 --> 00:34:21,620 ac edrych ar y cloc mewn un edau a dweud, mae gan bum eiliad 690 00:34:21,620 --> 00:34:22,360 heibio eto? 691 00:34:22,360 --> 00:34:26,409 Ac yna pan mae'n gweld bod yr ail llaw wedi symud fel pum eiliad neu 692 00:34:26,409 --> 00:34:29,190 beth bynnag, yna mae'n deffro i fyny ac yn dweud, oh, beth sy'n rhaid i mi ei wneud? 693 00:34:29,190 --> 00:34:30,350 Oh rhaid i mi redeg y cod hwn. 694 00:34:30,350 --> 00:34:33,110 Ac yna mae'n mynd i rhedeg res.end hey. 695 00:34:33,110 --> 00:34:35,360 >> Felly eto, nid ydym erioed yn aros yma. 696 00:34:35,360 --> 00:34:38,590 Felly, nid yw'n bod cod hwn tu mewn swyddogaeth hon yn mynd i gymryd pum 697 00:34:38,590 --> 00:34:39,900 eiliad i redeg. 698 00:34:39,900 --> 00:34:43,090 Bydd y cod hwn yn rhedeg 'n bert lawer ar unwaith, o leiaf o gymharu â 699 00:34:43,090 --> 00:34:46,139 y pum eiliad yr oeddem yn sôn amdanynt yn gynharach o'r blaen. 700 00:34:46,139 --> 00:34:52,100 >> Felly, dim ond i ddangos hyn ar waith, Gallaf ei wneud Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 Ac wnes i llanast i fyny rhywbeth? 702 00:34:55,159 --> 00:34:56,310 O bosibl. 703 00:34:56,310 --> 00:34:57,410 Mae'n ddrwg gennym. 704 00:34:57,410 --> 00:34:59,530 Gadewch i ni weld beth y gallwn ei wneud i atgyweiria hon. 705 00:34:59,530 --> 00:35:10,830 706 00:35:10,830 --> 00:35:12,080 OK. 707 00:35:12,080 --> 00:35:15,460 708 00:35:15,460 --> 00:35:17,464 Felly, yn bendant yn defnyddio Node.js. 709 00:35:17,464 --> 00:35:19,440 Im 'jyst yn kidding. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Dim ond un sec. 712 00:35:20,820 --> 00:35:27,380 713 00:35:27,380 --> 00:35:27,900 OK. 714 00:35:27,900 --> 00:35:29,130 Yr wyf yn gwybod beth ydyw. 715 00:35:29,130 --> 00:35:34,440 >> Felly, y broblem yw bod yn fy tab eraill yma, yr oeddwn yn rhedeg Nôd sydd eisoes ar 716 00:35:34,440 --> 00:35:36,590 yr un cyfeiriad, 1337. 717 00:35:36,590 --> 00:35:43,370 Felly y gwall bod hyn taflu, os ydym yn edrych arno go agos, yn gyfeiriad yn 718 00:35:43,370 --> 00:35:45,180 defnyddio, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Felly, yr wyf eisoes yn defnyddio 1337 yma. 720 00:35:47,970 --> 00:35:52,210 Felly os wyf yn cau hwn i ffwrdd, ac yna yr wyf yn awr geisio rhedeg hyn, gobeithio, mae popeth 721 00:35:52,210 --> 00:35:53,210 yn iawn. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Felly, gallwch chi dim ond un math peth gwrando ar borthladd ar unwaith. 724 00:35:57,020 --> 00:35:59,660 Byddai ateb arall wedi bod i mi i ddim ond golygu bod rhaglen a gwneud 725 00:35:59,660 --> 00:36:02,370 yn cael ei hoffi 1338 neu rywbeth fel 'na. 726 00:36:02,370 --> 00:36:04,100 >> Ond yn awr o gwsg yn rhedeg. 727 00:36:04,100 --> 00:36:06,400 Felly, gadewch i ni mewn gwirionedd roi cynnig arni yn y porwr y tro hwn am ei fod yn 728 00:36:06,400 --> 00:36:09,080 ychydig iawn o ddiflas i weld mewn terfynell. 729 00:36:09,080 --> 00:36:13,560 Felly, Im 'jyst yn mynd i fynd i'r 127 gyfeiriad eto ar 1337. 730 00:36:13,560 --> 00:36:14,850 Ac os gallwch ei weld - 731 00:36:14,850 --> 00:36:18,050 Nid wyf yn gwybod os gallwch - ond mae fy porwr cymryd, hir iawn iawn 732 00:36:18,050 --> 00:36:20,600 amser i lwytho neu fel bum eiliad. 733 00:36:20,600 --> 00:36:23,460 >> Ac yna ar ôl hynny, mae'n o'r diwedd a ddaeth i ben yr ymateb. 734 00:36:23,460 --> 00:36:29,070 Ac ni allwch ei weld oherwydd y peth yn cael ei symud dros ychydig, ond os byddaf yn gwneud 735 00:36:29,070 --> 00:36:32,500 ychydig yn llai hon, rydych yn gallu gweld y mae'n ei ddweud hey. 736 00:36:32,500 --> 00:36:35,130 Felly, yr wyf yn cael y hey, ond ar ôl pum eiliad. 737 00:36:35,130 --> 00:36:38,510 A gallai fod yn ychydig glanach i weld yma ar y derfynell, felly rwy'n 738 00:36:38,510 --> 00:36:40,980 mynd i wneud - 739 00:36:40,980 --> 00:36:43,540 gadewch i ni wneud i mewn yma - 740 00:36:43,540 --> 00:36:48,370 gadewch i ni wneud Curl y cyfeiriad hwnnw eto gyda'r 1337. 741 00:36:48,370 --> 00:36:50,820 Ac yn union fath o rhaid i mi eistedd yma am bum eiliad. 742 00:36:50,820 --> 00:36:53,760 Ond yn sylwi bod y gweinydd gallu derbyn ymatebion newydd. 743 00:36:53,760 --> 00:36:54,940 Felly mae'n printiau hey. 744 00:36:54,940 --> 00:36:58,720 >> Ac i demo hyn, yn y bôn yr hyn Gallaf ei wneud yn y tab eraill - 745 00:36:58,720 --> 00:37:02,640 felly gadewch i ni ddweud fy mod yn gwneud hyn mewn tab arall, Rydw i'n mynd i wneud Curl a'r un 746 00:37:02,640 --> 00:37:03,780 peth eto. 747 00:37:03,780 --> 00:37:06,600 Ac yr wyf i'n mynd i geisio i roi hwb hyn guys i ffwrdd ar yr un pryd. 748 00:37:06,600 --> 00:37:08,260 Felly, yr wyf i'n mynd i wneud hyn, ac rwy'n mynd i hil dros yma ac rwy'n 749 00:37:08,260 --> 00:37:09,650 mynd i wneud hynny eto. 750 00:37:09,650 --> 00:37:14,030 >> A gadewch i ni ei gwneud yn fel eich bod yn Gellir gweld y ddau ohonynt. 751 00:37:14,030 --> 00:37:20,250 Dyna un printiedig hey a bod un printiedig hey yr holl ffordd ar - 752 00:37:20,250 --> 00:37:22,550 gadewch i ni wneud hynny arbrawf eto. 753 00:37:22,550 --> 00:37:25,100 A dweud y gwir, gadewch i ni ddefnyddio hyn twyllo, os yw hynny'n iawn. 754 00:37:25,100 --> 00:37:30,520 >> Felly, yr wyf i'n mynd i ddefnyddio beth gragen sy'n yn caniatáu i mi yn y bôn yn rhedeg dau gopi 755 00:37:30,520 --> 00:37:32,630 y rhaglen hon ar yr un pryd. 756 00:37:32,630 --> 00:37:36,070 Felly, bydd yn rhedeg y rhaglen gyntaf a yr ail raglen yn gyfochrog. 757 00:37:36,070 --> 00:37:39,060 Felly, yn awr os wyf gwasgwch Enter, mae'n mynd i wneud y cais 'n bert lawer 758 00:37:39,060 --> 00:37:40,570 ar unwaith ar yr un pryd. 759 00:37:40,570 --> 00:37:42,620 Felly, gadewch i ni roi hyn ergyd. 760 00:37:42,620 --> 00:37:44,950 >> Felly nawr yn sylwi ei fod yn dweud ddwy broses. 761 00:37:44,950 --> 00:37:50,630 Ac os ydych yn chwilfrydig, bod 27,000 rhif yn y bôn y broses adnabod. 762 00:37:50,630 --> 00:37:52,940 Ac yna yn sylwi, maent hargraffu hey ar yr un pryd. 763 00:37:52,940 --> 00:37:56,820 Nid oedd fel roedd rhaid i ni aros am bum eiliad ar gyfer un ac yna ar ôl hynny, 764 00:37:56,820 --> 00:37:59,640 pum eiliad yn ddiweddarach yn cael yr ail. 765 00:37:59,640 --> 00:38:03,300 Felly, mae hynny'n fath o, mewn rhai ffyrdd, mae'n ddim wir tystiolaeth, ond mae'n 766 00:38:03,300 --> 00:38:07,390 tystiolaeth sythweledol bod nid dim ond fel aros pum eiliad a blocio 767 00:38:07,390 --> 00:38:08,960 yr edefyn gyfan. 768 00:38:08,960 --> 00:38:10,720 OK oer. 769 00:38:10,720 --> 00:38:17,850 >> Felly gofynnodd Aaron gwestiwn yn gynharach y oedd, wel beth os ydym yn gwneud rhywbeth - 770 00:38:17,850 --> 00:38:18,735 Yep? 771 00:38:18,735 --> 00:38:19,051 >> GYNULLEIDFA: Aros. 772 00:38:19,051 --> 00:38:21,585 Sut mae bod yn wahanol i byffer printf, er bod? 773 00:38:21,585 --> 00:38:23,010 Nid yw'n yn awtomatig yn gwneud hynny? 774 00:38:23,010 --> 00:38:25,390 Pam fod rhaid i ni boeni am y peth? 775 00:38:25,390 --> 00:38:26,555 >> KEVIN Schmid: O, allech chi yn dweud bod un mwy o amser? 776 00:38:26,555 --> 00:38:29,510 >> GYNULLEIDFA: Nid yw'n hoffi byffer printf gwneud yr un peth yn union? 777 00:38:29,510 --> 00:38:31,280 >> KEVIN Schmid: Y byffer printf? 778 00:38:31,280 --> 00:38:32,753 >> GYNULLEIDFA: Yeah. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 Nid oedd yn un o'r cwisiau eu bod yn siarad am sut os ydych yn gywir printf 781 00:38:40,609 --> 00:38:42,899 rhywbeth ac yna wedi oedi un yn ail, ac yna mae gennych ei dolen deg 782 00:38:42,899 --> 00:38:46,530 adegau, bydd yn aros deg eiliad a Yna printf popeth at ei gilydd? 783 00:38:46,530 --> 00:38:47,460 >> KEVIN Schmid: O, OK. 784 00:38:47,460 --> 00:38:49,170 >> GYNULLEIDFA: A yw'n gwneud yr un peth yna yn yr achos hwn? 785 00:38:49,170 --> 00:38:52,630 >> KEVIN Schmid: Felly, y cwestiwn yn yn y bôn yn un o'r cyn-cwisiau 786 00:38:52,630 --> 00:38:57,200 neu rywbeth, roedd cwestiwn a yn y bôn, os ydych yn dweud print f 10 787 00:38:57,200 --> 00:39:01,490 pethau ar y tro ac yna cysgu fel yn y broses o argraffu rhai sydd allan, 788 00:39:01,490 --> 00:39:04,850 ar y diwedd am ryw reswm, byddai'n dim ond daflu i lawr y rhai i gyd allan ar y sgrin. 789 00:39:04,850 --> 00:39:06,740 Felly, mae dau fath o wahanol cysyniadau yma. 790 00:39:06,740 --> 00:39:10,400 >> Felly, yr wyf yn dyfalu un peth yw bod, yn yr achos, rydym yn delio â dau wahanol 791 00:39:10,400 --> 00:39:13,510 fath o bobl sy'n gofyn y gweinydd am bethau ar yr un pryd. 792 00:39:13,510 --> 00:39:17,455 A'r rheswm bod y printf math o aros fel 'na ac tomenni i gyd allan 793 00:39:17,455 --> 00:39:21,760 ar unwaith yn fwy cysylltiedig â sut printf fath o - 794 00:39:21,760 --> 00:39:25,100 felly y ffordd printf mewn gwirionedd rhoi ar waith yn y bôn rhaid iddo 795 00:39:25,100 --> 00:39:28,850 siarad â'r system weithredu i ysgrifennu y pethau at y consol. 796 00:39:28,850 --> 00:39:33,460 Felly, nid yw'n dymuno gwneud hynny i gyd pethau ar unwaith pan fyddwch yn dweud printf 797 00:39:33,460 --> 00:39:36,260 rhai llinyn oherwydd gallai hynny chael yn ddrud os mae'n rhaid iddo 798 00:39:36,260 --> 00:39:37,340 gwneud hynny bob tro. 799 00:39:37,340 --> 00:39:41,530 >> Felly, os ydych yn gwneud printf hey, eich rhaglen Efallai na mewn gwirionedd print that 800 00:39:41,530 --> 00:39:43,040 yn union i'r consol. 801 00:39:43,040 --> 00:39:46,080 Gallai fod yn dweud, OK, yr wyf yn ei ysgrifennu. 802 00:39:46,080 --> 00:39:49,570 Ac yna fath o aros i chi i roi ei fod yn ychydig yn fwy cyn mewn gwirionedd yn 803 00:39:49,570 --> 00:39:51,380 ei ysgrifennu allan at y consol. 804 00:39:51,380 --> 00:39:54,040 >> Felly, y rheswm mai dyna oedd yr achos - 805 00:39:54,040 --> 00:39:56,450 ac mae'n fath o anghysylltiedig i'r gysgu - 806 00:39:56,450 --> 00:40:00,060 yw bod y cwsg yn fath o yn unig chwistrellu yno i ddangos 807 00:40:00,060 --> 00:40:02,480 ffaith nad yw'n ysgrifennu mae'n gydamserol. 808 00:40:02,480 --> 00:40:06,210 Ond y rheswm am hynny yw dim ond perfformiad fel nad oes rhaid i chi 809 00:40:06,210 --> 00:40:08,920 gwneud bod llawer o gysylltiadau i y system weithredu. 810 00:40:08,920 --> 00:40:12,300 >> Ond yma, yr hyn yr ydym yn wirioneddol yn ceisio ei wneud gyda hyn peth cwsg yn sioe yn unig 811 00:40:12,300 --> 00:40:17,730 pan mae gennym ddau o bobl yn ymweld y wefan, nid yw'n mynd i roi 812 00:40:17,730 --> 00:40:22,310 nhw mewn llinell lle mae'n mynd i ddweud Mae'n rhaid i mi helpu chi, ac yna pan rwy'n 813 00:40:22,310 --> 00:40:25,350 gorffen yn llwyr eich helpu ar ôl i'r pum eiliad, yna dwi'n mynd i 814 00:40:25,350 --> 00:40:26,750 symud ymlaen i'r person nesaf. 815 00:40:26,750 --> 00:40:29,515 Felly nid gais y person cyntaf yn ei wneud clymu i fyny y ddolen digwyddiad 816 00:40:29,515 --> 00:40:31,610 os yw hynny'n gwneud synnwyr. 817 00:40:31,610 --> 00:40:34,980 >> Ond dyma mewn gwirionedd yn enghraifft o rywbeth a fydd yn clymu 818 00:40:34,980 --> 00:40:36,090 i fyny y ddolen digwyddiad. 819 00:40:36,090 --> 00:40:39,130 Felly dyma swyddogaeth ofnadwy i gyfrifo Fibonacci nfed. 820 00:40:39,130 --> 00:40:43,510 Mae'n llythrennol y ffordd waeth gallwch gyfrifo nifer Fibonacci nfed. 821 00:40:43,510 --> 00:40:48,480 Ac mae hyn mewn gwirionedd yn unig i gydnabod ble y daeth hyn o, 822 00:40:48,480 --> 00:40:49,330 mae mewn gwirionedd - 823 00:40:49,330 --> 00:40:53,230 Yr wyf yn golygu, gallwch roi cynnig i fynd ddod o hyd iddo - ond mae fel blog hir iawn 824 00:40:53,230 --> 00:40:54,130 swydd fod rhywun yn ysgrifennu. 825 00:40:54,130 --> 00:40:55,660 Mae fel un o'r rhai Reddit pethau. 826 00:40:55,660 --> 00:40:59,650 Ond rhywun beirniadu Node.js, a maent yn defnyddio hyn fel enghraifft. 827 00:40:59,650 --> 00:41:03,700 Felly, yr wyf yn fath o eisiau i ddim ond yn dangos i chi dau gwahanol safbwyntiau dim ond i gael 828 00:41:03,700 --> 00:41:07,320 dealltwriaeth gyffredinol o'r cysyniadau tu ôl i'r ddau beth. 829 00:41:07,320 --> 00:41:13,050 >> Ond mae hyn yn cael ei ddewis fel dim ond ofnadwy, computationally ofnadwy aneffeithlon 830 00:41:13,050 --> 00:41:15,940 ffordd dwys i gyfrifo Rhif Fibonacci nfed. 831 00:41:15,940 --> 00:41:21,180 Felly, yn union fel nodyn ochr, pam mae mae'n ofnadwy fel yn un ffordd? 832 00:41:21,180 --> 00:41:23,210 Yep? 833 00:41:23,210 --> 00:41:25,130 >> GYNULLEIDFA: Dywedwch i chi ddechrau gyda 1,000. 834 00:41:25,130 --> 00:41:27,050 1,000 rhaniadau i 999 a 998. 835 00:41:27,050 --> 00:41:28,970 Mae pob un o hyn yn rhannu yn ddau beth. 836 00:41:28,970 --> 00:41:30,890 Mae pob un o hyn yn rhannu yn ddau beth. 837 00:41:30,890 --> 00:41:31,355 >> KEVIN Schmid: Iawn. 838 00:41:31,355 --> 00:41:32,400 >> GYNULLEIDFA: Yr holl ffordd i lawr. 839 00:41:32,400 --> 00:41:32,840 >> KEVIN Schmid: Yn union. 840 00:41:32,840 --> 00:41:37,330 Felly, dim ond i ailadrodd ar gyfer y camera, os wyf yn ffoniwch FIB ymlaen fel 1,000 neu rywbeth 841 00:41:37,330 --> 00:41:41,810 fel 'na, nid yw'n amlwg yn llai na neu'n hafal i un, felly dwi'n mynd i 842 00:41:41,810 --> 00:41:46,040 ewch i arall yr achos hwn, ac wedyn dw i'n mynd i alw FIB 999 yn ogystal â FIB 998. 843 00:41:46,040 --> 00:41:50,290 Ac yna 'n bert lawer i gyd gwaith sy'n FIB yn 999 yn 844 00:41:50,290 --> 00:41:52,950 fath o ar y lefel hon. 845 00:41:52,950 --> 00:41:55,620 Os ewch chi lawr, mae hyd yn oed yn fwy yn ddi-waith na hynny, ond os ydych yn unig 846 00:41:55,620 --> 00:42:01,390 meddwl cyfrifiadurol FIB 998 yn cael ni eithaf agos at FIB 999. 847 00:42:01,390 --> 00:42:05,860 Felly ddylem mewn gwirionedd fod ychydig yn fwy glyfar am sut rydym yn fath o ailddefnyddio 848 00:42:05,860 --> 00:42:07,580 hyn, ond nid ydym yn ailddefnyddio pethau hyn o gwbl. 849 00:42:07,580 --> 00:42:11,860 Felly, gallwch chi ddychmygu hyn enfawr, coeden enfawr bod yn unig ofnadwy. 850 00:42:11,860 --> 00:42:12,940 >> Ond beth bynnag, OK. 851 00:42:12,940 --> 00:42:14,040 Felly dyna oedd FIB. 852 00:42:14,040 --> 00:42:15,530 'I jyst yn cymryd amser i'w rhedeg. 853 00:42:15,530 --> 00:42:16,510 Yep? 854 00:42:16,510 --> 00:42:17,760 >> GYNULLEIDFA: [Anghlywadwy]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> KEVIN Schmid: O, allech chi ailadrodd y cwestiwn? 857 00:42:22,481 --> 00:42:23,731 >> GYNULLEIDFA: [Anghlywadwy]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> KEVIN Schmid: O felly mae hwn yn cod yn unig sy'n mynd i fod yn fath o ar y 860 00:42:33,990 --> 00:42:34,850 ochr y gweinydd. 861 00:42:34,850 --> 00:42:38,100 Felly, nid yw hyn yn mynd i gael dod o hyd i yn y porwr neu unrhyw beth. 862 00:42:38,100 --> 00:42:42,160 Mae'n bôn yr hyn sydd gennym yw pan y defnyddiwr yma 'n bert lawer yn gwneud 863 00:42:42,160 --> 00:42:45,300 eu cais eto, pan fyddwn yn fath o wneud cais, rydym yn mynd i alw 864 00:42:45,300 --> 00:42:47,040 swyddogaeth hon ar yr ochr gweinydd. 865 00:42:47,040 --> 00:42:50,480 Ac yna byddwn yn cael y canlyniad yn ôl rhag galw y swyddogaeth honno. 866 00:42:50,480 --> 00:42:52,460 Ac yna byddwn yn unig argraffu i'r defnyddiwr. 867 00:42:52,460 --> 00:42:54,580 Felly, nid yw'r defnyddiwr yn wir yn delio gyda swyddogaeth hwn gormod. 868 00:42:54,580 --> 00:42:57,270 >> Oedd bod y cwestiwn? 869 00:42:57,270 --> 00:42:58,470 A yw hynny'n gwneud synnwyr? 870 00:42:58,470 --> 00:42:58,810 OK. 871 00:42:58,810 --> 00:43:00,930 Cool. 872 00:43:00,930 --> 00:43:04,240 >> Felly eto, yr ydym yn gwneud hyn res.writeHead cyfan beth lle rydym yn argraffu 873 00:43:04,240 --> 00:43:05,150 y pennawd. 874 00:43:05,150 --> 00:43:09,730 Ac yna yr wyf yn dod i ben yr ymateb drwy wneud y nifer hud yn FIB 45. 875 00:43:09,730 --> 00:43:12,100 Felly, gadewch i ni jyst hidla gweinydd hwn. 876 00:43:12,100 --> 00:43:15,190 Felly, yr wyf i'n mynd i wneud Nôd fib.js. 877 00:43:15,190 --> 00:43:17,340 Felly nawr fy gweinyddwr FIB yn rhedeg. 878 00:43:17,340 --> 00:43:21,790 >> Ac yna yma, dw i'n mynd i wneud un o'r rhain. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 Felly, Im 'jyst yn mynd i ddweud, Curl. 881 00:43:24,960 --> 00:43:32,226 Felly, mae'n mynd i gymryd ychydig o amser ond gobeithio yn fuan bydd yn gorffen a 882 00:43:32,226 --> 00:43:35,660 bydd yn argraffu y 45ain Fibonacci rhif. 883 00:43:35,660 --> 00:43:36,910 >> GYNULLEIDFA: [Anghlywadwy]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> KEVIN Schmid: Dylai cael ei wneud 'n bert cyn bo hir. 886 00:43:42,050 --> 00:43:43,780 Felly, dylai gymryd 5-6 eiliad. 887 00:43:43,780 --> 00:43:48,570 Nid wyf yn gwybod mai dim ond V8 yn super gyflym, ond mewn unrhyw achos, mae hwn yn 888 00:43:48,570 --> 00:43:52,700 enghraifft fer iawn ac yn bwrpasol inelegant o heb fod yn ddibwys 889 00:43:52,700 --> 00:43:54,200 cyfrifiant. 890 00:43:54,200 --> 00:43:56,700 Felly, ar ôl ychydig, mae'n cael hyn. 891 00:43:56,700 --> 00:44:02,130 >> Ond yn awr, beth os wyf yn gwneud yr un math o arbrawf fel o'r blaen lle yr wyf yn gwneud 892 00:44:02,130 --> 00:44:04,010 dau gais ar yr un pryd? 893 00:44:04,010 --> 00:44:06,990 Felly dyma dw i'n mynd i Curl ar y cyfeiriad hwnnw, ac rwy'n mynd 894 00:44:06,990 --> 00:44:08,260 i wneud Curl arall. 895 00:44:08,260 --> 00:44:12,070 A chofiwch, pan fyddwn yn gwneud hyn ar gyfer y cysgu gweinydd, pan fyddwn yn y bôn wedi ei 896 00:44:12,070 --> 00:44:15,320 ar ôl pum eiliad, maent yn 'n bert llawer yn dod yn ôl i'r dde 897 00:44:15,320 --> 00:44:16,380 o gwmpas yr un pryd. 898 00:44:16,380 --> 00:44:18,650 Felly nid ei glymu i fyny yn arbennig. 899 00:44:18,650 --> 00:44:20,290 >> Ond gadewch i ni roi cynnig arni nawr. 900 00:44:20,290 --> 00:44:22,370 Iawn, felly rydym yn cael ein dwy broses. 901 00:44:22,370 --> 00:44:24,210 Cofiwch dyna'r broses IDs. 902 00:44:24,210 --> 00:44:25,900 Mae hyn yn mynd i fod ychydig yn lletchwith wrth i ni stondin. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Felly, gadewch i ni aros yma ac aros. 905 00:44:35,360 --> 00:44:37,090 >> Felly, dylai un ohonynt yn dod yn ôl ar ôl ei debyg - 906 00:44:37,090 --> 00:44:39,190 Iawn, felly un ddaeth yn ôl. 907 00:44:39,190 --> 00:44:43,570 Ond yna, pam nad oedd yr ail un yn dod yn ôl eto? 908 00:44:43,570 --> 00:44:44,389 Yep? 909 00:44:44,389 --> 00:44:49,280 >> GYNULLEIDFA: Ni all y gweinydd wneud unrhyw beth tra ei fod yn cyfrifiadurol y rhif hwnnw mawr. 910 00:44:49,280 --> 00:44:51,620 >> KEVIN Schmid: Iawn. 911 00:44:51,620 --> 00:44:55,395 Felly, roedd yr ymateb yn dim ond bod y gweinydd wir ddim yn gallu gwneud unrhyw beth tra 912 00:44:55,395 --> 00:44:57,460 mae'n cyfrifiadurol y rhif hwnnw Fibonacci. 913 00:44:57,460 --> 00:44:59,360 Felly, yn awr Fi jyst got fy dau beth yn ôl. 914 00:44:59,360 --> 00:45:03,210 Ond yr wyf yn dyfalu yn unig i feddwl am y cod ychydig yn fwy, sut mae'n gweithio 915 00:45:03,210 --> 00:45:05,030 a phopeth. 916 00:45:05,030 --> 00:45:11,750 >> Felly swyddogaeth hon yma yw'r cod sy'n Rydw i wedi dweud wrth y gweinydd hwn i redeg pan fydd yn 917 00:45:11,750 --> 00:45:14,100 derbyn cais sy'n dod i mewn newydd. 918 00:45:14,100 --> 00:45:17,940 Felly, 'i' jyst yn mynd i redeg drwy hyn cod cyfan, ac yna mae'n mynd i fynd 919 00:45:17,940 --> 00:45:21,120 Nôl i ddolen digwyddiad ac yna parhau gwirio ar gyfer digwyddiadau newydd. 920 00:45:21,120 --> 00:45:23,670 Felly, yn y bôn yr hyn yr ydym wedi digwydd yw'r gweinydd yn 921 00:45:23,670 --> 00:45:25,080 gwrando am bethau newydd. 922 00:45:25,080 --> 00:45:28,070 Y person cyntaf yn gofyn am yr hyn yw 45. 923 00:45:28,070 --> 00:45:30,490 Rydym yn cynnal y cod hwn ei gyfrifiannu. 924 00:45:30,490 --> 00:45:33,420 Mae'r côd hwn yn cymryd tua phum i chwe eiliad i redeg. 925 00:45:33,420 --> 00:45:36,990 Yna rydym yn mynd yn ôl at y ddolen digwyddiad a gwirio ar gyfer ceisiadau newydd. 926 00:45:36,990 --> 00:45:42,700 >> Felly, mae hyn yn enghraifft o sut, os ydych yn rhaid i bethau sydd mor a elwir yn cyfrifiannu 927 00:45:42,700 --> 00:45:48,140 rhwymo, neu ddefnyddio llawer o cyfrifiannu, Nid yw ynni, ond fel yn 928 00:45:48,140 --> 00:45:50,260 computationally dwys - 929 00:45:50,260 --> 00:45:54,080 Amcana un peth i'w ddweud am hyn yw bod y swyddogaeth hon yn ei wneud yn llwyr, 930 00:45:54,080 --> 00:45:56,310 ar gyfer y rhan fwyaf, 'n bert hawl gwaith defnyddiol. 931 00:45:56,310 --> 00:45:59,970 Mae'r amser cyfan bod y alwad yn ôl swyddogaeth yn rhedeg, yr oedd yn eithaf 932 00:45:59,970 --> 00:46:03,670 llawer treulio'r rhan fwyaf o'i amser yn cyfrifiadura rhif sy'n Fibonacci nfed. 933 00:46:03,670 --> 00:46:05,930 >> Ond rydym dim ond un edau i ddelio â nhw. 934 00:46:05,930 --> 00:46:10,270 Yn y model Apache, pan fydd dau berson gwneud y cais i gael FIB 45, rydym yn 935 00:46:10,270 --> 00:46:11,610 fyddai wedi cael dau edafedd gwahanol. 936 00:46:11,610 --> 00:46:15,060 Ac yna swydd y system weithredu yn byddai lefel defnyddiwr wedi cael, neu 937 00:46:15,060 --> 00:46:18,660 cod sy'n rheoli'r edafedd, byddai i wedi bod i sleisio bod hyd ar y 938 00:46:18,660 --> 00:46:23,060 CPU, neu hyd yn oed os ydych wedi cael CPUs lluosog, dosbarthu yn gyfartal ar draws y CPUs 939 00:46:23,060 --> 00:46:26,130 fel eu bod yn y ddau gorffen yn fras ar yr un pryd. 940 00:46:26,130 --> 00:46:31,120 >> Felly, dim ond i ddangos i chi sut y gallwn ddatrys o'r canlynol - ac nid yw hwn yn gyfanswm perffaith 941 00:46:31,120 --> 00:46:34,280 ateb, ond math o sut y gallwn gwneud yn dod yn ôl yma a gwneud 942 00:46:34,280 --> 00:46:35,880 ychydig yn well. 943 00:46:35,880 --> 00:46:41,540 Felly, yr hyn yr wyf wedi yma yn rhaglen o'r enw FIB C. Ac mae hyn yn defnyddio bôn 944 00:46:41,540 --> 00:46:45,690 un arall o fodiwlau Nôd o'r enw Mae'r Modiwl Broses Plant. 945 00:46:45,690 --> 00:46:49,210 Felly, yr wyf wedi cynnwys bod ar y math uchaf o fel byddwn yn gwneud punt yn cynnwys 946 00:46:49,210 --> 00:46:51,230 process.h plentyn neu rywbeth. 947 00:46:51,230 --> 00:46:56,210 Yn awr yr wyf yn cael mynediad at y newidyn CP sydd wedi fy holl functionality. 948 00:46:56,210 --> 00:47:01,810 >> Felly, beth dw i'n ei wneud yn yr ymateb hwn trin yw fy mod yn rhedeg y rhaglen hon 949 00:47:01,810 --> 00:47:04,100 dot slaes FIB 45. 950 00:47:04,100 --> 00:47:06,820 Felly, yr hyn yr wyf wedi ei wneud - a Im 'jyst yn mynd i gamu allan o'r rhaglen hon ar gyfer 951 00:47:06,820 --> 00:47:07,620 ychydig bach - 952 00:47:07,620 --> 00:47:11,060 yn Rydw i wedi ysgrifennu rhaglen C a yn y bôn computes y 953 00:47:11,060 --> 00:47:12,630 Rhif Fibonacci nfed. 954 00:47:12,630 --> 00:47:15,960 Felly dyma dim ond rhaglen Rwyf wedi ysgrifennu yn C sy'n computes hyn. 955 00:47:15,960 --> 00:47:19,040 Gallaf lunio, ac yr wyf yn gallu rhedeg hynny ar y llinell orchymyn. 956 00:47:19,040 --> 00:47:22,150 Ac mae'n mynd i gyfrifo Rhif 45 Fibonacci. 957 00:47:22,150 --> 00:47:24,510 >> Felly, yn sylwi 'i jyst yn cymryd 'n bert lawer yn hir. 958 00:47:24,510 --> 00:47:28,240 Mae'n debyg y gallaswn wedi defnyddio diferyn 03 i optimize 'neu rywbeth fel' na, 959 00:47:28,240 --> 00:47:31,050 ond Fi jyst ddim yn hoffi rheolaidd lleoliadau compiler. 960 00:47:31,050 --> 00:47:33,260 Ac mae'n argraffu allan. 961 00:47:33,260 --> 00:47:36,830 >> Ond yn awr, beth ydw wyf yn fath o yn ei wneud? 962 00:47:36,830 --> 00:47:39,800 Oh ddrwg gennym, ffeil anghywir. 963 00:47:39,800 --> 00:47:42,800 Felly, yr wyf yn gwneud yr un pethau â y pennawd fel o'r blaen. 964 00:47:42,800 --> 00:47:45,780 Yna mi wneud cp.exec hwn. 965 00:47:45,780 --> 00:47:49,460 Felly, beth mae hyn yn mynd i wneud yw ei fod yn mynd i redeg y rhaglen hon. 966 00:47:49,460 --> 00:47:51,960 Ond mae'r ffordd y mae hyn yn gweithio yw bod nid yw'n mynd i aros am 967 00:47:51,960 --> 00:47:53,400 y rhaglen honno i orffen. 968 00:47:53,400 --> 00:47:56,000 Mae'n dweud dim ond yn y bôn gweithredu rhaglen hon. 969 00:47:56,000 --> 00:47:58,700 Felly, yn y bôn teipiwch hwn i'r gorchymyn math brydlon. 970 00:47:58,700 --> 00:48:02,350 >> Ac yna, pan fyddwch chi'n ei wneud gyda hynny, yn rhedeg y swyddogaeth hon. 971 00:48:02,350 --> 00:48:04,800 Felly, yn awr rydym yn fath o yn cael hyn beth hadfer cyfan o 972 00:48:04,800 --> 00:48:06,750 fel nad ydym yn aros. 973 00:48:06,750 --> 00:48:08,530 A yw y math hwnnw o yn gwneud synnwyr? 974 00:48:08,530 --> 00:48:08,990 Yep? 975 00:48:08,990 --> 00:48:11,060 >> GYNULLEIDFA: [Anghlywadwy]? 976 00:48:11,060 --> 00:48:13,610 >> KEVIN Schmid: Felly bydd hyn mewn gwirionedd yn agor proses newydd i wneud hynny. 977 00:48:13,610 --> 00:48:19,310 Felly, mae hyn mewn gwirionedd, mewn rhai ffyrdd, drwg, nid super drwg, ond mae'n 978 00:48:19,310 --> 00:48:22,990 bwysig dweud bod hyn yn fath o mynd yn ôl i, ar y naill law, mae'r Apache 979 00:48:22,990 --> 00:48:26,450 fodel lle rydym yn ei wneud edafedd a phrosesau ar gyfer pob cais neu 980 00:48:26,450 --> 00:48:29,280 prosesau ar gyfer pob cais. 981 00:48:29,280 --> 00:48:32,090 Felly, mae hyn yn fath o cyfateb i'r hyn Apache yn ei wneud. 982 00:48:32,090 --> 00:48:35,110 Mewn rhai achosion, bydd yn jyst arfer newydd edau, sydd ychydig mwy o olau 983 00:48:35,110 --> 00:48:39,040 pwysau na phroses, ond gallai Apache yn y pen draw fforchio proses newydd 984 00:48:39,040 --> 00:48:43,370 sydd yn fath o hyn yr ydym yn ei wneud yma ymhlyg trwy wneud FIB slaes dot 45. 985 00:48:43,370 --> 00:48:48,690 >> Ac yna yn yr achos hwnnw, yr ydym yn fath o achosi yr un treuliau o brosesau. 986 00:48:48,690 --> 00:48:50,710 Felly, mae hyn yn un peth y gallwch ei wneud. 987 00:48:50,710 --> 00:48:52,600 Ond dim ond i ddangos y math hwn o redeg. 988 00:48:52,600 --> 00:48:57,120 A siarad hwn yn cael ei jyst 'n sylweddol hanelu at cyflwyno mathau hyn o raglenni fel 989 00:48:57,120 --> 00:49:00,710 ffordd o ddangos safbwyntiau gwahanol ar sut i ddylunio gweinyddwyr fel 'na. 990 00:49:00,710 --> 00:49:08,300 Felly, mae hyn yn rhedeg, ac yna nawr os wyf yn ei wneud hyn eto, yr wyf yn cael dau IDs broses. 991 00:49:08,300 --> 00:49:10,320 >> Gadewch i ni dim ond siarad am bethau i dynnu sylw. 992 00:49:10,320 --> 00:49:11,980 Felly, yn sylwi eu bod yn raddol. 993 00:49:11,980 --> 00:49:12,700 Mae hynny'n cŵl. 994 00:49:12,700 --> 00:49:15,140 Oherwydd ei fod yn 27,122 blaen. 995 00:49:15,140 --> 00:49:18,580 Ond rhybudd yn awr, maent yn dod yn ôl tua'r un pryd. 996 00:49:18,580 --> 00:49:23,960 >> Ac yn awr, yn gwestiwn da i ofyn am pam bod yr achos yn, y mae ei swydd 997 00:49:23,960 --> 00:49:27,590 oedd yn awr i fath o wneud y pethau hyn fath o chwarae teg gyda phob 998 00:49:27,590 --> 00:49:31,350 eraill, mae'r ddau achos o FIB slaes dot 45 fy mod yn rhedeg 999 00:49:31,350 --> 00:49:32,880 neu a oedd yn rhedeg Nôd? 1000 00:49:32,880 --> 00:49:36,940 Pwy fath o yn ei gwneud yn deg bod y ddau cael math o cydbwyso amser rhedeg? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> GYNULLEIDFA: [Anghlywadwy]. 1003 00:49:44,220 --> 00:49:44,620 >> KEVIN Schmid: Yeah. 1004 00:49:44,620 --> 00:49:49,740 Felly y bôn, pan fyddaf yn gwneud FIB slaes dot 45 neu rywbeth fel 'na, erbyn hyn mae'n 1005 00:49:49,740 --> 00:49:53,750 fath o hyd at y system weithredu i ymdrin â'r Rhedeg rhaglenni hynny. 1006 00:49:53,750 --> 00:49:56,920 Ac yn awr gall eu drefnu ar CPUs gwahanol neu ei 1007 00:49:56,920 --> 00:49:58,330 gallu eu amserlen. 1008 00:49:58,330 --> 00:50:01,870 Gall sleisio i fyny yr amser bod un CPU sy'n ei gael neu eu bod yn cael 1009 00:50:01,870 --> 00:50:03,330 i redeg ar un CPU. 1010 00:50:03,330 --> 00:50:05,620 Felly dyna y syniad tu ôl i hynny. 1011 00:50:05,620 --> 00:50:07,220 A yw hynny'n gwneud synnwyr i bawb? 1012 00:50:07,220 --> 00:50:10,950 Felly, yn awr nid Node yn wirioneddol chwarae rhan wrth rannu tasgau hyn. 1013 00:50:10,950 --> 00:50:12,200 OK. 1014 00:50:12,200 --> 00:50:14,050 1015 00:50:14,050 --> 00:50:17,840 >> Felly dyna bron iddo am enghreifftiau. 1016 00:50:17,840 --> 00:50:23,370 Fi jyst eisiau dangos un yn fwy peth oherwydd bod llawer o hyn hyd yn hyn wedi bod yn 1017 00:50:23,370 --> 00:50:27,350 Nid yw yn hollol super ymarferol mewn rhai achosion. 1018 00:50:27,350 --> 00:50:30,970 Gallaf ddychmygu dod adref ar ôl hyn siarad ac yn rhywbeth a dweud fel, 1019 00:50:30,970 --> 00:50:35,710 yn dda yr wyf yn fath o got allan o'r sgwrs sy'n Gallaf wneud gweinydd Fibonacci gyfer 1020 00:50:35,710 --> 00:50:37,360 fy prosiect terfynol. 1021 00:50:37,360 --> 00:50:40,770 Felly dyma yn unig fath o un enghraifft fwy y bydd, gobeithio, yn - 1022 00:50:40,770 --> 00:50:44,620 efallai na, ond efallai - ychydig yn fwy fath o berthnasol i brosiectau terfynol a 1023 00:50:44,620 --> 00:50:46,440 meddwl ymlaen ar gyfer pethau fel 'na. 1024 00:50:46,440 --> 00:50:48,870 >> Felly, mae hyn yn chat.js. 1025 00:50:48,870 --> 00:50:52,290 Felly, mae hyn yn fath o gael rhywfaint o sampl gweinydd cod ochr y gallech eu defnyddio i 1026 00:50:52,290 --> 00:50:55,700 sefydlu gweinydd sgwrs fach fel efallai eich bod wedi gweld ar y 1027 00:50:55,700 --> 00:50:56,630 Facebook Chat neu beth bynnag. 1028 00:50:56,630 --> 00:50:59,990 Felly, nid wyf ddim yn dweud hyn yn debyg Facebook Sgwrs, ond mae hyn yn fath o 1029 00:50:59,990 --> 00:51:06,230 fel da - efallai ddim yn dda, ond efallai dda - man cychwyn am sgwrs 1030 00:51:06,230 --> 00:51:08,560 gweinydd ar gyfer eich gwefan ar gyfer prosiect terfynol. 1031 00:51:08,560 --> 00:51:11,040 Felly, gadewch i ni edrych ar yr hyn y mae'n ei wneud. 1032 00:51:11,040 --> 00:51:15,500 >> Felly, rydym yn cael y peth arbennig ar y brig, mae hyn var SIO 1033 00:51:15,500 --> 00:51:17,050 yn hafal i angen Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Felly, mae hyn yn beth arall nad yw'n gwneud hynny dod mewn gwirionedd sypiedig ag 1035 00:51:20,280 --> 00:51:22,300 Nôd ond gallwch osod. 1036 00:51:22,300 --> 00:51:23,480 Mae'n modiwl Nôd. 1037 00:51:23,480 --> 00:51:25,670 Felly, dim ond fel rhyw estyniad i'r Node. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO mewn gwirionedd mewn gwirionedd fath o oer. 1039 00:51:29,220 --> 00:51:32,550 Mae'n tynnu yn y bôn yr hyn mae'n ei wneud yw ei fod yn caniatáu i chi 1040 00:51:32,550 --> 00:51:35,770 cael llif hwn o gyfathrebu rhwng we 1041 00:51:35,770 --> 00:51:39,430 borwr a gweinydd gwe. 1042 00:51:39,430 --> 00:51:45,250 Felly, ar gyfer y rhan fwyaf hyd yn hyn, rydym wedi cael hyn yn gyflym iawn un eiliad neu ddwy 1043 00:51:45,250 --> 00:51:48,790 ail cyfathrebu rhwng we borwr a gweinydd we. 1044 00:51:48,790 --> 00:51:53,310 Felly, mae'n bôn ewch i google.com, get y pethau, anfon yn ôl, ac yna 1045 00:51:53,310 --> 00:51:53,770 rydym yn ei wneud. 1046 00:51:53,770 --> 00:51:56,560 Nid ydym erioed yn siarad eto nes bod y Mathau o ddefnyddiwr mewn rhywbeth arall. 1047 00:51:56,560 --> 00:52:01,090 >> Ond beth Socket.IO a math tebyg o bethau - ac SocketIO mewn gwirionedd yn un 1048 00:52:01,090 --> 00:52:03,940 o'r pethau sy'n cael ei hadeiladu ar fel WebSocket sydd fath o gael 1049 00:52:03,940 --> 00:52:06,440 fel rhan o HTML5 - 1050 00:52:06,440 --> 00:52:09,620 sy'n eich galluogi i gael y deialog barhaus. 1051 00:52:09,620 --> 00:52:13,990 Ac mae hyn yn ddefnyddiol iawn mewn gweinydd sgwrsio math o beth oherwydd ei fod yn 1052 00:52:13,990 --> 00:52:17,390 math o fel deialog parhaus yn rhai ffyrdd oherwydd os ydych yn sgwrsio 1053 00:52:17,390 --> 00:52:21,540 gyda rhywun, gallwch yn awr yn unig yn anfon neges i lawr y bibell, ac yna'r 1054 00:52:21,540 --> 00:52:23,940 Gall gweinyddwr anfon neges i lawr y bibell at y person arall eich bod yn 1055 00:52:23,940 --> 00:52:24,520 sgwrsio â nhw. 1056 00:52:24,520 --> 00:52:26,903 Ac yna gallwch gael y cyfnewid fel 'na. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Felly dyna fath o beth SocketIO yn dda ar gyfer. 1059 00:52:32,850 --> 00:52:38,400 Y rheswm y SocketIO defnyddio WebSockets fel un peth yw bod yn 1060 00:52:38,400 --> 00:52:43,980 ychwanegol i ddim ond plaen hen WebSockets, mae hefyd yn gwneud rhai triciau i yn y bôn 1061 00:52:43,980 --> 00:52:45,610 yn ei gwneud yn porwr gydnaws. 1062 00:52:45,610 --> 00:52:50,040 Felly porwyr fel Internet Explorer yn anffodus yn cefnogi WebSockets 1063 00:52:50,040 --> 00:52:50,810 i'r dde allan o'r bocs. 1064 00:52:50,810 --> 00:52:55,290 Felly, mae'n defnyddio rhyw fath arall o oer daclus bethau gyda Adobe Flash er mwyn caniatáu 1065 00:52:55,290 --> 00:52:57,170 i chi gael cefnogaeth traws porwr. 1066 00:52:57,170 --> 00:52:58,800 Felly dyna ddefnyddiol iawn. 1067 00:52:58,800 --> 00:53:02,440 >> Ac mewn gwirionedd, yr wyf yn gwybod fy mod yn fath o yn rhedeg ar amser yma, ond CS50 1068 00:53:02,440 --> 00:53:08,490 Trafodwch, ydych chi erioed wedi gweld rhywbeth fel, nid wyf yn gwybod, yn wag, felly ac felly mae 1069 00:53:08,490 --> 00:53:11,030 ateb i'r swydd hon neu rywbeth fel 'na, y nodwedd honno? 1070 00:53:11,030 --> 00:53:12,250 Dyna SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Felly, pan fydd rhywun yn dechrau teipio yn y trafod blwch i wneud ymateb neu 1072 00:53:15,580 --> 00:53:20,040 rhywbeth, mae eich porwr yn beth sydd galw i mewn SocketIO allyrru rhyw fath o 1073 00:53:20,040 --> 00:53:22,660 digwyddiad sy'n dweud rhywun yn ateb i'r swydd hon. 1074 00:53:22,660 --> 00:53:26,110 >> Yna y gweinydd yn dweud, OK, beth sy'n rhaid i mi ei wneud? 1075 00:53:26,110 --> 00:53:29,270 Wel nawr mae'n rhaid i mi ddweud wrth y rhai guys eraill sydd ar CS50 Trafod edrych 1076 00:53:29,270 --> 00:53:31,170 yn y swydd hon bod rhywun wedi ateb. 1077 00:53:31,170 --> 00:53:34,190 Felly dyna fath o beth SocketIO yn dda ar gyfer, y math parhaus 1078 00:53:34,190 --> 00:53:35,930 ffrwd o ddeialog. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Felly, yr hyn yr wyf wedi yma - ac rydym yn unig mynd i anwybyddu'r amrywiaeth cysylltiadau 1081 00:53:40,060 --> 00:53:41,390 am ychydig - 1082 00:53:41,390 --> 00:53:43,080 hyn yr wyf yn ei wneud yw i ddim arall yn gwrando. 1083 00:53:43,080 --> 00:53:46,880 Felly dyna dim ond y ffordd y Socket.IO yn gan ddweud gadewch i ni wrando ar borth hwn. 1084 00:53:46,880 --> 00:53:50,060 Ac yna yr wyf yn gwneud hyn ar gysylltiad. 1085 00:53:50,060 --> 00:53:53,360 Felly dyna dim ond yn y bôn Socket IO yn ffordd o ddweud, pan fyddwn yn derbyn 1086 00:53:53,360 --> 00:53:55,840 cysylltiad, rwyf am i chi i redeg y cod hwn. 1087 00:53:55,840 --> 00:53:59,870 >> Ac yn sylwi bod yn hytrach na chael rec a res pasio i mewn 'na gen i Socket. 1088 00:53:59,870 --> 00:54:03,260 Ac mae hyn syniad Socket yn y bôn mae hyn beth y gallwch ysgrifennu a darllen 1089 00:54:03,260 --> 00:54:05,750 gan fod gan y defnyddiwr negeseuon o bosibl. 1090 00:54:05,750 --> 00:54:10,700 A'r negeseuon y byddech yn anfon fynd drwy'r Socket. 1091 00:54:10,700 --> 00:54:12,140 A yw hynny'n gwneud synnwyr? 1092 00:54:12,140 --> 00:54:14,490 Felly mae'n y peth yn parhau. 1093 00:54:14,490 --> 00:54:17,820 >> Felly, yr hyn yr wyf yn ei wneud yw fy mod yn galw Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 Ac yn allyrru yn cymryd 'n bert llawer dau dadleuon. 1095 00:54:20,330 --> 00:54:24,100 Y ddadl gyntaf yn llinyn dim ond yn cynrychioli y math o 1096 00:54:24,100 --> 00:54:25,270 beth yr ydych yn allyrru. 1097 00:54:25,270 --> 00:54:28,120 Felly, ar gyfer yr achos hwn, rydw i wedi defnyddio llinyn hwn neges newydd. 1098 00:54:28,120 --> 00:54:32,670 A dim ond yn y bôn yn dweud bod y math o peth hyn, yr hyn yr wyf i'n 1099 00:54:32,670 --> 00:54:34,750 anfon, yn neges newydd. 1100 00:54:34,750 --> 00:54:38,460 Felly, gallwch chi wrando ar gyfer mathau penodol fel neges newydd neu beth bynnag 1101 00:54:38,460 --> 00:54:39,960 drwy ddefnyddio dot ar. 1102 00:54:39,960 --> 00:54:44,570 >> Felly cysylltiad a'r defnyddiwr ei anfon yno, os ydych yn edrych ar ble rydym yn galw dot ar, 1103 00:54:44,570 --> 00:54:48,150 hynny llinynnau eraill sy'n cynrychioli mathau o negeseuon y defnyddiwr. 1104 00:54:48,150 --> 00:54:52,060 Felly, yn y bôn gallwch gael allyriant hwn un o'r mathau neges hyn, ac 1105 00:54:52,060 --> 00:54:55,520 yna gwneud rhywbeth mewn ymateb i un o'r mathau neges yma 1106 00:54:55,520 --> 00:54:57,640 >> Felly rwy'n allyrru neges newydd. 1107 00:54:57,640 --> 00:55:00,540 Rydym yn mynd i anwybyddu connections.push am eiliad. 1108 00:55:00,540 --> 00:55:03,360 Ond yna yr wyf yn dweud, a anfonwyd defnyddiwr Socket.on. 1109 00:55:03,360 --> 00:55:07,540 Felly nawr mae'n fath o hoffi pan fydd y defnyddiwr yn anfon neges i mi, yr wyf am 1110 00:55:07,540 --> 00:55:09,240 i chi redeg y cod hwn. 1111 00:55:09,240 --> 00:55:12,080 Ac yn sylwi bod y swyddogaeth dienw yn cymryd mewn amrywiol hwn 1112 00:55:12,080 --> 00:55:16,300 Gelwir ddata sy'n mynd y bôn i gael neges y defnyddiwr. 1113 00:55:16,300 --> 00:55:20,700 >> Felly, nawr gadewch i fath o siarad am yr amrywiaeth cysylltiadau. 1114 00:55:20,700 --> 00:55:24,590 Felly, mae hyn wedi'i gynllunio ar gyfer cleient sgwrs lle y bôn pawb fath o yn 1115 00:55:24,590 --> 00:55:25,950 yr un ystafell sgwrsio. 1116 00:55:25,950 --> 00:55:29,640 Felly y bôn, yr hyn y mae angen i gadw cwmpas yn rhai amrywiaeth sydd yn y bôn 1117 00:55:29,640 --> 00:55:33,170 cynrychioli holl bobl sgwrsio yn rhai ffyrdd, os yw hynny'n gwneud synnwyr. 1118 00:55:33,170 --> 00:55:33,340 Iawn? 1119 00:55:33,340 --> 00:55:37,190 Oherwydd y mae angen i ni wybod pwy guys hynny yn er mwyn i ni anfon y negeseuon yn eu 1120 00:55:37,190 --> 00:55:39,140 bod pobl eraill yn eu hanfon atom. 1121 00:55:39,140 --> 00:55:44,440 >> Felly beth y cod hwn yn ei wneud pan fydd defnyddiwr anfon neges - dyna'r math o 1122 00:55:44,440 --> 00:55:45,300 y digwyddiad - 1123 00:55:45,300 --> 00:55:47,120 rydym yn mynd i redeg y cod hwn. 1124 00:55:47,120 --> 00:55:51,240 A beth ydym yn ei wneud yw ein rhedeg drwy'r amrywiaeth yr ydym wedi galw cysylltiadau. 1125 00:55:51,240 --> 00:55:54,390 A 'n bert lawer ar gyfer pob cysylltiad ar wahân i'r un sy'n ein un ni, dyna 1126 00:55:54,390 --> 00:55:59,520 beth y cod hwn yn dweud, rydym yn anfon newydd neges gyda y neges sydd ynghlwm 1127 00:55:59,520 --> 00:56:01,210 gwybodaeth. 1128 00:56:01,210 --> 00:56:04,880 >> Felly, os ydych yn sylwi yma, yr hyn a wnes i pan y defnyddiwr mewn gwirionedd yn gwneud newydd 1129 00:56:04,880 --> 00:56:08,560 cysylltiad yw Rydw i wedi rhoi gyda'r Dull JavaScript.push, mae hyn yn 1130 00:56:08,560 --> 00:56:12,100 yn y bôn jyst yn deud fel ychwanegu y Socket fel gwerth i 1131 00:56:12,100 --> 00:56:13,900 ein amrywiaeth cysylltiadau. 1132 00:56:13,900 --> 00:56:20,560 Felly nawr pan cod hwn yn rhedeg, bydd yn anfon pethau i'r rhai penodol 1133 00:56:20,560 --> 00:56:22,020 cysylltiadau. 1134 00:56:22,020 --> 00:56:26,980 Felly, gall hyn fod yn fan cychwyn da ar gyfer gwneud gweinydd sgwrs 1135 00:56:26,980 --> 00:56:28,250 neu rywbeth tebyg. 1136 00:56:28,250 --> 00:56:33,315 >> A'r math o beth oer yw bod y cod eich bod yn gweld yma at ei debyg ar a 1137 00:56:33,315 --> 00:56:36,390 allyrru a phethau fel 'na yr un fath math o god JavaScript y byddech 1138 00:56:36,390 --> 00:56:39,260 ysgrifennu yn y porwr i ryngweithio gyda'r gweinydd. 1139 00:56:39,260 --> 00:56:42,480 Felly dyna pam SocketIO yn fath o taclus a defnyddiol yn y ffordd honno. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> O, a dim ond un peth yn fwy real gyflym. 1142 00:56:49,250 --> 00:56:55,970 Roedd prosiect terfynol CS50 y llynedd yn y bôn gweithredu sgwrs 1143 00:56:55,970 --> 00:56:57,840 gweinydd yn Node.js. 1144 00:56:57,840 --> 00:57:01,350 Rwy'n credu ei fod Harvardchats.org ond dydw i ddim - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 Dydw i ddim yn siŵr beth yr URL, ond Gallaf anfon hynny allan wedyn. 1147 00:57:06,190 --> 00:57:09,260 Ond mae'n fath o oer pa gallwch ei wneud gyda Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Felly, yr wyf yn gobeithio, yn gyffredinol, i chi guys yn cael synnwyr da o'r hyn Node.js yn ddefnyddiol 1149 00:57:14,680 --> 00:57:17,870 a sut y gallech efallai wneud cais at eich prosiect terfynol. 1150 00:57:17,870 --> 00:57:21,050 Byddaf yn anfon mwy adnoddau ynghyd â hyn. 1151 00:57:21,050 --> 00:57:23,170 A diolch i chi am ddod. 1152 00:57:23,170 --> 00:57:23,610 Diolch yn fawr. 1153 00:57:23,610 --> 00:57:27,168 >> [Cymeradwyaeth]