>> KEVIN Schmid: Helo bawb.
Croeso i'r seminar CS50 ar Node.js.
Fy enw i yw Kevin.
Rwy'n TF CS50.
A dwi'n math o fel edrych ymlaen yn fawr am y seminar hwn.
Yr wyf yn meddwl Node.js yn oer iawn.
Yr wyf yn gobeithio y gall y seminar hwn yn cael ei ddefnyddio fel da, yr wyf yn dyfalu, sbardun ar gyfer
rai o'ch prosiectau terfynol os oes gennych ddiddordeb mewn defnyddio
rhywbeth fel Node.js.
>> Byddwn yn fath o gychwyn y seminar i ffwrdd gan dim ond sôn am ychydig o
math o scalability cefndir safbwyntiau Node.js, ac yna
byddwn yn symud at rai enghreifftiau cod.
A byddaf yn cael y cod ar wefan, a gallwch edrych ar y cod.
Ac ar ôl y seminar, byddaf yn trefnu o siarad am sut y gallwch sefydlu Node.js
ar eich cyfrifiadur.
>> OK.
Felly, gadewch i ni ddechrau arni.
Felly, yr wyf yn dyfalu Fi jyst eisiau i siarad am gweinyddwyr y we, mewn gwirionedd, yn gyntaf.
Ac i gychwyn y drafodaeth hon, yr wyf yn yn y bôn yn cael diagram sydd yn dod o
gwerslyfr a ddefnyddir ar gyfer CS61, a oedd yn yn y bôn yn dangos y rhyngweithio
rhwng proses cleient, fel eich gwe porwr neu fel eich cleient nod neu
rhywbeth fel 'na, a weinydd y we.
Felly, mae hyn math o edrych yn debyg i'r llun a welsoch ym darlith ar
Dydd Mercher lle yn y bôn mae gennym rai proses cleient fel Google Chrome.
>> Ac yna cam un yw'r cleient yn anfon cais.
Felly, gall fod yn rhywbeth fel yn dda gadewch i ni ymweld, nid wyf yn gwybod, CS50.net.
Felly, rydym yn cyhoeddi y cais hwnnw.
A yw unrhyw un yn cofio enw'r y protocol sy'n nodi sut mae hynny'n
Dylai cais yn cael ei strwythuro?
Yep.
>> GYNULLEIDFA: [Anghlywadwy].
>> KEVIN Schmid: Yn union.
Felly, mae fel HTTP, dde?
Felly, yn y bôn y fanyleb ar gyfer sut y Dylai cais hwnnw mewn gwirionedd yn cael ei osod
allan, oherwydd ar ddiwedd y dydd, bod cais yn cael ei gwirionedd dim ond hoffi
llinyn y bôn yn dweud wyf am i hyn.
A'r fanyleb am hynny yw HTTP.
Felly dyna fel protocol.
>> Felly, yna y gweinydd yn derbyn cais hwnnw.
Felly rydych guys yn cael gweinydd gwe osod yn y peiriant CS50.
Mae'n Apache.
Ac mae hyn yn yr wythnos pan fyddwch yn gweithio ar broblem gosod saith, byddwch mewn gwirionedd yn cael eu gweithio
gyda'r gweinydd gwe.
Felly mae'r gweinydd yn derbyn y cais hwnnw, a yna mae'n rhaid i'r math o crafu ei
pen a dweud fel yn dda yr hyn ddylwn i ei wneud gyda hyn?
>> Felly, yn seiliedig ar yr hyn y mae'n penderfynu ei wneud, yna efallai y bydd rhaid i ni gysylltu ryw fath
o adnoddau.
A gallai adnodd hwnnw fod yn llawer o bethau gwahanol.
Ar gyfer un, gallai fod yr un fel ffeil HTML statig.
Felly, a yw'n bosibl efallai fel rhyw HTML sydd yn debyg i
eich gwefan bersonol.
Gallai fod yn ffeil statig fel delwedd neu fel ffilm sydd gennych.
Gallai hyd yn oed i siarad i ryw fath o gronfa ddata
fel cronfa ddata MySQL.
Felly nid oes rhaid iddo bob amser i gyfathrebu gydag adnodd, ond yn
rhai achosion, y gallai.
>> Felly, yna beth mae'n mynd i wneud ar ôl hynny yw ei fod yn mynd i
anfon yr ymateb yn ôl.
Ac mae'r ymateb ar gyfer hyn yw a nodir hefyd gan HTTP.
Felly, yna gall y cleient ei dderbyn.
Gall rhwygo ar wahân ac yn brosesu.
Ac yna byddwch yn cael tudalen ar y we fel Google neu CS50.net neu
beth bynnag aeth chi wneud hynny.
OK?
>> Felly, mae hyn yn rhyngweithio sylfaenol sy'n rydym yn mynd i fod yn delio â hwy.
Ac rydym yn mynd 'n bert lawer i fod yn canolbwyntio ar y rhan hon o'r
rhyngweithio, y gweinydd.
OK.
Cool.
Unrhyw un gennych unrhyw gwestiynau hyd yn hyn?
OK.
>> Felly, fel y dywedasom, y gweinydd gwe yn derbyn y cais HTTP ac yna faterion hyn
Ymateb HTTP.
Ac fel yr ydym yn siarad am o'r blaen, mae'r Gweinydd gwe offer CS50 yw Apache.
Felly, pan fyddwch yn guys gweithio ar P gosod saith, eich bod yn mynd i fod yn gweithio gyda'r
Gweinydd gwe Apache.
Ni fydd yn rhaid i chi weithio mewn gwirionedd gyda Apache yn uniongyrchol gormod.
Rydych yn fath o ffurfweddu Apache ychydig pan fyddwch yn nodi y lluoedd rhithwir neu
y v lluoedd, a byddwn yn mynd at hynny mewn ychydig.
>> Ond yn y bôn, y gweinydd gwe Apache a sefydlwyd i weithio gyda'r math PHP
y tu allan i'r bocs.
Felly beth sy'n digwydd mewn gwirionedd yw pan fyddwch yn mynd i un o'ch gwefannau fel, dyweder,
cynnal index.php slaes lleol neu rywbeth, yw eich porwr yn anfon y
cais, ac yna Apache yn eistedd yno a ffigurau allan i'w wneud ag ef.
A'r camau yw i weithredu y cod yn index.php a
yna anfonwch i ffwrdd ôl.
Felly, mae hynny.
Felly, rydym yn fath o siarad am hyn.
Felly, gallai fod dim ond yn gwasanaethu ffeil statig neu cynnal rhai cod PHP ac yna mater
yr ymateb.
>> Felly, yna gwestiwn cyffredin y gellir dod i fyny yn dda, sut yr ydym yn wir yn delio
â chael defnyddwyr lluosog ar yr un pryd?
Felly dychmygwch os ydych yn ysgrifennu ar y we gweinyddwr, os ydych wedi cael gweinydd gwe sy'n
yr oeddech yn ceisio ysgrifennu mewn rhywbeth fel C neu rywbeth fel 'na,
yn y bôn y gallwch chi feddwl am sut y mae Gallai fod yn rhyw fath o god sy'n
fyddai'n derbyn y cais, ond wedyn mae'n rhaid iddo wneud yr holl waith hwn arno.
Efallai y bydd yn rhaid i, er enghraifft, cysylltwch â'r cronfa ddata neu rywbeth fel 'na.
Iawn?
Ac yna byddai'n gwneud math hwnnw o brosesu ac yna
anfonodd yr ymateb yn ôl.
Felly dyna fel yr uchel trosolwg lefel.
>> Ond nid yw'n amlwg ar unwaith sut yr ydych yn yn gallu gwneud hynny fel bod dau o bobl neu
gallai hyd yn oed 1,000 o bobl yn gweithio gyda'ch weinydd y we ar yr un pryd.
Felly yr ateb sy'n defnyddio Apache cael ei alw'n edafedd neu brosesau.
Felly, efallai eich bod wedi clywed am termau hyn o'r blaen.
Mae'n iawn os nad ydych, ond yn meddwl am edafedd neu brosesau fel ffyrdd i
system weithredu neu raglen defnyddiwr neu rhywbeth fel 'na, neu weinydd y we
i'r math o weithredu lluosog pethau ar unwaith.
Felly, efallai eich bod wedi clywed y term fel edafedd o weithredu.
Felly, mae'n fath o fel eich bod yn math o amldasgio.
>> Ac os ydych chi wedi gweld ar y bocs eich gliniadur, neu rywbeth fel 'na,
multicore, beth y gallwch ei wneud yw y gallwch rhedeg dau edafedd gwahanol ar wahanol
rhannau o'r CPU fel y gallant mewn gwirionedd yn digwydd ar yr un pryd.
Felly, mae hyn yn wirioneddol pwerus.
Ac mae hyn yn fath o Apache yn ateb i'r broblem hon.
>> Felly, a oes math o fel unrhyw faterion gyda'r dull hwn er bod?
Felly, yr wyf yn dyfalu wyf yn fath o ysgrifennu nhw yno.
Ond mae'r ddau ohonynt yn fath o defnyddio llawer o gof.
Mae'n ddrud iawn i greu edefyn neu broses.
>> A rhan o'r rhesymeg yw mai dim ond fel pan fyddwch yn cynnal rhaglen C
fel eich prif ac yna bod galwadau swyddogaeth arall, sydd wedi
rhyw fath o pentwr.
Felly, edafedd hefyd yn gofyn am yn gyfan gwbl pentwr ar wahân sy'n
Gall fod yn eithaf mawr.
Ac os gallwch chi ddychmygu cael tunnell o ddefnyddwyr ar eich gwefan, byddai gennych
llawer o wahanol edafedd.
Mae hynny'n llawer o staciau rheoli a chynnal.
Felly mae'n defnydd o gof mawr.
>> Ac yna, hefyd, gadewch i ni ddweud dim ond rhaid i chi un CPU, neu gadewch i ni ddweud eich bod wedi
mwy o edafedd nag sydd gennych multicores hynny.
Iawn?
Felly, gadewch i ni ddweud oedd gennych 10 edafedd ac mai dim ond pum CPUs.
Fath o rhaid i chi wneud y peth hyn lle chi newid rhwng y presennol
un sydd wedi rhedeg oherwydd eich Ni all redeg pob un o'r 10 ar unwaith.
Ac mae hynny'n cael ei alw switsh cyd-destun.
Ac mewn gwirionedd mae gan y term hwnnw ychydig o gwahanol gyd-destunau, ond gadewch i ni dim ond
yn meddwl am y peth fel newid rhwng dau edafedd.
Gall hynny fod yn eithaf drud oherwydd yn y bôn yr hyn mae'n rhaid i chi ei wneud yw i chi
rhaid i roi'r gorau i hyn yr ydych yn ei wneud, achub y cyflwr y edau yn rhedeg, a
yna newid i rywle arall.
>> Felly, mae pawb yn fath o yn gweld y cymhelliant pam edafedd a
Gallai prosesau fod ychydig yn swmpus?
A oedd gennych gwestiwn?
OK.
Cool.
Unrhyw un gennych unrhyw gwestiynau?
OK.
>> Felly, os byddwn yn cymryd cam yn ôl am eiliad, mae fath o debyg i
arsylwi y gallwn wneud ynghylch llawer o geisiadau ar y we.
Ac mae hynny'n iawn bod llawer ohonyn nhw Nid mewn gwirionedd yn gwneud hynny lawer yn ddefnyddiol
gweithio tu mewn i edau.
Felly, a oes unrhyw un ddechrau ar P gosod saith o gwbl?
Felly, ydych chi eisiau i ddisgrifio efallai rhai o'r rhannau?
Ydych chi wedi gweithio wrth fewngofnodi neu rywbeth fel 'na?
>> GYNULLEIDFA: Na
>> KEVIN Schmid: OK.
Peidiwch byth â meddwl.
Mae'n ddrwg gennym.
Ond yn y bôn, yn y P set, rydych yn yn mynd i fod yn gwneud llawer o fath o
ymholiadau i gronfa ddata i gael rhywfaint o gwybodaeth gan y gronfa ddata.
A beth yw eich cod yn mynd i gael ei wneud, beth yw'r broses Apache neu
bod edau Apache yn mynd i fod yn ei wneud er ei bod wedi cysylltu â'r
gronfa ddata yn ei fod yn fath o yn mynd i fod yn eistedd yno ac mae'n mynd i fod yn
aros am y gronfa ddata i ateb.
>> Nawr nid allai fod yn swnio fel 'na yn fawr ymdrin oherwydd bod y gronfa ddata ar eich
Offer CS50, dde?
Ond mae rhyw fath o rwydwaith Latency yno oherwydd erbyn hyn ar y we
gweinydd wedi cyhoeddi ei gais ei hun i y gronfa ddata i gyfathrebu â'r
cronfa ddata, ac yna cael y gwybodaeth yn ôl.
Felly, erbyn hyn mae'n debyg yn dda aros i mi, rwy'n mynd i fynd cael rhywbeth oddi wrth y
cronfa ddata ac yna mae 'na llawer o aros digwydd.
A yw hynny'n gwneud synnwyr?
>> Ac ar gyfer rhai pethau nid yw mor ddrwg.
Os 'i jyst wedi i, er enghraifft, cof mynediad, nid yw hynny'n hoffi
ofnadwy latency I / O.
A phan yr wyf yn dweud, I / O latency, yr hyn yr wyf i'n gyfeirio at yn debyg i unrhyw fath o fel
allbwn mewnbwn.
Ond i gael mynediad at ffeil ar y ddisg, fel os oeddwn i eisiau i wasanaethu HTML statig
ffeilio a oedd ar fy nhudalen we neu rhywbeth fel 'na, yr wyf yn fath o yn rhaid i
stopio am ychydig, yn darllen y ffeil i mewn o'r ddisg, ac yna yn
broses honno Im 'yn aros.
Dydw i ddim yn gwneud gwaith defnyddiol.
>> Nid yw hyn yn wir am bopeth, ond mae'n yn gyffredin mewn ceisiadau fel P set
saith ac mae llawer o geisiadau nad ydych chi'n
mewn gwirionedd yn gwneud llawer o feddwl.
A phan rwy'n dweud meddwl, yr wyf yn golygu fel gwaith cyfrifiadurol.
Gallai gwaith Felly cyfrifiadurol fod yn rhywbeth fel, dyweder, yr oeddech am
ysgrifennu gweinydd gwe mai dim ond gyfrifo y nifer Fibonacci nfed.
Nid yw hynny'n swnio fel arbennig o weinydd y we hwyl.
Fel Ni fyddwn yn disgwyl y safle hwnnw i fod yn y Facebook nesaf, ond dyna'r peth
math o waith cyfrifiadurol.
>> A allwch chi ddychmygu yn lle hynny gyda rhyw fath arall o ddiddorol
gwaith cyfrifiadurol.
Gadewch i ni ddweud eich bod yn ysgrifennu rhywbeth bod cyfrifo raddau
gwahanu rhwng dau o bobl neu rywbeth fel 'na.
Felly, sy'n gwneud cynnwys rhyw fath cyfrifo, dde?
A hyd yn oed wedyn, i wneud eich bod yn dal i gael i wneud llawer o aros am efallai
rhaid i chi holi cronfa ddata i edrych i fyny pwy sy'n ffrindiau gyda pwy neu
rhywbeth fel 'na.
Felly mae y math hwnnw o syniad gwaith cyfrifiadurol.
A yw hynny'n gwneud synnwyr?
A oes unrhyw un gennych unrhyw gwestiynau?
>> O, a Amcana rhoi sgwrs gweinyddwyr yno oherwydd sgwrs gweinyddwyr yn fath o
enghraifft dda arall o hyn.
Nid yw gweinydd sgwrs oes gan i wneud llawer o feddwl.
'I jyst yn gorfod aros i bobl anfon negeseuon ac yna pan
ydynt, anfonwch hwy.
OK?
>> Felly, dim ond i ailadrodd eto, Apache a gweinyddwyr y we tebyg fel 'na fforc a
llawer o edafedd a phrosesau sy'n gall fod yn fath o wastraffus.
Felly, yr wyf yn dyfalu y cwestiwn a allai ddod o hynny yn oes angen i ni gael
edafedd a phrosesau lluosog?
Beth os ydym yn unig cael un?
>> Felly, gadewch i fath o beintio darlun o'r hyn y byddai hyn yn edrych fel.
Felly, gadewch i ni yn defnyddio dim ond un edau.
OK?
Felly dychmygwch hyn gydag un edau.
>> Gadewch i ni dybio nad ydym yn ei wneud mewn gwirionedd bod llawer yn ddefnyddiol - a phan rwy'n dweud
ddefnyddiol, yr wyf yn golygu gwaith cyfrifiadurol -
mewn edafedd lluosog hynny o'r blaen.
Felly, gadewch i fath o atgyfnerthu popeth i mewn i un edau.
Felly beth os oedd gennym un edau math hwnnw o ychydig yn mynd o gwmpas yn y ddolen a
gyson gwiriadau gwneud rhywbeth newydd yn digwydd.
Felly, er enghraifft, rhywbeth yn digwydd newydd Gallai olygu Cefais rhywbeth yn ôl o
y gronfa ddata, neu rywun a anfonwyd mi cais HTTP newydd.
Felly dyna'r math o ddigwyddiadau hynny'n digwydd, dde?
>> Ac yna beth allaf ei wneud pan fydd y rhai newydd i bethau ddigwydd yn yr un edau
i weithredu, mae hyn yn un edau o gweithredu, gallaf alw rhywfaint cod sy'n
Byddai trin y peth penodol.
Felly, er enghraifft, os wyf yn cael rhywbeth yn ôl o'r gronfa ddata, gallwn redeg fy
rhan fach cyfrifiadol ohoni sydd mewn gwirionedd dim ond yn paratoi y peth i
hanfon yn ôl i'r defnyddiwr.
Felly, mae y math hwnnw o gwneud synnwyr?
>> Ond beth yw'r gwirionedd goblygiadau hyn?
Iawn?
Oherwydd ein bod wedi ysgrifennu llawer o god hynny -
a Im 'jyst yn mynd i neidio ymlaen yn y sleidiau os yw hynny'n iawn.
Felly, os nad oes gwahaniaeth gennych, Im 'jyst mynd i gymryd cam yn ôl.
Felly, y math hwn o beth yn a elwir yn ddolen digwyddiad.
OK?
Ac mae'n fath o sylfaenol syniad y tu ôl Node.js.
>> Felly beth Node.js sydd mewn gwirionedd yn ei wneud fel y we gweinydd yn mae yna edefyn sengl
bod yn y bôn yn mynd o gwmpas mewn cylch fel tra bod un math o dan
y cwfl Node.js sy'n gyson gwirio, wnaethon ni yn derbyn pethau newydd?
Ac yna bydd yn rhedeg trin eich bod yn gosod i fyny.
Ond yn gwestiwn da i ofyn yw, sut y gallwn wneud i hyn ddigwydd
gyda phethau sy'n bodoli eisoes?
>> Felly, yr wyf yn rhoi llinell o god C yma y yn y bôn yn edrych fel ei fod yn agor
ffeil, dde?
Yr wyf yn Mae hi jyst wedi dod allan gyda albwm.
Felly, roedd rhaid i mi agor ei ffeil newydd.
Felly, y ffordd y mae ein cod C ar gyfer gweithredu -
ac yr wyf yn dyfalu y rheswm Dewisais ffeiliau yn oherwydd mae hyn yn fath o graddau
o'r gwaith I / O yr ydym wedi ei wneud yn C yn ymdeimlad fod yna allbwn mewnbwn.
Felly, rydym yn galw cod hwn sy'n mae hyn yn f agored.
Ac yna ar y llinell nesaf ein rhaglen, gallwn yn awr yn gweithio gyda f.
>> Felly, byddai hyn yn enghraifft o rywbeth dyna fel cydamserol neu
blocio oherwydd ar y llinell gyntaf yno rydym yn aros nes i ni
yn cael y ffeil agored.
Felly, ar yr ail linell, rydym yn gwybod ein bod yn gallu gweithio gyda f, ond mae hyn yn golygu bod
na ellir ail linell yn rhedeg mewn gwirionedd nes bod y llinell gyntaf yn cael ei wneud.
A yw hynny'n gwneud synnwyr?
>> Felly, byddai hyn yn ddrwg i roi mewn trin digwyddiad.
A'r rheswm am hynny yw bod y math hwn o aros, dde?
Felly, byddai hyn yn mynd yn ôl â ni yn ôl at yr un peth.
Ac yn awr ni fyddem hyd yn oed y budd edafedd lluosog neu
prosesau oherwydd ein bod yn cael un edau yn Node.js.
A yw hynny'n gwneud synnwyr i bawb?
>> GYNULLEIDFA: Aros.
Felly beth yw'r newydd?
>> KEVIN Schmid: O, felly ie.
Felly, yr wyf i'n mynd i gyrraedd y cyfnewid.
OK.
Felly beth os oedd gennym rywbeth oedd yn edrych fel hyn?
Felly beth os nawr rwy'n ei olygu f agor ychydig?
Felly, yr wyf i'n pasio yn yr un dwy ddadl fel o'r blaen.
Rwy'n dal i wrth fy modd y gân newydd bod hi a ddaeth allan gyda.
Ond dw i'n pasio trydydd peth sy'n yn amrywio o'r enw cod.
>> Ond beth yw cod mewn gwirionedd yn y cyd-destun hwn?
A yw'n fel newidyn C rheolaidd?
Mae'n swyddogaeth, dde?
A allai fod yn ychydig yn rhyfedd oherwydd Rwy'n mewn gwirionedd yn hoffi hyn basio
gweithredu mewn swyddogaeth arall.
>> Felly, un neu ddau o bethau i'w nodi ynglŷn â hyn.
Un, dydw i ddim yn galw mewn gwirionedd y swyddogaeth cod.
Felly, nad ydych yn gweld cod gyda'r chwith paren, paren dde.
Im 'jyst yn pasio mewn cod.
Ac yn C, yr hyn y byddai hyn yn ei wneud mewn gwirionedd yn rhoi pwyntydd i mi y gwir
cod, ac yna gallai hyn ei redeg.
Ond dim ond meddwl am y peth fel eich bod yn gan fynd heibio i'r cod i redeg pan
y ffeil yn cael ei agor.
>> Ond beth mae hyn yn ei olygu yw bod bellach yn y gweddill fy rhaglen a allai wneud
pethau eraill, gall barhau i wneud eraill pethau er ein bod, nid mewn gwirionedd yn aros, ond
dim ond cael yng nghefn ein pennau sy'n pan fydd ar agor, yn rhedeg y ffeil sy'n
cod ar y brig.
A yw hynny'n gwneud synnwyr?
>> Ac yn awr y syniad y tu ôl Node.js yw y y cod yn y pethau do gyda f
Dylai rhan fod yn eithaf fyr ac yn syml ac yn syml ac nid mewn gwirionedd yn
computationally dwys iawn.
Efallai y bydd yn rhaid i agor ffeil arall, ond dylai hefyd fod yn eithaf cyflym
oherwydd dylai fod dim ond dweud gwneud f arall agor ac yna galw y cod eraill.
>> Felly, dim ond i fod yn gwbl glir, mae'r f agor sy'n gwneud y gân Katy Perry newydd
mp3 ei wneud, mae hynny'n mynd i 'n bert llawer yn dychwelyd ar unwaith.
Ac yna gallwn dim ond parhau i wneud pethau eraill gan fod yr holl sydd bellach yn f
alwad agored yn ei wneud yw dweud wrth y bôn y cod agored f sylfaenol agor y ffeil
a phan fyddwch chi'n ei wneud agor y ffeil neu pan fyddwch yn ei gael yn ôl,
yna rhedeg y cod hwnnw.
Ond nid yw'n mewn gwirionedd yn rhedeg y cod hwnnw.
A oedd gennych gwestiwn?
>> GYNULLEIDFA: Rydych yn ymddangos i awgrymu rhai adegau sy'n ychwanegu computationally
cod dwys fath o dorri'r [Anghlywadwy] system gyrru.
[Anghlywadwy]?
>> KEVIN Schmid: Mae hynny'n gwestiwn mawr.
Felly, yr wyf mewn gwirionedd yn cael enghraifft o sut gallech integreiddio computationally
cod dwys mewn ychydig.
Felly, pan gawn at yr enghreifftiau cod, Byddaf yn sicr o dynnu bod un.
A yw hynny'n iawn?
Diolch yn fawr.
>> Beth oedd eich enw?
>> GYNULLEIDFA: Aaron.
>> KEVIN Schmid: Aaron yn dod i fyny yn iawn pwynt da, sef bod os ydw i wedi
rhyw cod computationally dwys mewn y gwneud pethau gyda f ran, gweddill
Ni all fy rhaglen yn rhedeg ac ni all wrando ar gyfer ceisiadau neu unrhyw beth newydd nes bydd yr holl
bod pethau wedi gorffen.
Felly, os ydw i'n ysgrifennu cod Nôd yn gyffredinol oni bai ein bod yn gwneud rhywbeth fel fy mod i'n mynd
i awgrymu yn ddiweddarach pan fyddwn yn edrych ar y enghreifftiau cod, rhaid i mi fod yn siŵr bod
Nid yw fy cod yn clymu i fyny hwn dolen digwyddiad.
A yw hynny'n gwneud synnwyr?
OK.
Cool.
>> Felly Node.js yn cynnig fframwaith hwn y gallwch adeiladu y digwyddiad ei yrru
gweinyddwyr gyda.
Felly mae wedi mathau hyn o asynchronous nad ydynt yn blocio I / O lyfrgelloedd, tra
llyfrgelloedd C safonol yr ydym wedi bod yn gweithio gyda, fel os ydych yn unig
yn eu defnyddio yn yr un modd ag y mae gennym bod yn eu defnyddio gyda'r f agor ac yn
pethau, y rhai yn cael eu blocio oherwydd rhaid i chi aros am mewn gwirionedd yn
y ffeil i agor.
>> Ond Node.js rhoi i chi hynny ac mae'n yn y bôn yn clymu i mewn i Google V8
JavaScript peiriant sef y rheswm bod Chrome mor gyflym yn prosesu
JavaScript oherwydd ei fod yn mae gan y peiriant V8.
Felly, yr wyf yn gwybod bod yn swnio fel un o'r rhai WWDC cynadleddau datblygwr peth
lle maent yn dim ond taflu criw o'r pethau rhif llythyren ar gyfer proseswyr
ac yn dweud hyn yn mor oer.
Ond mae'n oer eu bod wedi gwneud hyn oherwydd JavaScript -
neu efallai os nad ydych yn gyfarwydd â JavaScript eto oherwydd nad ydym wedi cael
y darlithoedd arno -
ond JavaScript yn dehongli iaith.
>> Ac mae hyn yn bwynt pwysig hefyd.
Felly, mae'n bwysig ein gwefan gweinyddwyr fod yn gyflym, dde?
Ac os ydym yn unig yn rhedeg JavaScript cod sy'n ei ddehongli gyda dim ond
unrhyw hen cyfieithydd gallai fod yn araf.
Fudd-daliadau fel Node o gael y cyfieithydd V8 super gyflym.
Ac nid wyf yn gwybod os ydynt yn enwi ei oherwydd bod y slap V8 yn y talcen
peth, ond OK.
>> Felly, yr wyf wedi paratoi rhai enghreifftiau yn URL hwn.
Ar ôl y seminar, rwy'n fath o yn mynd i siarad am sut y gallwch gael set Nôd
i fyny, ond am y tro, Fi jyst fath o eisiau i gerdded trwy rai enghreifftiau cod.
Felly, os ydych am i ddilyn ar hyd, yr holl cod ffynhonnell ar gael yno.
OK?
>> Felly, byddaf yn gadael URL hwn i fyny am ychydig.
Ac yna Im 'jyst yn mynd i newid i mewn i'r derfynell.
A yw pawb yn dda gyda URL hwn?
Felly, yr wyf i'n mynd i newid dros i fy terfynell yma.
>> Felly dyma y cod sy'n Mae gen i ar gyfer heddiw.
Pam na wnewch rydym yn dechrau gyda simpler.js ffeilio?
Y peth arall yw bod hyn i gyd cod yn mynd i gael ei ysgrifennu yn
JavaScript a allai chi neu Efallai nad ydynt yn gyfarwydd â hwy.
Amcana gwpl o bethau yw bod llawer o god JavaScript yw'r math o
cystrawen a strwythur yn debyg iawn i C, er mwyn i chi fath o ei godi fel
chi fynd ymlaen.
Rwyf wedi ceisio i ysgrifennu llawer o'r cod cychwyn ar gyfer hyn mewn ffordd sy'n
yn debyg i C fel ei bod yn ychydig yn fwy darllenadwy.
Ond wrth i ni symud ymlaen, byddaf yn arddangos rhai o'r i'r ychwanegol
nodweddion JavaScript bod yn fath o oer.
>> Ond gadewch i ni edrych ar y rhaglen sampl.
Amcana popeth wedi torri i ffwrdd yno.
Im 'jyst yn mynd i atgyweiria bod go iawn gyflym os yw hynny'n iawn ai peidio.
Nid wyf yn gwybod beth y mae hyn yn mynd i'w wneud.
A yw hynny'n ychydig yn well?
Allwch chi weld y var a stwff?
OK.
>> Felly, y llinell gyntaf yn debyg i'r JavaScript fersiwn newidyn
datganiad.
Felly, dim ond er mwyn tynnu sylw at yr hyn y byddai hyn yn edrych fel yn C. Felly, mae hyn yn union fel
i mi ddweud mynegai yw tri neu rywbeth fel 'na.
Felly doeddwn i ddim yn nodi'r math.
JavaScript yn cael math, ond mae'n teipio ddynamig iawn o ran eu natur, felly
nid oedd yn darparu unrhyw fath o fath arno.
Felly, 'i jyst wedi var.
Dyna fel amrywiol.
OK?
>> A dwi'n galw hwn HTTP amrywiol.
Ac ar fy ochr dde, yr wyf yn cael y mynegiant yr wyf am ei roi mewn HTTP.
Ac mae hyn yn dweud angen HTTP.
Felly, mae hyn yn fath o debyg i'w cynnwys.
Mae'n ychydig yn fwy fel pwerus na cynnwys yn yr ystyr sy'n cynnwys
Byddai jyst adysgrifia a bastio 'r pennawd ffeil ar gyfer y prototeipiau swyddogaeth neu
beth bynnag gyda'r diffiniadau math.
Ond mae angen yn mynd mewn gwirionedd i fynd â ni i'r cod.
>> Felly, gallwch chi feddwl am y peth fel mewnforio rhai cod.
Felly, rhywle yn y modiwl Node.js system neu beth bynnag, mae ganddynt hyn i gyd
Cod gweinydd HTTP felly Im 'jyst ei lawrlwytho ar gyfer fy hun
defnydd personol yn y rhaglen hon.
OK?
>> Felly, yna mae gen swyddogaeth hon fy mod wedi ysgrifennu.
Ac yn sylwi nad oedd rhaid i mi nodi y math dychwelyd neu math y
dadleuon eto.
Felly, math o deipio yn rhydd yn y math hwnnw o synnwyr.
Mae dau dadleuon y mae'n ei gymryd i mewn, y cais ac ymateb.
Felly dyna gysyniadol fath o fel cyfarwydd o'r darlun a gawsom
ar y sgrin blaen gan rydym yn cael y cais hwn yr ydym yn
gael gan y defnyddiwr.
Ac yna mae gennym ymateb a gallwn ysgrifennu pethau i.
>> Felly, y llinell gyntaf o hyn yn res.writeHead 200 a yna mae hyn yn
plaen testun math o gynnwys.
Felly, gadewch i ni darnau hyn ar wahân ychydig.
Felly, gadewch i ni dim ond yn canolbwyntio ar res.write am ychydig.
Felly ysgrifennu yn y bôn, ac ysgrifennu pen, yn unig ffyrdd o fath o ysgrifennu
bethau at yr ymateb.
OK?
Felly ysgrifennu pen, os oes unrhyw un yn cofio o'r ddarlith HTTP, a ydych yn guys
cofio penawdau yn y ben y peth HTTP?
Felly pam nad ydw i'n jyst demo penawdau go gyflym.
A fyddai hynny'n ddefnyddiol?
Neu a ddylem yn unig fath o -
OK.
Cadarn.
>> Felly, pan fydd eich porwr yn mynd i google.com neu rywbeth fel 'na,
mae mewn gwirionedd ychydig yn fwy -
mae hyn yn debyg i gyfrinach -
mae fel ychydig mwy o wybodaeth sy'n dod drwy'r bibell na dim ond
chwilio bach a phopeth.
Felly, er mwyn dangos i chi hyn, dw i'n mynd i ddefnyddio rhaglen o'r enw Curl.
OK?
Felly, mae hyn yn rhywbeth y gallwch redeg ar eich llinell gorchymyn Mac OSX neu yn y
offer neu beth bynnag.
Ac felly os wyf yn Crychu HTTP google.com, Dw i'n mynd i weld y HTML.
Ac mae hyn yn, a bod yn deg, dim ond y HTML y math hwnnw o yn dweud wrthych i
ailgyfeirio i www os nad yw eich porwr yn trin yn awtomatig
ailgyfeiriad.
>> Felly, mae hyn yn unig HTML, ond rwy'n mynd i ychwanegu at Crychu cysylltnod hwn Tynnaf eich sylw.
OK?
Ac mae hyn yn mynd i ddangos 'm' r penawdau.
Felly, mae hyn hefyd yn wybodaeth a ddaw thrwy pan fyddaf yn cael yr ymateb hwn.
OK?
>> Felly, ar y brig, byddwch yn gweld hyn HTTP 301 symud yn barhaol.
Ac mae hyn yn fath o bwysig oherwydd mae hyn yn cyfeirio at y cod statws.
Felly mae'r 301 yma yw'r cod statws, sydd yn y bôn yn unig yn gyfanrif
sy'n dweud wrth y porwr neu bwy bynnag sy'n darllen hwn, os ydych yn esgus bod
ydych yn porwr ac rydych yn gweld hyn, yn y bôn nawr os ydych yn edrych ar
hynny a byddwch yn gweld 301, byddwch yn gwybod fy mod wedi i wneud rhywbeth arbennig yn seiliedig ar
301, neu rywbeth a ddigwyddodd arbennig yn seiliedig ar y 301.
Felly, mae'n dweud symud yn barhaol.
>> Ac yna, yn y bôn, yr ydym wedi criw o barau gwerth allweddol.
Felly, rydym yn cael y lleoliad yn www.google.com.
Ac yna fath o hyn i gyd bethau eraill, ond yn y bôn, yr hyn y mae'r lleoliad yn
ddywediad yw'r lleoliad newydd ar www.google.com.
Felly nawr os ydych yn mynd i google.com, byddwch yn math o weld y porwr math o Blink
ar gyfer ail ac yna ailgyfeirio i chi i'r dde yn ôl i www.google.com.
Felly, gall yr ymatebion gynnwys penawdau hyn.
>> Ac ychydig o bethau i nodi.
Felly, gadewch i ni ddweud ein bod mewn gwirionedd yn llwyddiannus mewn ymweld â dudalen we.
Felly, gadewch i mi fynd i -
beth yw gwefan dda?
Rwy'n drwg yn meddwl da gwefannau ar y fan a'r lle.
>> GYNULLEIDFA: Wikipedia.
>> KEVIN Schmid: OK.
Gadewch i ni wneud Wikipedia.
Felly dyma Roeddwn yn symud.
Oh aros.
A oedd i?
Ie, yr wyf yn.
OK.
Felly, yr wyf yn rhaid i wneud www.
Felly, yr wyf i'n mynd i wneud www.
Ac fel y gwelwch, dyma holl HTML y byddai'r porwr prosesu
ar gyfer Wicipedia.
>> Ond os wyf yn cadw sgrolio i fyny yma, beth 'n annhymerus' weld ar y brig -
wow, mae llawer o HTML ar Wicipedia -
ond beth y gallaf ei weld ar y brig yma yw y cod statws 200 yn hytrach na'r
301 a welais yn gynharach.
Ac yn sylwi bod ganddo 'n glws OK gyfeillgar drws nesaf iddo.
Felly, mae hyn yn debyg i'r cod statws da.
>> A yw hynny'n 200 o nifer yn edrych yn gyfarwydd?
Ie oherwydd pan wnes simpler.js, Ysgrifennais 200 yno.
Felly dyna yn y bôn yn dweud yn dweud wrth y porwr neu bwy bynnag yn ceisio mynd i'r
hyn eu bod yn llwyddiannus.
Neu y math hwnnw o ni fel yn llwyddiannus hefyd.
>> Ac mae y math hwn o gystrawen arbennig yn Javascript i ddatgan
map o allweddi hyn fel math o gynnwys a'r gwerthoedd hyn fel plaen testun.
Felly, os ydych yn edrych ar yr ymateb ein bod yn got yn ôl o Wicipedia o'r blaen, -
Rydw i'n mynd i geisio sgrolio i fyny ychydig yn gyflymach -
gennych allweddi hyn fel gweinydd a'r gwerthoedd hyn Apache.
Felly, rydych wedi cael allweddi a gwerthoedd.
A allwch chi nodi hyn yn Nôd beth i'w hanfon yn ôl.
>> Felly, mae hyn mewn gwirionedd yn fath o, mewn rhai ffyrdd, ac mewn rhai ffyrdd nid yw'n
mewn gwirionedd, ond mae'n lefel ychydig yn is na'r cod PHP y gallech fod yn
ysgrifennu ar gyfer P yn gosod saith oherwydd PHP a Apache fath o yn gofalu am rai
o'r pethau hyn i chi.
Yn PHP, gallwch ddisodli'r diofyn ymddygiad drwy ysgrifennu eich penawdau eich hun.
Ond ar gyfer y dibenion hyn, rydym yn cael i ysgrifennu ein penawdau hunain.
>> Felly, mae hynny'n llinell gwneud synnwyr i pawb, mae'r llinell pen ysgrifennu?
OK.
Awesome.
>> Felly, yna beth yr wyf yn ei wneud yw fy mod yn dod i ben yr ymateb drwy ddweud helo byd.
OK.
Ond dim ond swyddogaeth Gelwir cais trafodwr.
Felly, yn awr yr wyf yn rhaid i fath o wneud mewn gwirionedd yn rhywbeth gyda swyddogaeth hon, dde?
>> Felly, yma yr hyn yr wyf yn ei wneud yw mae hyn yn lein sy'n gwneud hafal gweinydd var
HTTP.create gweinyddwr, ac yna yr pasio yn y cais trafodwr.
Felly, mae hyn yn fath o y Nôd ffordd o greu gweinydd.
Ac yn sylwi fy mod yn pasio yn y cais trafodwr.
Felly, mae hyn yn dweud wrth y createServer swyddogaeth yr wyf am i chi i wneud i mi yn
gweinyddwr, a pan fydd y gweinydd yn derbyn ymateb, Fi angen i chi i alw hyn
ofyn am swyddogaeth trafodwr.
OK?
>> Felly llinell honno 'n bert lawer gorffen yn syth.
Felly llinell gweinydd var cael ei wneud yn iawn ar ôl i chi wneud hynny 'n bert lawer.
Yr wyf yn golygu, mae'n rhaid iddo sefydlu rhai mewnol wladwriaeth i yn gwybod y byddai'n rhaid i chi
ffoniwch y swyddogaeth cais trafodwr, ond nid yw'n mynd i eistedd yno a
dweud mae gan y defnyddiwr a anfonwyd mi cais eto?
A yw'r defnyddiwr anfon 'm cais eto?
Felly, nid yw'n bloc.
OK?
>> Felly, beth fydd hyn yn ei wneud yw yn y bôn bellach yn storio pwyntydd i'r cod hwn,
swyddogaeth trafodwr hon cais, ac yna yn rhedeg y cod pan fydd rhywun yn
gwneud cais.
Ac yna rydym yn ei wneud server.listen.
>> Mae'r 1337 mae yn eithaf mympwyol.
Doedd gen i ddim rheswm penodol ar gyfer casglu y rhif hwnnw.
Yr oedd yn gwbl ar hap.
Ond mai dim ond yn pennu'r porthladd.
Felly mae'r rhan fwyaf gweinyddwyr gwe byddwch yn gweld eu bod yn yn defnyddio porth 80 oherwydd dyna fath
o fel y confensiwn.
Felly os wyf yn mynd i rhywbeth fel, Nid wyf yn gwybod, Wikipedia.org,
ac yr wyf yn rhoi colon 8 -
oh wow, ni allwch weld hynny.
Mae'n ddrwg gen i.
Ond os wyf yn gwneud Wicipedia -
'N annhymerus' ysgrifennu yma dim ond fel y mae'n amlwg ar y camera.
Ond os wyf yn cymryd hyn i mewn i borwr gyda colon 80, sy'n nodi ewch i
Wikipedia.org ar porthladd 80.
Felly, mae fel sut y mae'r Unol Daleithiau wedi lluosog borthladdoedd fel lle gallwch llong
bethau i fath o.
Felly, mae fel mynd i'r benodol rhoi ar y gweinydd hwn.
OK.
>> Felly, Fi jyst dewis 1337.
Mae yna amrywiaeth eang o rifau eich bod yn gallu codi.
Nid oedd hynny'n gwbl arbennig.
>> Ond yr hyn yr wyf i'n mynd i wneud yn awr yn Rydw i'n mynd i redeg Nôd.
Gadewch i mi mewn gwirionedd yn mynd i bod un neu ddau llinellau i lawr er mwyn i chi ei weld.
Rydw i'n mynd i wneud Node, ac rwy'n mynd i redeg simpler.js.
A byddwn yn siarad am sut i gael Nod a sefydlwyd yn ychydig.
Ond yn awr mai dim ond rhedeg y gweinydd.
>> Felly, un peth y gallwn roi cynnig ac na fydd boed hynny gyffrous yw y gallwn mewn gwirionedd
ceisio cael mynediad iddo yn Curl.
Felly, yr wyf yn gallu ei wneud Curl, ac mae fy peiriant yn llu lleol.
Byddwch hefyd yn gweld hyn yn ysgrifenedig fel hyn weithiau.
Llu lleol a 127.0.0.1 yn garedig o fel eich cyfrifiadur cartref.
Felly, mae fel siarad â eich cyfrifiadur eich hun.
OK.
>> Ac yna gallaf ddweud 1337.
Felly os wyf yn rhedeg y llinell hon o god, mae'n dweud helo byd.
Ac os wyf yn awyddus i weld bod pethau sy'n Roedd testun math o gynnwys plaen neu
beth bynnag, gallwn hyd yn oed roi hyn yma.
Ac yn sylwi ei fod yn yn dweud OK.
Ac yr wyf yn cael plaen testun.
Ac yna mae fath o hyn oll yn arall pethau y bydd Nôd ychwanegu
yno i mi.
Nid yw hyn yn super bwysig.
>> Hynny yw, mae yna rhyw fath o technegol agweddau ar y yn garedig
o cŵl i siarad am, ond dim ond i ddangos chi, yr wyf hefyd yn cael y pŵer i
newid y rhain o gwmpas.
Felly gall Fi jyst ychwanegu bagad o bethau fel 'na.
Ac yna yn awr, os wyf yn edrych yn fy allbwn, bydd yn hynny.
Felly penawdau hyn yn golygu pethau penodol i borwyr a phethau fel 'na.
>> A gall penawdau yn y bôn yn dweud porwr sut i ymateb i rywbeth.
Os ydych chi wedi clywed erioed o 'cookies' o'r blaen, neu os ydych wedi bod yn flin erioed
gan dudalen we gosod cwcis, neu droi ar floc cwci neu
rhywbeth fel 'na.
Gallwch chi mewn gwirionedd yn gosod cwcis yn y penawdau hyn.
Felly, maent yn dweud porwr sut i ymddygiad mewn rhai achosion.
OK.
>> Felly dyna oedd simpler.js.
A oes unrhyw un gennych unrhyw gwestiynau ar y ffeil cod ffynhonnell?
OK.
Cool.
>> Felly, gadewch i ni gael gwared ar y r o'r ac edrych ar simple.js.
Felly, mae hyn yn 'n bert lawer yr un rhaglen.
Fi jyst ysgrifennu ei fod yn ychydig yn wahanol oherwydd roeddwn i eisiau i ddatrys o amlygu
rhai nodweddion o JavaScript.
>> Felly, yn sylwi bod y cais trafodwr swyddogaeth wedi diflannu yn llwyr.
Oh yep, oedd gennych gwestiwn?
>> GYNULLEIDFA: Yeah, y dadleuon sy'n cael eu pasio i'r
swyddogaeth, beth ydynt?
>> KEVIN Schmid: Felly, y rhai yn JavaScript gwrthrychau.
Yn y ddogfennaeth Node.js, mae'n y bôn yn dweud pa ddulliau yn
sydd ar gael ar eu cyfer.
Rydym yn unig yn digwydd i gael y mynediad i dull hwn a elwir yn pen ysgrifennu a diwedd
a phethau fel 'na.
Ond mae criw cyfan mwy o ddulliau.
>> Ac er enghraifft, fel un ohonynt yn arbennig ar rec, gallwch chi ei wneud
rhywbeth fel rec.method a fydd yn dweud wrthych p'un a yw'n cael HTTP neu
Ceisiadau ar ôl HTTP a pethau fel 'na.
Felly mae pob math o wahanol eiddo, ond maen nhw'n ddau
JavaScript gwrthrychau, ac maent yn rhaid swyddogaethau ynghlwm wrthynt eich bod yn
gallu ysgrifennu pethau i.
OK?
>> Felly, yn sylwi bod cais trafodwr wedi mynd yn llwyr.
Ond mae'r cod a oedd gennyf yn gais trin yn dal i fod yno.
Yr wyf yn dal i gael res.writeHead hwn ac yr wyf yn dal i gael res.end hwn.
A beth mae hyn yn enghraifft o mewn JavaScript yw syniad hwn o
swyddogaeth dienw.
a dienw yn debyg i enw addas ar ei gyfer gan ei fod nid yn llythrennol yn
gael enw.
Does dim cais swyddogaeth triniwr mewn 'na.
>> Nid oes gan enw, ond mae'n dal i yn cymryd ddadl.
Felly, yr wyf yn dal i got rec a res.
Ac yr wyf yn dal i gael y cod.
Mae hyn yn berffaith iawn JavaScript cod.
Felly gallaf ddatgan swyddogaeth heb rhoi benodol enw.
Mae'n ychydig yn ddryslyd ar y dechrau.
Mae rhai pethau defnyddiol fel y gallwch ei wneud gyda
swyddogaethau dienw hyn.
A oes unrhyw un gennych unrhyw gwestiynau am hyn, neu a yw'n iawn yn unig i, am y tro,
math o ychydig derbyn ei fod bydd yn gwneud yr un peth?
Yep?
>> GYNULLEIDFA: A swyddogaethau yn gyntaf dosbarth yn JavaScript?
>> KEVIN Schmid: Maent yn gyntaf dosbarth yn JavaScript.
A dim ond yn gwybod bod cysyniadau hyn o pasio mewn swyddogaeth ddienw fel
hyn yn berthnasol i'r JavaScript eich bod Gall ysgrifennu yn eich prosiect terfynol ar gyfer
y porwr gwe hefyd.
Felly, er enghraifft, yn y Javascript yn eich porwr, mae hefyd braidd digwyddiad
gyrru yn yr ystyr bod yr hyn yr ydych chi helpu cael yw pan fydd y defnyddiwr yn clicio hyn
botwm, yr wyf am i chi redeg y cod hwn.
>> Felly, mae'n yr un math o syniadau y ochr y cleient pan fydd cliciwch llygoden neu maent yn
llygoden dros rai ddelwedd ar eich tudalen ar y we, yn rhedeg y cod hwn.
Gall fod yn berthnasol i gweinyddwyr.
Felly dyna fath o fel y cyffrous rheswm pam JavaScript yn wirioneddol
bobl addas neu ryw meddwl ei fod yn iaith sy'n addas ar gyfer y math hwn o
gweinydd gyrrwr digwyddiad oherwydd eich bod wedi swyddogaethau dienw hyn.
Mae gennych yr holl syniad o y cod asynchronous.
OK.
Unrhyw un gennych unrhyw gwestiynau?
>> OK.
Felly dyna oedd simple.js.
Felly, gadewch i ni edrych ar un yn fwy neu gwpl mwy.
Felly mae hyn yn sleep.js.
Felly, a yw unrhyw un yn gyfarwydd â y C swyddogaeth cysgu?
O efallai un o'r darlithoedd cynharach neu rywbeth fel 'na?
>> Felly, yn y bôn, gallwch basio i mewn Rwy'n credu bod nifer o eiliadau neu os ydych yn defnyddio U
gysgu nifer o filfedau eiliad neu nanoseconds.
Ac yn y bôn, bydd y rhaglen yn stopio rhedeg am y swm hwnnw o amser.
Iawn?
Ac yna bydd yn deffro yn y pen draw ac yna bydd yn jyst parhau i gynnal
y rhaglen.
>> Felly gweinydd hwn math o yn rhoi argraff o gysgu.
Felly, yn sylwi bod gennym yr un res.writeHead 200 gyda'r pennawd fel
o'r blaen, ond yna rydym yn galw hyn swyddogaeth a elwir yn terfyn amser a osodwyd.
Goramser a osodwyd ar gael mewn hefyd eich porwr gwe Google Chrome
neu Safari neu beth bynnag.
Ac yn y bôn yr hyn y mae'n ei wneud yma yn ei fod yn cymryd mewn swyddogaeth.
Rhybudd, unwaith eto, ei fod yn swyddogaeth dienw.
Felly dyna fath o oer oherwydd ein bod yn gan ddefnyddio swyddogaeth dienw o fewn
swyddogaeth dienw sy'n Gall fod ychydig yn rhyfedd.
>> Ond mae'n cymryd y swyddogaeth, sydd yn yn y bôn yn dweud - a'r modd y mae hyn
gweithio mewn 5,000 o milieiliadau, yr wyf am i chi weithredu y swyddogaeth sy'n
dim ond yn dod i ben yr ymateb ac yn ysgrifennu hey.
Felly, mae hyn yn rhoi'r argraff o fel cysgu, ond mae'r ffordd y mae hyn mewn gwirionedd yn
gweithio yw byddwn yn rhedeg trwy y llinell hon yn gyflym iawn.
Rydym yn unig yn ysgrifennu rhywbeth.
Ac yna byddwn hefyd yn rhedeg drwy y llinell hon yn gyflym iawn.
Felly, nid ydym yn mynd mewn gwirionedd i aros am bum eiliad.
Rydym yn jyst yn mynd i redeg cod hwn ar unwaith.
>> Ac yna mae, eto, mae hyn ychydig dolen digwyddiad fod gan y peth hyn
cofrestrau sy'n yn y bôn yn unig yn mynd o gwmpas yn gyson mewn cylch
ac edrych ar y cloc mewn un edau a dweud, mae gan bum eiliad
heibio eto?
Ac yna pan mae'n gweld bod yr ail llaw wedi symud fel pum eiliad neu
beth bynnag, yna mae'n deffro i fyny ac yn dweud, oh, beth sy'n rhaid i mi ei wneud?
Oh rhaid i mi redeg y cod hwn.
Ac yna mae'n mynd i rhedeg res.end hey.
>> Felly eto, nid ydym erioed yn aros yma.
Felly, nid yw'n bod cod hwn tu mewn swyddogaeth hon yn mynd i gymryd pum
eiliad i redeg.
Bydd y cod hwn yn rhedeg 'n bert lawer ar unwaith, o leiaf o gymharu â
y pum eiliad yr oeddem yn sôn amdanynt yn gynharach o'r blaen.
>> Felly, dim ond i ddangos hyn ar waith, Gallaf ei wneud Node.sleep.js.
Ac wnes i llanast i fyny rhywbeth?
O bosibl.
Mae'n ddrwg gennym.
Gadewch i ni weld beth y gallwn ei wneud i atgyweiria hon.
OK.
Felly, yn bendant yn defnyddio Node.js.
Im 'jyst yn kidding.
OK.
Dim ond un sec.
OK.
Yr wyf yn gwybod beth ydyw.
>> Felly, y broblem yw bod yn fy tab eraill yma, yr oeddwn yn rhedeg Nôd sydd eisoes ar
yr un cyfeiriad, 1337.
Felly y gwall bod hyn taflu, os ydym yn edrych arno go agos, yn gyfeiriad yn
defnyddio, EADDRINUSE.
Felly, yr wyf eisoes yn defnyddio 1337 yma.
Felly os wyf yn cau hwn i ffwrdd, ac yna yr wyf yn awr geisio rhedeg hyn, gobeithio, mae popeth
yn iawn.
OK.
Felly, gallwch chi dim ond un math peth gwrando ar borthladd ar unwaith.
Byddai ateb arall wedi bod i mi i ddim ond golygu bod rhaglen a gwneud
yn cael ei hoffi 1338 neu rywbeth fel 'na.
>> Ond yn awr o gwsg yn rhedeg.
Felly, gadewch i ni mewn gwirionedd roi cynnig arni yn y porwr y tro hwn am ei fod yn
ychydig iawn o ddiflas i weld mewn terfynell.
Felly, Im 'jyst yn mynd i fynd i'r 127 gyfeiriad eto ar 1337.
Ac os gallwch ei weld -
Nid wyf yn gwybod os gallwch - ond mae fy porwr cymryd, hir iawn iawn
amser i lwytho neu fel bum eiliad.
>> Ac yna ar ôl hynny, mae'n o'r diwedd a ddaeth i ben yr ymateb.
Ac ni allwch ei weld oherwydd y peth yn cael ei symud dros ychydig, ond os byddaf yn gwneud
ychydig yn llai hon, rydych yn gallu gweld y mae'n ei ddweud hey.
Felly, yr wyf yn cael y hey, ond ar ôl pum eiliad.
A gallai fod yn ychydig glanach i weld yma ar y derfynell, felly rwy'n
mynd i wneud -
gadewch i ni wneud i mewn yma -
gadewch i ni wneud Curl y cyfeiriad hwnnw eto gyda'r 1337.
Ac yn union fath o rhaid i mi eistedd yma am bum eiliad.
Ond yn sylwi bod y gweinydd gallu derbyn ymatebion newydd.
Felly mae'n printiau hey.
>> Ac i demo hyn, yn y bôn yr hyn Gallaf ei wneud yn y tab eraill -
felly gadewch i ni ddweud fy mod yn gwneud hyn mewn tab arall, Rydw i'n mynd i wneud Curl a'r un
peth eto.
Ac yr wyf i'n mynd i geisio i roi hwb hyn guys i ffwrdd ar yr un pryd.
Felly, yr wyf i'n mynd i wneud hyn, ac rwy'n mynd i hil dros yma ac rwy'n
mynd i wneud hynny eto.
>> A gadewch i ni ei gwneud yn fel eich bod yn Gellir gweld y ddau ohonynt.
Dyna un printiedig hey a bod un printiedig hey yr holl ffordd ar -
gadewch i ni wneud hynny arbrawf eto.
A dweud y gwir, gadewch i ni ddefnyddio hyn twyllo, os yw hynny'n iawn.
>> 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
y rhaglen hon ar yr un pryd.
Felly, bydd yn rhedeg y rhaglen gyntaf a yr ail raglen yn gyfochrog.
Felly, yn awr os wyf gwasgwch Enter, mae'n mynd i wneud y cais 'n bert lawer
ar unwaith ar yr un pryd.
Felly, gadewch i ni roi hyn ergyd.
>> Felly nawr yn sylwi ei fod yn dweud ddwy broses.
Ac os ydych yn chwilfrydig, bod 27,000 rhif yn y bôn y broses adnabod.
Ac yna yn sylwi, maent hargraffu hey ar yr un pryd.
Nid oedd fel roedd rhaid i ni aros am bum eiliad ar gyfer un ac yna ar ôl hynny,
pum eiliad yn ddiweddarach yn cael yr ail.
Felly, mae hynny'n fath o, mewn rhai ffyrdd, mae'n ddim wir tystiolaeth, ond mae'n
tystiolaeth sythweledol bod nid dim ond fel aros pum eiliad a blocio
yr edefyn gyfan.
OK oer.
>> Felly gofynnodd Aaron gwestiwn yn gynharach y oedd, wel beth os ydym yn gwneud rhywbeth -
Yep?
>> GYNULLEIDFA: Aros.
Sut mae bod yn wahanol i byffer printf, er bod?
Nid yw'n yn awtomatig yn gwneud hynny?
Pam fod rhaid i ni boeni am y peth?
>> KEVIN Schmid: O, allech chi yn dweud bod un mwy o amser?
>> GYNULLEIDFA: Nid yw'n hoffi byffer printf gwneud yr un peth yn union?
>> KEVIN Schmid: Y byffer printf?
>> GYNULLEIDFA: Yeah.
OK.
Nid oedd yn un o'r cwisiau eu bod yn siarad am sut os ydych yn gywir printf
rhywbeth ac yna wedi oedi un yn ail, ac yna mae gennych ei dolen deg
adegau, bydd yn aros deg eiliad a Yna printf popeth at ei gilydd?
>> KEVIN Schmid: O, OK.
>> GYNULLEIDFA: A yw'n gwneud yr un peth yna yn yr achos hwn?
>> KEVIN Schmid: Felly, y cwestiwn yn yn y bôn yn un o'r cyn-cwisiau
neu rywbeth, roedd cwestiwn a yn y bôn, os ydych yn dweud print f 10
pethau ar y tro ac yna cysgu fel yn y broses o argraffu rhai sydd allan,
ar y diwedd am ryw reswm, byddai'n dim ond daflu i lawr y rhai i gyd allan ar y sgrin.
Felly, mae dau fath o wahanol cysyniadau yma.
>> Felly, yr wyf yn dyfalu un peth yw bod, yn yr achos, rydym yn delio â dau wahanol
fath o bobl sy'n gofyn y gweinydd am bethau ar yr un pryd.
A'r rheswm bod y printf math o aros fel 'na ac tomenni i gyd allan
ar unwaith yn fwy cysylltiedig â sut printf fath o -
felly y ffordd printf mewn gwirionedd rhoi ar waith yn y bôn rhaid iddo
siarad â'r system weithredu i ysgrifennu y pethau at y consol.
Felly, nid yw'n dymuno gwneud hynny i gyd pethau ar unwaith pan fyddwch yn dweud printf
rhai llinyn oherwydd gallai hynny chael yn ddrud os mae'n rhaid iddo
gwneud hynny bob tro.
>> Felly, os ydych yn gwneud printf hey, eich rhaglen Efallai na mewn gwirionedd print that
yn union i'r consol.
Gallai fod yn dweud, OK, yr wyf yn ei ysgrifennu.
Ac yna fath o aros i chi i roi ei fod yn ychydig yn fwy cyn mewn gwirionedd yn
ei ysgrifennu allan at y consol.
>> Felly, y rheswm mai dyna oedd yr achos -
ac mae'n fath o anghysylltiedig i'r gysgu -
yw bod y cwsg yn fath o yn unig chwistrellu yno i ddangos
ffaith nad yw'n ysgrifennu mae'n gydamserol.
Ond y rheswm am hynny yw dim ond perfformiad fel nad oes rhaid i chi
gwneud bod llawer o gysylltiadau i y system weithredu.
>> Ond yma, yr hyn yr ydym yn wirioneddol yn ceisio ei wneud gyda hyn peth cwsg yn sioe yn unig
pan mae gennym ddau o bobl yn ymweld y wefan, nid yw'n mynd i roi
nhw mewn llinell lle mae'n mynd i ddweud Mae'n rhaid i mi helpu chi, ac yna pan rwy'n
gorffen yn llwyr eich helpu ar ôl i'r pum eiliad, yna dwi'n mynd i
symud ymlaen i'r person nesaf.
Felly nid gais y person cyntaf yn ei wneud clymu i fyny y ddolen digwyddiad
os yw hynny'n gwneud synnwyr.
>> Ond dyma mewn gwirionedd yn enghraifft o rywbeth a fydd yn clymu
i fyny y ddolen digwyddiad.
Felly dyma swyddogaeth ofnadwy i gyfrifo Fibonacci nfed.
Mae'n llythrennol y ffordd waeth gallwch gyfrifo nifer Fibonacci nfed.
Ac mae hyn mewn gwirionedd yn unig i gydnabod ble y daeth hyn o,
mae mewn gwirionedd -
Yr wyf yn golygu, gallwch roi cynnig i fynd ddod o hyd iddo - ond mae fel blog hir iawn
swydd fod rhywun yn ysgrifennu.
Mae fel un o'r rhai Reddit pethau.
Ond rhywun beirniadu Node.js, a maent yn defnyddio hyn fel enghraifft.
Felly, yr wyf yn fath o eisiau i ddim ond yn dangos i chi dau gwahanol safbwyntiau dim ond i gael
dealltwriaeth gyffredinol o'r cysyniadau tu ôl i'r ddau beth.
>> Ond mae hyn yn cael ei ddewis fel dim ond ofnadwy, computationally ofnadwy aneffeithlon
ffordd dwys i gyfrifo Rhif Fibonacci nfed.
Felly, yn union fel nodyn ochr, pam mae mae'n ofnadwy fel yn un ffordd?
Yep?
>> GYNULLEIDFA: Dywedwch i chi ddechrau gyda 1,000.
1,000 rhaniadau i 999 a 998.
Mae pob un o hyn yn rhannu yn ddau beth.
>> KEVIN Schmid: Iawn.
>> GYNULLEIDFA: Yr holl ffordd i lawr.
>> KEVIN Schmid: Yn union.
Felly, dim ond i ailadrodd ar gyfer y camera, os wyf yn ffoniwch FIB ymlaen fel 1,000 neu rywbeth
fel 'na, nid yw'n amlwg yn llai na neu'n hafal i un, felly dwi'n mynd i
ewch i arall yr achos hwn, ac wedyn dw i'n mynd i alw FIB 999 yn ogystal â FIB 998.
Ac yna 'n bert lawer i gyd gwaith sy'n FIB yn 999 yn
fath o ar y lefel hon.
Os ewch chi lawr, mae hyd yn oed yn fwy yn ddi-waith na hynny, ond os ydych yn unig
meddwl cyfrifiadurol FIB 998 yn cael ni eithaf agos at FIB 999.
Felly ddylem mewn gwirionedd fod ychydig yn fwy glyfar am sut rydym yn fath o ailddefnyddio
hyn, ond nid ydym yn ailddefnyddio pethau hyn o gwbl.
Felly, gallwch chi ddychmygu hyn enfawr, coeden enfawr bod yn unig ofnadwy.
>> Ond beth bynnag, OK.
Felly dyna oedd FIB.
'I jyst yn cymryd amser i'w rhedeg.
Yep?
>> GYNULLEIDFA: [Anghlywadwy].
>> KEVIN Schmid: O, allech chi ailadrodd y cwestiwn?
>> GYNULLEIDFA: [Anghlywadwy].
>> KEVIN Schmid: O felly mae hwn yn cod yn unig sy'n mynd i fod yn fath o ar y
ochr y gweinydd.
Felly, nid yw hyn yn mynd i gael dod o hyd i yn y porwr neu unrhyw beth.
Mae'n bôn yr hyn sydd gennym yw pan y defnyddiwr yma 'n bert lawer yn gwneud
eu cais eto, pan fyddwn yn fath o wneud cais, rydym yn mynd i alw
swyddogaeth hon ar yr ochr gweinydd.
Ac yna byddwn yn cael y canlyniad yn ôl rhag galw y swyddogaeth honno.
Ac yna byddwn yn unig argraffu i'r defnyddiwr.
Felly, nid yw'r defnyddiwr yn wir yn delio gyda swyddogaeth hwn gormod.
>> Oedd bod y cwestiwn?
A yw hynny'n gwneud synnwyr?
OK.
Cool.
>> Felly eto, yr ydym yn gwneud hyn res.writeHead cyfan beth lle rydym yn argraffu
y pennawd.
Ac yna yr wyf yn dod i ben yr ymateb drwy wneud y nifer hud yn FIB 45.
Felly, gadewch i ni jyst hidla gweinydd hwn.
Felly, yr wyf i'n mynd i wneud Nôd fib.js.
Felly nawr fy gweinyddwr FIB yn rhedeg.
>> Ac yna yma, dw i'n mynd i wneud un o'r rhain.
OK?
Felly, Im 'jyst yn mynd i ddweud, Curl.
Felly, mae'n mynd i gymryd ychydig o amser ond gobeithio yn fuan bydd yn gorffen a
bydd yn argraffu y 45ain Fibonacci rhif.
>> GYNULLEIDFA: [Anghlywadwy].
>> KEVIN Schmid: Dylai cael ei wneud 'n bert cyn bo hir.
Felly, dylai gymryd 5-6 eiliad.
Nid wyf yn gwybod mai dim ond V8 yn super gyflym, ond mewn unrhyw achos, mae hwn yn
enghraifft fer iawn ac yn bwrpasol inelegant o heb fod yn ddibwys
cyfrifiant.
Felly, ar ôl ychydig, mae'n cael hyn.
>> Ond yn awr, beth os wyf yn gwneud yr un math o arbrawf fel o'r blaen lle yr wyf yn gwneud
dau gais ar yr un pryd?
Felly dyma dw i'n mynd i Curl ar y cyfeiriad hwnnw, ac rwy'n mynd
i wneud Curl arall.
A chofiwch, pan fyddwn yn gwneud hyn ar gyfer y cysgu gweinydd, pan fyddwn yn y bôn wedi ei
ar ôl pum eiliad, maent yn 'n bert llawer yn dod yn ôl i'r dde
o gwmpas yr un pryd.
Felly nid ei glymu i fyny yn arbennig.
>> Ond gadewch i ni roi cynnig arni nawr.
Iawn, felly rydym yn cael ein dwy broses.
Cofiwch dyna'r broses IDs.
Mae hyn yn mynd i fod ychydig yn lletchwith wrth i ni stondin.
Felly, gadewch i ni aros yma ac aros.
>> Felly, dylai un ohonynt yn dod yn ôl ar ôl ei debyg -
Iawn, felly un ddaeth yn ôl.
Ond yna, pam nad oedd yr ail un yn dod yn ôl eto?
Yep?
>> GYNULLEIDFA: Ni all y gweinydd wneud unrhyw beth tra ei fod yn cyfrifiadurol y rhif hwnnw mawr.
>> KEVIN Schmid: Iawn.
Felly, roedd yr ymateb yn dim ond bod y gweinydd wir ddim yn gallu gwneud unrhyw beth tra
mae'n cyfrifiadurol y rhif hwnnw Fibonacci.
Felly, yn awr Fi jyst got fy dau beth yn ôl.
Ond yr wyf yn dyfalu yn unig i feddwl am y cod ychydig yn fwy, sut mae'n gweithio
a phopeth.
>> Felly swyddogaeth hon yma yw'r cod sy'n Rydw i wedi dweud wrth y gweinydd hwn i redeg pan fydd yn
derbyn cais sy'n dod i mewn newydd.
Felly, 'i' jyst yn mynd i redeg drwy hyn cod cyfan, ac yna mae'n mynd i fynd
Nôl i ddolen digwyddiad ac yna parhau gwirio ar gyfer digwyddiadau newydd.
Felly, yn y bôn yr hyn yr ydym wedi digwydd yw'r gweinydd yn
gwrando am bethau newydd.
Y person cyntaf yn gofyn am yr hyn yw 45.
Rydym yn cynnal y cod hwn ei gyfrifiannu.
Mae'r côd hwn yn cymryd tua phum i chwe eiliad i redeg.
Yna rydym yn mynd yn ôl at y ddolen digwyddiad a gwirio ar gyfer ceisiadau newydd.
>> Felly, mae hyn yn enghraifft o sut, os ydych yn rhaid i bethau sydd mor a elwir yn cyfrifiannu
rhwymo, neu ddefnyddio llawer o cyfrifiannu, Nid yw ynni, ond fel yn
computationally dwys -
Amcana un peth i'w ddweud am hyn yw bod y swyddogaeth hon yn ei wneud yn llwyr,
ar gyfer y rhan fwyaf, 'n bert hawl gwaith defnyddiol.
Mae'r amser cyfan bod y alwad yn ôl swyddogaeth yn rhedeg, yr oedd yn eithaf
llawer treulio'r rhan fwyaf o'i amser yn cyfrifiadura rhif sy'n Fibonacci nfed.
>> Ond rydym dim ond un edau i ddelio â nhw.
Yn y model Apache, pan fydd dau berson gwneud y cais i gael FIB 45, rydym yn
fyddai wedi cael dau edafedd gwahanol.
Ac yna swydd y system weithredu yn byddai lefel defnyddiwr wedi cael, neu
cod sy'n rheoli'r edafedd, byddai i wedi bod i sleisio bod hyd ar y
CPU, neu hyd yn oed os ydych wedi cael CPUs lluosog, dosbarthu yn gyfartal ar draws y CPUs
fel eu bod yn y ddau gorffen yn fras ar yr un pryd.
>> Felly, dim ond i ddangos i chi sut y gallwn ddatrys o'r canlynol - ac nid yw hwn yn gyfanswm perffaith
ateb, ond math o sut y gallwn gwneud yn dod yn ôl yma a gwneud
ychydig yn well.
Felly, yr hyn yr wyf wedi yma yn rhaglen o'r enw FIB C. Ac mae hyn yn defnyddio bôn
un arall o fodiwlau Nôd o'r enw Mae'r Modiwl Broses Plant.
Felly, yr wyf wedi cynnwys bod ar y math uchaf o fel byddwn yn gwneud punt yn cynnwys
process.h plentyn neu rywbeth.
Yn awr yr wyf yn cael mynediad at y newidyn CP sydd wedi fy holl functionality.
>> Felly, beth dw i'n ei wneud yn yr ymateb hwn trin yw fy mod yn rhedeg y rhaglen hon
dot slaes FIB 45.
Felly, yr hyn yr wyf wedi ei wneud - a Im 'jyst yn mynd i gamu allan o'r rhaglen hon ar gyfer
ychydig bach -
yn Rydw i wedi ysgrifennu rhaglen C a yn y bôn computes y
Rhif Fibonacci nfed.
Felly dyma dim ond rhaglen Rwyf wedi ysgrifennu yn C sy'n computes hyn.
Gallaf lunio, ac yr wyf yn gallu rhedeg hynny ar y llinell orchymyn.
Ac mae'n mynd i gyfrifo Rhif 45 Fibonacci.
>> Felly, yn sylwi 'i jyst yn cymryd 'n bert lawer yn hir.
Mae'n debyg y gallaswn wedi defnyddio diferyn 03 i optimize 'neu rywbeth fel' na,
ond Fi jyst ddim yn hoffi rheolaidd lleoliadau compiler.
Ac mae'n argraffu allan.
>> Ond yn awr, beth ydw wyf yn fath o yn ei wneud?
Oh ddrwg gennym, ffeil anghywir.
Felly, yr wyf yn gwneud yr un pethau â y pennawd fel o'r blaen.
Yna mi wneud cp.exec hwn.
Felly, beth mae hyn yn mynd i wneud yw ei fod yn mynd i redeg y rhaglen hon.
Ond mae'r ffordd y mae hyn yn gweithio yw bod nid yw'n mynd i aros am
y rhaglen honno i orffen.
Mae'n dweud dim ond yn y bôn gweithredu rhaglen hon.
Felly, yn y bôn teipiwch hwn i'r gorchymyn math brydlon.
>> Ac yna, pan fyddwch chi'n ei wneud gyda hynny, yn rhedeg y swyddogaeth hon.
Felly, yn awr rydym yn fath o yn cael hyn beth hadfer cyfan o
fel nad ydym yn aros.
A yw y math hwnnw o yn gwneud synnwyr?
Yep?
>> GYNULLEIDFA: [Anghlywadwy]?
>> KEVIN Schmid: Felly bydd hyn mewn gwirionedd yn agor proses newydd i wneud hynny.
Felly, mae hyn mewn gwirionedd, mewn rhai ffyrdd, drwg, nid super drwg, ond mae'n
bwysig dweud bod hyn yn fath o mynd yn ôl i, ar y naill law, mae'r Apache
fodel lle rydym yn ei wneud edafedd a phrosesau ar gyfer pob cais neu
prosesau ar gyfer pob cais.
Felly, mae hyn yn fath o cyfateb i'r hyn Apache yn ei wneud.
Mewn rhai achosion, bydd yn jyst arfer newydd edau, sydd ychydig mwy o olau
pwysau na phroses, ond gallai Apache yn y pen draw fforchio proses newydd
sydd yn fath o hyn yr ydym yn ei wneud yma ymhlyg trwy wneud FIB slaes dot 45.
>> Ac yna yn yr achos hwnnw, yr ydym yn fath o achosi yr un treuliau o brosesau.
Felly, mae hyn yn un peth y gallwch ei wneud.
Ond dim ond i ddangos y math hwn o redeg.
A siarad hwn yn cael ei jyst 'n sylweddol hanelu at cyflwyno mathau hyn o raglenni fel
ffordd o ddangos safbwyntiau gwahanol ar sut i ddylunio gweinyddwyr fel 'na.
Felly, mae hyn yn rhedeg, ac yna nawr os wyf yn ei wneud hyn eto, yr wyf yn cael dau IDs broses.
>> Gadewch i ni dim ond siarad am bethau i dynnu sylw.
Felly, yn sylwi eu bod yn raddol.
Mae hynny'n cŵl.
Oherwydd ei fod yn 27,122 blaen.
Ond rhybudd yn awr, maent yn dod yn ôl tua'r un pryd.
>> Ac yn awr, yn gwestiwn da i ofyn am pam bod yr achos yn, y mae ei swydd
oedd yn awr i fath o wneud y pethau hyn fath o chwarae teg gyda phob
eraill, mae'r ddau achos o FIB slaes dot 45 fy mod yn rhedeg
neu a oedd yn rhedeg Nôd?
Pwy fath o yn ei gwneud yn deg bod y ddau cael math o cydbwyso amser rhedeg?
>> GYNULLEIDFA: [Anghlywadwy].
>> KEVIN Schmid: Yeah.
Felly y bôn, pan fyddaf yn gwneud FIB slaes dot 45 neu rywbeth fel 'na, erbyn hyn mae'n
fath o hyd at y system weithredu i ymdrin â'r Rhedeg rhaglenni hynny.
Ac yn awr gall eu drefnu ar CPUs gwahanol neu ei
gallu eu amserlen.
Gall sleisio i fyny yr amser bod un CPU sy'n ei gael neu eu bod yn cael
i redeg ar un CPU.
Felly dyna y syniad tu ôl i hynny.
A yw hynny'n gwneud synnwyr i bawb?
Felly, yn awr nid Node yn wirioneddol chwarae rhan wrth rannu tasgau hyn.
OK.
>> Felly dyna bron iddo am enghreifftiau.
Fi jyst eisiau dangos un yn fwy peth oherwydd bod llawer o hyn hyd yn hyn wedi bod yn
Nid yw yn hollol super ymarferol mewn rhai achosion.
Gallaf ddychmygu dod adref ar ôl hyn siarad ac yn rhywbeth a dweud fel,
yn dda yr wyf yn fath o got allan o'r sgwrs sy'n Gallaf wneud gweinydd Fibonacci gyfer
fy prosiect terfynol.
Felly dyma yn unig fath o un enghraifft fwy y bydd, gobeithio, yn -
efallai na, ond efallai - ychydig yn fwy fath o berthnasol i brosiectau terfynol a
meddwl ymlaen ar gyfer pethau fel 'na.
>> Felly, mae hyn yn chat.js.
Felly, mae hyn yn fath o gael rhywfaint o sampl gweinydd cod ochr y gallech eu defnyddio i
sefydlu gweinydd sgwrs fach fel efallai eich bod wedi gweld ar y
Facebook Chat neu beth bynnag.
Felly, nid wyf ddim yn dweud hyn yn debyg Facebook Sgwrs, ond mae hyn yn fath o
fel da - efallai ddim yn dda, ond efallai dda - man cychwyn am sgwrs
gweinydd ar gyfer eich gwefan ar gyfer prosiect terfynol.
Felly, gadewch i ni edrych ar yr hyn y mae'n ei wneud.
>> Felly, rydym yn cael y peth arbennig ar y brig, mae hyn var SIO
yn hafal i angen Socket.IO.
Felly, mae hyn yn beth arall nad yw'n gwneud hynny dod mewn gwirionedd sypiedig ag
Nôd ond gallwch osod.
Mae'n modiwl Nôd.
Felly, dim ond fel rhyw estyniad i'r Node.
>> SocketIO mewn gwirionedd mewn gwirionedd fath o oer.
Mae'n tynnu yn y bôn yr hyn mae'n ei wneud yw ei fod yn caniatáu i chi
cael llif hwn o gyfathrebu rhwng we
borwr a gweinydd gwe.
Felly, ar gyfer y rhan fwyaf hyd yn hyn, rydym wedi cael hyn yn gyflym iawn un eiliad neu ddwy
ail cyfathrebu rhwng we borwr a gweinydd we.
Felly, mae'n bôn ewch i google.com, get y pethau, anfon yn ôl, ac yna
rydym yn ei wneud.
Nid ydym erioed yn siarad eto nes bod y Mathau o ddefnyddiwr mewn rhywbeth arall.
>> Ond beth Socket.IO a math tebyg o bethau - ac SocketIO mewn gwirionedd yn un
o'r pethau sy'n cael ei hadeiladu ar fel WebSocket sydd fath o gael
fel rhan o HTML5 -
sy'n eich galluogi i gael y deialog barhaus.
Ac mae hyn yn ddefnyddiol iawn mewn gweinydd sgwrsio math o beth oherwydd ei fod yn
math o fel deialog parhaus yn rhai ffyrdd oherwydd os ydych yn sgwrsio
gyda rhywun, gallwch yn awr yn unig yn anfon neges i lawr y bibell, ac yna'r
Gall gweinyddwr anfon neges i lawr y bibell at y person arall eich bod yn
sgwrsio â nhw.
Ac yna gallwch gael y cyfnewid fel 'na.
>> Felly dyna fath o beth SocketIO yn dda ar gyfer.
Y rheswm y SocketIO defnyddio WebSockets fel un peth yw bod yn
ychwanegol i ddim ond plaen hen WebSockets, mae hefyd yn gwneud rhai triciau i yn y bôn
yn ei gwneud yn porwr gydnaws.
Felly porwyr fel Internet Explorer yn anffodus yn cefnogi WebSockets
i'r dde allan o'r bocs.
Felly, mae'n defnyddio rhyw fath arall o oer daclus bethau gyda Adobe Flash er mwyn caniatáu
i chi gael cefnogaeth traws porwr.
Felly dyna ddefnyddiol iawn.
>> Ac mewn gwirionedd, yr wyf yn gwybod fy mod yn fath o yn rhedeg ar amser yma, ond CS50
Trafodwch, ydych chi erioed wedi gweld rhywbeth fel, nid wyf yn gwybod, yn wag, felly ac felly mae
ateb i'r swydd hon neu rywbeth fel 'na, y nodwedd honno?
Dyna SocketIO.
Felly, pan fydd rhywun yn dechrau teipio yn y trafod blwch i wneud ymateb neu
rhywbeth, mae eich porwr yn beth sydd galw i mewn SocketIO allyrru rhyw fath o
digwyddiad sy'n dweud rhywun yn ateb i'r swydd hon.
>> Yna y gweinydd yn dweud, OK, beth sy'n rhaid i mi ei wneud?
Wel nawr mae'n rhaid i mi ddweud wrth y rhai guys eraill sydd ar CS50 Trafod edrych
yn y swydd hon bod rhywun wedi ateb.
Felly dyna fath o beth SocketIO yn dda ar gyfer, y math parhaus
ffrwd o ddeialog.
OK.
>> Felly, yr hyn yr wyf wedi yma - ac rydym yn unig mynd i anwybyddu'r amrywiaeth cysylltiadau
am ychydig -
hyn yr wyf yn ei wneud yw i ddim arall yn gwrando.
Felly dyna dim ond y ffordd y Socket.IO yn gan ddweud gadewch i ni wrando ar borth hwn.
Ac yna yr wyf yn gwneud hyn ar gysylltiad.
Felly dyna dim ond yn y bôn Socket IO yn ffordd o ddweud, pan fyddwn yn derbyn
cysylltiad, rwyf am i chi i redeg y cod hwn.
>> Ac yn sylwi bod yn hytrach na chael rec a res pasio i mewn 'na gen i Socket.
Ac mae hyn syniad Socket yn y bôn mae hyn beth y gallwch ysgrifennu a darllen
gan fod gan y defnyddiwr negeseuon o bosibl.
A'r negeseuon y byddech yn anfon fynd drwy'r Socket.
A yw hynny'n gwneud synnwyr?
Felly mae'n y peth yn parhau.
>> Felly, yr hyn yr wyf yn ei wneud yw fy mod yn galw Socket.emit.
Ac yn allyrru yn cymryd 'n bert llawer dau dadleuon.
Y ddadl gyntaf yn llinyn dim ond yn cynrychioli y math o
beth yr ydych yn allyrru.
Felly, ar gyfer yr achos hwn, rydw i wedi defnyddio llinyn hwn neges newydd.
A dim ond yn y bôn yn dweud bod y math o peth hyn, yr hyn yr wyf i'n
anfon, yn neges newydd.
Felly, gallwch chi wrando ar gyfer mathau penodol fel neges newydd neu beth bynnag
drwy ddefnyddio dot ar.
>> Felly cysylltiad a'r defnyddiwr ei anfon yno, os ydych yn edrych ar ble rydym yn galw dot ar,
hynny llinynnau eraill sy'n cynrychioli mathau o negeseuon y defnyddiwr.
Felly, yn y bôn gallwch gael allyriant hwn un o'r mathau neges hyn, ac
yna gwneud rhywbeth mewn ymateb i un o'r mathau neges yma
>> Felly rwy'n allyrru neges newydd.
Rydym yn mynd i anwybyddu connections.push am eiliad.
Ond yna yr wyf yn dweud, a anfonwyd defnyddiwr Socket.on.
Felly nawr mae'n fath o hoffi pan fydd y defnyddiwr yn anfon neges i mi, yr wyf am
i chi redeg y cod hwn.
Ac yn sylwi bod y swyddogaeth dienw yn cymryd mewn amrywiol hwn
Gelwir ddata sy'n mynd y bôn i gael neges y defnyddiwr.
>> Felly, nawr gadewch i fath o siarad am yr amrywiaeth cysylltiadau.
Felly, mae hyn wedi'i gynllunio ar gyfer cleient sgwrs lle y bôn pawb fath o yn
yr un ystafell sgwrsio.
Felly y bôn, yr hyn y mae angen i gadw cwmpas yn rhai amrywiaeth sydd yn y bôn
cynrychioli holl bobl sgwrsio yn rhai ffyrdd, os yw hynny'n gwneud synnwyr.
Iawn?
Oherwydd y mae angen i ni wybod pwy guys hynny yn er mwyn i ni anfon y negeseuon yn eu
bod pobl eraill yn eu hanfon atom.
>> Felly beth y cod hwn yn ei wneud pan fydd defnyddiwr anfon neges - dyna'r math o
y digwyddiad -
rydym yn mynd i redeg y cod hwn.
A beth ydym yn ei wneud yw ein rhedeg drwy'r amrywiaeth yr ydym wedi galw cysylltiadau.
A 'n bert lawer ar gyfer pob cysylltiad ar wahân i'r un sy'n ein un ni, dyna
beth y cod hwn yn dweud, rydym yn anfon newydd neges gyda y neges sydd ynghlwm
gwybodaeth.
>> Felly, os ydych yn sylwi yma, yr hyn a wnes i pan y defnyddiwr mewn gwirionedd yn gwneud newydd
cysylltiad yw Rydw i wedi rhoi gyda'r Dull JavaScript.push, mae hyn yn
yn y bôn jyst yn deud fel ychwanegu y Socket fel gwerth i
ein amrywiaeth cysylltiadau.
Felly nawr pan cod hwn yn rhedeg, bydd yn anfon pethau i'r rhai penodol
cysylltiadau.
Felly, gall hyn fod yn fan cychwyn da ar gyfer gwneud gweinydd sgwrs
neu rywbeth tebyg.
>> A'r math o beth oer yw bod y cod eich bod yn gweld yma at ei debyg ar a
allyrru a phethau fel 'na yr un fath math o god JavaScript y byddech
ysgrifennu yn y porwr i ryngweithio gyda'r gweinydd.
Felly dyna pam SocketIO yn fath o taclus a defnyddiol yn y ffordd honno.
>> O, a dim ond un peth yn fwy real gyflym.
Roedd prosiect terfynol CS50 y llynedd yn y bôn gweithredu sgwrs
gweinydd yn Node.js.
Rwy'n credu ei fod Harvardchats.org ond dydw i ddim -
OK.
Dydw i ddim yn siŵr beth yr URL, ond Gallaf anfon hynny allan wedyn.
Ond mae'n fath o oer pa gallwch ei wneud gyda Node.js.
>> Felly, yr wyf yn gobeithio, yn gyffredinol, i chi guys yn cael synnwyr da o'r hyn Node.js yn ddefnyddiol
a sut y gallech efallai wneud cais at eich prosiect terfynol.
Byddaf yn anfon mwy adnoddau ynghyd â hyn.
A diolch i chi am ddod.
Diolch yn fawr.
>> [Cymeradwyaeth]