>> KEVIN SCHMID: Hello everybody.
Ongietorria CS50 mintegia egiteko Node.js. on
Nire izenak Kevin.
CS50 TF bat naiz.
Eta naiz ordenatzeko benetan hunkituta atsegin dut Mintegi honen inguruan.
Uste dut Node.js oso cool.
Mintegi hau erabili ahal izango da espero dut bat ona, I guess, abiapuntu gisa
Zure bada azken proiektu batzuk Oraindik erabiliz interesa
Node.js. antzeko zerbait
>> Egingo moduko mintegia hasten gara off by besterik gabe, apur bat buruz hitz egiten
hondo eskalagarritasuna moduko Node.js ikuspegiak, eta, ondoren,
kodearen adibide batzuk ikusteko aukera izango dugu mugitu.
Eta webgune batean kodearen izan dut, eta kode begiratu dezakezu.
Eta mintegiaren ondoren, eztabaida egingo ordenatzeko dut nola sortu dezakezu Node.js buruz
zure ordenagailuan.
>> Ados.
Hargatik Hasteko.
Beraz, uste dut besterik gabe, buruz hitz egin nahi dut web zerbitzariak, benetan, lehen.
Eta eztabaida hau hasteko, I funtsean diagrama bat bertatik da izan
CS61 erabilitako testuliburuan, eta horrek funtsean interakzio erakusten
bezeroa prozesu bat, zure web bezalako arteko nabigatzailean edo zure helburua bezeroa edo antzekoak
horrelako zerbait, eta web-zerbitzari bat.
Beraz, hau motatako itxura antzekoa Irudian duten hitzaldia ikusi on you
Asteazkena non funtsean batzuk ditugu bezero Google Chrome bezalako prozesua.
>> Eta, ondoren, urrats bat da bezeroaren eskaera bat bidaltzen.
Beraz, zerbait ondo dezagun izan daiteke bisitatzen, ez dakit, CS50.net.
Beraz, eskaera hori igorriko dugu.
Eta ez da inor gogoratzen izenarekin duten zehazten du nola duten protokoloa
eskaera egituratu egin behar dela?
Yep.
>> IKUSLEEN: [INAUDIBLE].
>> KEVIN SCHMID: Zehazki.
Beraz HTTP bezala, ezta?
Beraz, funtsean nola zehaztapena eskaera hori benetan ezarri beharko
out, egunaren amaieran delako at, eskaera hori benetan besterik gustatzen bat
kate hori, funtsean, dio hau nahi dut.
Eta zehaztapena horretarako HTTP da.
Beraz, protokolo bat bezalakoa da.
>> Beraz, ondoren zerbitzari jasotzen eskaera hori.
Zu guys web zerbitzari bat instalatuko CS50 aparatuaren.
Apache da.
Eta aste honetan arazo inguruan lan egiten duzu ezarri zazpi, benetan lanean duzu
web zerbitzari horrekin.
Beraz zerbitzariari eskaera hori jasotzen du, eta Orduan, mota horretako urratu ditu bere
burua eta esan bezala ondo zer egin hauekin?
>> Beraz, zer egin, eta ondoren erabakiko du bere gainean nolabaiteko harremanetan jartzeko izan ahal izango du
baliabide.
Eta baliabide bat izan daiteke hainbat gauza asko.
Bat, izan zitekeen besterik HTML fitxategi estatiko bat bezala.
Beraz, ezin besterik batzuk bezalakoa izan HTML horretarako bezalakoa da
Zure web pertsonala.
Irudi bat bezalakoa fitxategia estatiko bat izan zitekeen edo duzula movie bat bezala.
Nahiz eta ezin da hitz egin datu-base mota batzuk egiteko
MySQL datu base bat bezala.
Beraz, ez du beti komunikatu behar a resource, baina ekin
Kasu batzuetan, izan liteke.
>> Orduan, zer da egin egingo horren ondoren da joan den
bidal atzera erantzuna.
Eta honen erantzuna da halaber HTTP zehaztutako.
Beraz, ondoren, bezeroak gero jasoko dute.
Da gain alderik daiteke eta prozesatu.
Eta, ondoren, web orri bat lortuko duzu bezalako Google edo CS50.net edo
edozein joan duzun.
OK?
>> Beraz, hau oinarrizko elkarrekintza da aurre goaz.
Eta ari gara nahiko askoz izango da zati honetan bideratua
elkarrekintza, zerbitzariak.
Ados.
Cool.
Inor edozein zalantza orain arte?
Ados.
>> Esan dugun bezala, beraz, web zerbitzariak jasotzen HTTP eskaera hau eta, ondoren, gai honetan
HTTP erantzun.
Eta antzera hitz egin dugu aurretik, CS50 tresnaren web zerbitzaria Apache da.
Beraz, guys lan egiteko P ezarri zazpi, you batera dira lan egiten ari
Apache web zerbitzaria.
Ez duzu inoiz benetan lan egin behar Apache zuzenean gehiegi.
Duzun ordenatzeko konfiguratzeko Apache apur bat denean ostalari birtualak edo zehaztu duzu
v ostalariak, eta lortu dugu Pixka batean horretara.
>> Baina, funtsean, Apache web-zerbitzaria sortu den PHP mota batekin lan
of koadroan.
Beraz, benetan zer gertatzen da noiz joan behar zure webgune, esan bezala bat,
tokiko ostalari barrarik index.php edo zerbait, da zure nabigatzaileak bidaltzen dituen
eskaera, eta, ondoren, Apache da eserita han eta zifrak da egin.
Eta ekintza da exekutatu kodea duten index.php eta
Orduz off bidali atzera.
Beraz, ez da hori.
Beraz moduko honi buruz hitz egin dugu.
Beraz, ezin besterik fitxategia estatikoan zerbitzatzeko edo PHP kodea batzuk alea exekutatu eta gero
erantzuna.
>> Beraz, gero etorri ahal galdera komun bat gora ondo dago, nola ez, benetan landu dugu
Erabiltzaile bat baino gehiago izatea aldi berean?
Beraz, imajinatu duzun web bat idazten ari bada zerbitzaria, web zerbitzaria izan bada
zerbait idazten saiatzen ari zaren C edo horrelako zerbait,
funtsean, pentsatu ahal izango duzu nola kode-motaren bat omen duten
eskaera jasoko luke, baina gero bertan, lan hori guztia egin du.
, Esate baterako, jo izan ahal dut datu-base edo horrelako zerbait.
Ezta?
Eta ondoren mota hori egin litzateke prozesatzeko eta, ondoren,
bidaliko atzera erantzuna.
Beraz, goi bezalakoa da maila errepaso.
>> Baina ez da berehala bistako nola duzun egin ahal izango duten bi beraz, pertsona edo
nahiz eta 1.000 pertsona batzuekin lan egin izan zure web zerbitzari dira aldi berean.
Beraz Apache erabiltzen duen konponbidea da hari edo prozesu deritzo.
Beraz, agian, entzun duzu baldintza hauek aurretik.
OK da ez badaukazu, baina besterik uste hariak edo prozesuak modu gisa buruz
sistema eragilea edo erabiltzaileak programa edo horrelako zerbait edo web zerbitzari bat
ordenatzeko exekutatu anitz aldi berean gauza.
Beraz terminoa entzun ahal izango duzu exekuzio hari bezala.
Beraz, mota da zauden bezala multiataza moduko.
>> Eta dituzun kutxa, ikusten bada zure ordenagailu eramangarria, edo horrelako zerbait,
multicore, zer egin dezakezu, ahal duzun desberdinen inguruko bi hari hainbat exekutatu
PUZaren atalak ahal izango dute, beraz, benetan gertatuko da aldi berean.
Beraz, hau da, benetan indartsu.
Eta hau da, Apache-ren moduko Arazo honen konponbidea.
>> Beraz, hor daude, mota horretako edozein arazo bezala Planteamendu honetan, nahiz eta?
Beraz, uste dut mota horretako idatzi zuen bertan.
Baina biak Sort memoria asko erabiltzen.
Oso garestia da, sortu hari bat edo prozesu bat.
>> Eta arrazoiketa parte da hori besterik bezalakoa denean C programa bat exekutatzen ari zarela
Zure nagusiak bezala eta, ondoren, deiak funtzio bat, duela
pila mota batzuk.
Beraz, hari ere behar dute, oso-osorik aparteko pila horrek
nahiko handia izan daiteke.
Eta zuk pentsa dezakezu tona beharrik Zure orrian erabiltzaileek, nahi duzun
hariak desberdinetako asko.
Duten pilak asko dago egiteko kudeatu eta mantentzea.
Beraz, memoria kontsumoa handi da.
>> Eta gero, baita ere, demagun besterik ez duzu PUZ bat, edo demagun duzu
hariak gehiago baino multicores horiek.
Ezta?
Hargatik esaten 10 harien izan duzu eta bost PUZ bakarra izan duzu.
Izan motatako duzun gauza hori egin ahal izateko non egungo artean aldatzeko duzun
Alde hori delako exekutatzen ezin da exekutatu guztiak 10 aldi berean.
Eta hori testuinguru switch bat deitzen.
Eta epe hori benetan pare bat ditu testuinguru desberdinetan, baina dezagun besterik
pentsatu kommutazio gisa bi harien artean.
Hori nahiko garestia izan daitekeelako funtsean, zer egin behar duzun da, zuk
zer egiten ari zaren gelditu behar, gorde exekutatzen hari horren egoera, eta
ondoren, beste nonbait aldatzeko.
>> Beraz, ez denek motatako ikus zergatik hari eta motibazioa
prozesuak apur bat bolumen handikoak izan liteke?
Eta ez galdera bat izan duzu?
Ados.
Cool.
Inor edozein zalantza?
Ados.
>> Beraz, urrats bat atzera hartu dugu bigarren bat bada, Ba al da mota bat bezalakoa
Behaketa garela buruz egin ahal web aplikazio asko.
Eta hori da benetan duten horietako asko benetan ez egin askoz erabilgarria
hari baten barruan lan egiteko.
Hain zuzen inor hasi on P ezarri zazpi guztietan?
Beraz, agian, deskribatu nahi baduzu zati batzuk?
Dituzun saio lan egin edo horrelako zerbait?
>> AUDIENCE: N º
>> KEVIN SCHMID: Ados.
Never mind.
Barkatu.
Baina, funtsean, P multzoan, zaren behar moduko asko egiten joan
datu-baserako kontsultak batzuk lortzeko datu-base horretako informazioa.
Eta zer zure kodea behar egiten da joan, zer Apache prozesu hori edo
duen Apache haria va behar egiten kontaktuari bitartean dut
datu-basea da sort izango da han eserita, eta hura izan da joan
datu-base erantzuteko zain.
>> Orain agian ez a big duen bezala soinua aurre egiteko datu-basea zure on delako
CS50 tresnaren, ezta?
Baina badira sare mota batzuk latentzia han orain web duelako
zerbitzaria bere eskaera egin emateko behar ditu datu-basera komunikatzeko
datu-basea eta, ondoren, hori lortzeko Informazio back.
Beraz, gaur egun bezala, ondo niri itxaron, naiz joango gara zerbait lortzeko batetik
datu-basea eta gero, ez da bat joan zain asko.
Ez duela zentzurik?
>> Eta gauza batzuk egiteko ez da txarra dela.
Hori gertatu behar bada, besterik gabe, adibidez, sarbidea memoria, hori ez da gustatzen
Izugarria / I latentzia.
Eta esango dizut, S / I latentzia, zer naiz aipatuz edozein bezala mota bezalakoa da
sarrera eta irteerarako.
Baina diskoan fitxategi batean sartzeko, bezalako HTML estatikoak zerbitzatzeko nahiko banu
fitxategia nire web orrian zen edo horrelako zerbait, ez mota daukat
pixka bat gelditu, irakurri fitxategi hori Disko batetik, eta orduan hasi
prozesu horren zain nago.
Ez dut lan erabilgarria eginez.
>> Hau ez da dena egia, baina ohikoa da P multzo bezalako aplikazioetan
zazpi eta aplikazio asko Oraindik ez duzula
pentsamendu askoz benetan egiten.
Eta noiz pentsamendu diot, esan nahi dut lan konputazionalak bezala.
Lana hain konputazional zerbait izan liteke bezala, esan, nahi duzun
hori besterik kalkulatu web zerbitzari bat idazteko n-garren Fibonacci zenbakia.
Hori ez da bereziki bat bezala soinua fun web zerbitzaria.
Atsegin ez nuke espero gune hori izango hurrengo Facebook, baina hori da zenbait
lan konputazionalak mota.
>> Eta hori ordezkatuz imajinatu dezakezu beste interesgarri nolabaiteko
lan konputazionalak.
Demagun zerbait idazten ari zinen dela kalkulatzen graduak
bi pertsonen arteko bereizketa edo horrelako zerbait.
Beraz, horrek ez du nolabaiteko inplikatzeko kalkulatzeko, ezta?
Eta orduan ere, hori oraindik ere egin behar duzu Zain asko egin behar agian egiteko
datu-base batean begiratu galdetzeko aukera duzu up nor den nor edo lagunak
horrelako zerbait.
Beraz, ez dago nozio mota hori da lan konputazionalak.
Ez duela zentzurik?
Du inor edozein zalantza?
>> Oh eta asmatzen dut txat zerbitzarietan bertan jarri dut chat zerbitzarietan motatako daudelako
beste hau adibide ona.
Txat zerbitzari batek ez dauka pentsamendu asko egin.
Besterik ez da pertsona itxaron mezuak eta orduan bidali
dute, bidal iezaiozu.
OK?
>> Beraz, besterik gabe, berriro ere laburpena, Apache eta web zerbitzarietan antzeko bidegurutze batera horrelako
harien eta prozesuak asko eta horrek motatako hondakin-ekoizpena izan daiteke.
Beraz, galdera hori etorri daiteke asmatzen dut horretatik aurrera ez da behar behar dugu
harien eta prozesu anitz?
Zer bat besterik ez dugu, bada?
>> Hargatik pintatzen motatako en irudi bat zer itxura hau litzateke.
Hargatik erabili bakarra haria.
OK?
Beraz, imajinatu hau hari batekin.
>> Eman dezagun ez ziren benetan egiten dugu askoz erabilgarria - eta esango dizut
erabilgarria, esan nahi dut lan konputazionalak -
anitz hari horiek aurretik.
Hargatik sendotzeko motatako hari bat bilakatu dena.
Beraz, zer hari bat mota hori izan bagenu du besterik ez inguruan doa begizta eta
Etengabe txekeak zerbait egin berria gertatuko.
Beraz, adibidez, zerbait berria gertatu esan liteke zerbait bueltatu naiz
datu-basea, edo bidaltzen norbaiti me HTTP eskaera berri bat.
Beraz, horiek ekitaldi mota daude hori gertatuko da, ezta?
>> Eta gero, zer egin dezaket orduan horiek berriak gauzak gertatzen hari honetan bertan da
exekuzioa, hari bakar honetan exekuzioa, Ezin dut kodea batzuk deitu duten
Gauza jakin kudeatuko litzateke.
Beraz, adibidez, zerbait lortu badut itzuli basetik, exekutatu izan dut nire
zati konputazional txikiak benetan gauza besterik ez prestatzen ari da
bidal atzera erabiltzaileari.
Beraz zentzurik mota hori ez?
>> Baina zer dira benetan honen ondorioak?
Ezta?
Idatzi dugu delako duten kode asko -
eta besterik ez naiz Aurrera salto egingo OK badu diapositiba batean.
Beraz, ez baduzu axola, besterik ez dut urrats bat atzera egingo.
Beraz gauza mota hau da Ekitaldia begizta bat deitu.
OK?
Eta oinarrizko mota da Ideia Node.js. atzean
>> Beraz, zer Node.js da benetan egiten web gisa zerbitzari dago haria bakar bat da
hori funtsean inguruan begizta batean berriz azpian mota bat bezalakoa
Node.js kanpaia hori etengabe egiaztapena, ez zuen gauza berri jasoko dugu?
Eta gero kudeatzaileen exekutatu izango da konfiguratu duzula.
Baina galdera on bat eskatu da, nola egin dezaket hau gertatuko egin dugu
existitzen diren gauzak?
>> Beraz, C kode-lerro bat jarri dut hemen funtsean itxura inaugurazio atsegin bat
fitxategia da, ezta?
I besterik ez zuen atera zen diskoa batekin.
Beraz, bere fitxategi berri bat ireki behar izan nuen.
Beraz, bide batez gure C jarduten kodea -
eta uste dut arrazoia fitxategiak aukeratu nuen zen hau da, zeren neurri mota
C dugula egin hemen S / I lanaren Zentzu batean ez dagoela sarrera irteera da.
Beraz, kode hau deitu dugun f hau irekia du.
Eta ondoren datorren gure line on programa, dugu orain f lan.
>> Beraz, hau zerbaiten adibide bat izango litzateke duten sinkronoak edo atsegin
lehen lerroan on delako blokeatzen han ginen arte itxaroten ari
fitxategia irekitzea lortu.
Beraz, bigarren lerroan, badakigu dugu f lan egin ahal izango du, baina horrek esan nahi du
Bigarren lerro hori ezin benetan exekutatu lehen lerroan arte egiten da.
Ez duela zentzurik?
>> Beraz, hau txarra izango litzateke jarri Ekitaldia handler batean.
Eta horretarako arrazoia dela itxaroten mota hau, ezta?
Beraz, hau gurekin leheneratu litzateke atzera gauza bera egiteko.
Eta orain ez genuke, are gehiago izan da Hainbat hariak onerako edo
prozesuak dugulako lortu Node.js. hari bat
Ez duela zentzurik denek?
>> AUDIENCE: Itxaron.
Beraz, zein da ordezkatzeko?
>> KEVIN SCHMID: Oh, beraz, bai.
Beraz nik lortu dut ordezkatzeko.
Ados.
Zerbait izan, beraz, zer badugu hori dirudi?
Beraz, zer, orain bada editatzen dut f ireki apur bat?
Beraz berean dut pasatzen naiz Bi argumentu lehen bezala.
Oraindik ere, abesti berria maite dut atera zuela.
Baina hirugarren gauza bat pasatzen ari naiz eta horrek da kode izeneko aldagai hau.
>> Baina zer da benetan kodea testuinguru honetan?
Da bat C erregular aldagai bezala?
Funtzio bat da, ezta?
Eta hori pixka bat arraroa izan daiteke Nik egia esan, orain pasatzen atsegin dut bat
funtzio bat sartu funtzionatu.
>> Beraz, pare bat gauza honi buruz ohartu.
Bat, ez naiz benetan deituz dut kodea funtzioa.
Beraz, ez duzu kodea ikusi batera utzi paren, eskuineko parentesiak.
Besterik ez naiz kode igaroz.
Eta C, zer hau benetan egingo lukeen da ematen dit erakuslea benetako horretara
kodea, eta orduan hau exekutatu zitekeen.
Baina besterik ez da pentsatzen ari zarenean exekutatu kodearen pasatzen denean
fitxategi hori ireki da.
>> Baina zer esan nahi du hau da, gaur egun, nire programaren gainerako hori egin ahal izan
beste gauzak, beste egiten jarraitu ahal stuff dugu, ez benetan zai daude, baina
besterik gabe, gure buruak atzera izan duen fitxategi horren irekia, run duten
goialdean kodea.
Ez duela zentzurik?
>> Eta orain Node.js atzean dagoen ideia hau da do f batera stuff in kodearen
zatia nahiko labur eta erraza izan behar du eta benetan erraza eta ez
eskakizun handikoak.
Beste fitxategi bat ireki ahal izango da, baina hori ere nahiko azkarra izan behar du
da besterik esan f bestera egin behar delako irekitzeko eta, ondoren, beste kode hau deitu.
>> Beraz, besterik gabe, erabat argia, m izan ireki duten Katy Perry abesti berria du
done mp3, hori joan nahiko askoz itzultzeko berehala.
Eta gero, besterik ez dugu egiten jarraitu ahal beste gauza delako guztiak, orain f duten
deialdi irekia duela esango da, funtsean, azpiko f kode irekia ireki fitxategi hau
eta amaitu duzunean hau irekitzeko fitxategia edo noiz itzuliko duzu,
Orduz kodea duten exekutatu.
Baina ez du benetan kodea duten exekutatu.
Eta galdera bat izan duzu?
>> AUDIENCE: batzuk bat inplikatzen zirudien duzu duten computationally gehituz aldiz
kodea intentsiboa moduko hautsi du [INAUDIBLE] bultzatutako sistema.
[INAUDIBLE]?
>> KEVIN SCHMID: Hori galdera bat da.
Beraz, egia esan nion nola adibide bat computationally integratu ahal izango duzu
Pixka batean kodea intentsiboa.
Beraz, lortu kodearen adibide dugu, Ziurtatu bat duten tira izango naiz.
Ados da hori?
Eskerrik asko.
>> Zein izan da zure izena?
>> AUDIENCE: Aaron.
>> KEVIN SCHMID: Aaron ekartzen oso bat puntu ona, hau da, hori izan nuen
computationally in kodea intentsiboa batzuk Egin f zatia, gainerako gauzak
nire programa bat ezin da exekutatu, eta ezin entzun eskaerak edo ezer berririk guztiak arte
stuff hori amaitu da.
Beraz dut idazten bada naiz Nodoa kodea orokorrean Zerbait egin ezean noa atsegin dugu
geroago iradokitzen begiratzen dugu kodearen adibide, nahi ziur egon behar dut
nire kodea ez du lotzeko sortu Ekitaldia begizta hau.
Ez duela zentzurik?
Ados.
Cool.
>> Beraz Node.js marko honek eskaintzen dituen bultzatutako ekitaldi horiek eraiki ahal izango duzu
dituzten zerbitzarietan.
Beraz ditu asinkronoak mota horiek ez blokeatuz / I liburutegiak, berriz,
C liburutegi estandarrak duen dugu dugun , lan egiten nahi izanez gero, besterik gabe
horiek erabili duten dugu modu berean dira horiek erabiliz f irekitzen eta
gauzak, horiek blokeatzen ari delako benetan duzu itxaron
fitxategi hori ireki.
>> Baina Node.js ematen dizu eta funtsean Google V8 sartu lotzen
JavaScript motor horren arrazoia da Chrome dela, beraz, azkar prozesatzeko at
JavaScript duelako V8 motorra hau.
Beraz, horietako bat bezala soinuak ezagutzen dut WWDC sustatzailearen hitzaldiak gauza
non mordo bat bota besterik ez dute Gauzak gutun zenbakia prozesadoreentzat
eta esan hau hain da cool.
Baina cool da hori egin zuten horregatik Javascript -
edo agian Oraindik ezagutzen ez baduzu JavaScript oraindik ez dugu izan delako
Gainean hitzaldiak -
baina JavaScript interpretatutako bat hizkuntza.
>> Eta hau ere puntu garrantzitsu bat da.
Beraz gure web garrantzitsua da zerbitzarien azkarra izan da, ezta?
Eta besterik ez ginen JavaScript exekutatzen bada horrekin interpretatu zen kode besterik
edozein interprete zaharra motela izango da agian.
Hau izatea beraz Nodoa onurak super azkar V8 interprete.
Eta ez dakit izendatzen badute delako V8 kopeta Slap du
gauza, baina OK.
>> Adibide batzuk, beraz, prestatu dut URL honetan.
Mintegiaren ondoren, ordenatzeko noa joan Nodoa set nola lor dezakezu buruz hitz
sortu, baina oraingoz, besterik ez ordenatzeko nahi dut ondorengo kodea adibide batzuk ibiltzeko.
Batera jarraitu nahi izanez gero, guztia iturburu kodea eskuragarri dago.
OK?
>> Beraz, URL honetan utzi dut apur bat gora.
Eta gero, besterik ez naiz joan terminalera joateko.
Denek URL honekin ona da?
Beraz, ez naiz aldatuko joan nire terminal hemen.
>> Hortaz, hona hemen kodea duen Gaurko daukat.
Zergatik ez hasi dugu simpler.js fitxategia?
Beste gauza da hori guztia kodea da idatzi behar joan
JavaScript eta zuk dezakete, edo agian, ez da ezagutzen.
Uste dut pare gauza bat da horrek asko JavaScript kode mota da
sintaxia eta egitura oso antzekoa da C, beraz, mota horretako jaso ahala
joan batera.
Asko idazten saiatu dut hasita honi kodea modu bat hori da in
C antzekoa, horrela da apur bat gehiago irakurri.
Baina dugu aurrerapen gisa, egingo dut osagarri batzuk erakutsiz
Ikusteko Javascript-a ezaugarri duen Hemen cool mota.
>> Baina ikus ditzagun lagin programa honetan.
Uste dut, dena da moztu han.
Besterik ez dut erreala dela konpontzen joan OK edo ez bada azkar.
Ez dakit zer hau egin da joan.
Apur bat hobea dela?
Daiteke ald eta gauzak ikusten duzu?
Ados.
>> Beraz, lehen lerroan JavaScript bezalakoa da aldagai baten bertsioa
adierazpenean.
Beraz, besterik gabe nabarmentzeko honek zer egingo C. itxura Beraz, hau besterik ez bezalakoa da
niri esaten indizea berdinen hiru edo horrelako zerbait.
Beraz, ez nuen mota zehazteko.
Javascript ez mota izan, baina da Oso dinamikoki naturan idatzi, beraz,
ez edozein motako moduko gainean ematen.
Beraz, besterik var ditu.
Aldagai bezala.
OK?
>> Eta HTTP aldagai hau deitzen naiz.
Eta nire eskuinaldean, daukat adierazpen hori HTTP jarri nahi dut.
Eta hau dio HTTP eskatzen.
Beraz, hau da, mota antzeko gehitzea.
Pixka bat bezala baino ahaltsuagoa zentzu horretan, besteak, besteak
kopiatu eta goiburua itsatsi litzateke funtzioa prototipoak Artxiboari edo
mota definitzen dira, edozein dela ere.
Baina behar da benetan joan gurekin kodea lortzeko.
>> Beraz, zuk pentsa dezakezu gisa kodea batzuk inportatzerakoan.
Beraz Node.js modulua nonbait sistema edo dena delakoa, izan dute hori guztia
HTTP zerbitzaria kode beraz, besterik ez naiz lortu nire propioa
programa honetan erabilera pertsonalerako.
OK?
>> Beraz, ondoren, funtzio hori daukat dela idatzi dut.
Eta konturatu nintzen ez dute zehaztu itzulerako mota edo motaren
argumentuak berriro.
Beraz, mota solteak idatzi Zentzu mota hori.
Bi argumentu hartzen hasi dela, eskaera eta erantzuna.
Beraz, kontzeptualki motatako bezalako argazki hori izan genuen bertatik ezagutzen
pantailan delako aurretik eskaera hau lortzen dugu dugun
Erabiltzaile-aren bitartez.
Eta, ondoren, erantzun bat izan dugu gauzak idatzi ahal izango dugu.
>> Beraz, hau lehen lerroan ez res.writeHead 200 eta gero hau
eduki mota testu arrunta.
Hargatik pieza hau aparte pixka bat.
Hargatik res.write ardatz besterik Apur bat.
Beraz, idazketa da, funtsean, eta idazteko burua, modu besterik ordenatzeko idatzi
erantzuna emateko gauza.
OK?
Beraz idazteko burua, inor gogoratzen bada HTTP hitzaldia hasita, do you guys
goiburuak gogoratu at HTTP gauza goialdean?
Beraz, zergatik ez demo dut goiburuak benetako azkar.
Hori izango litzateke lagungarria?
Edo hori behar dugu, besterik gabe Sort -
Ados.
Ziur.
>> Beraz, zure nabigatzailea google.com doa edo horrelako zerbait,
ez da benetan pixka bat gehiago -
hau sekretu bat bezalakoa da -
ez dago informazio apur bat gehiago bezala duten kanalizazio bidez dator besterik baino
bilaketa txiki eta dena.
Beraz erakusteko honetan, noa Curl izeneko programa bat erabili.
OK?
Beraz, honetan duzula exekutatu daiteke zerbait da Zure Mac OSX komando lerro edo in
tresnaren edo dena delakoa.
Eta, beraz, I Kiribilaren ez bada HTTP google.com, HTML ikustera noa.
Eta hau da, zuzentasuna, besterik HTML duten moduko esaten dizu
www redirect zure nabigatzaileak ez bada automatikoki kudeatuko du
berbideraketak.
>> Beraz, hau da, besterik gabe, HTML, baina noa gehitzeko gidoi honen I bandera Kiribilaren.
OK?
Eta hori erakusteko joan me goiburuak.
Beraz, hau da, halaber, datorren informazio bidez dudanean erantzun hori lortzeko.
OK?
>> Beraz goialdean, hau ikusten duzu HTTP 301 mugitzeko betirako.
Eta hau da, mota garrantzitsua delako hau egoera kode aipatzen.
Beraz, 301 hemen egoera-kodea, hau da, funtsean zenbaki oso bat besterik ez
duten nabigatzaileak edo duenarentzat da kontatzen hau irakurtzen, itxurak duzun bada
Oraindik nabigatzaile baten eta hau ikusten ari bazara, Funtsean, orain begiratzen baduzu
duten eta ikusiko duzu 301 bat, badakizu daukat zerbait berezia oinarritutako on egin
301, edo zerbait gertatu bereziak oinarritutako 301 da.
Beraz, behin betiko mugitu dio.
>> Eta gero, funtsean, behar dugu Kode-balio bikoteetan mordo bat.
Beraz kokapena lortuko dugu www.google.com da.
Eta, ondoren, mota horretako beste stuff hori guztia, baina, funtsean, zer kokapena da
Esaera kokaleku berri da www.google.com dago.
Beraz, orain bazoaz google.com nahi, duzu Sort ikusteko nabigatzaileak keinu mota
bigarren eta gero redirect zuretzat eskubidea www.google.com itzuli.
Beraz, erantzunak izan ditzakete goiburuak hauek.
>> Eta gauza pare bat azpimarratzea.
Beraz, demagun arrakastatsua izan ginen web orri bat bisitatzen ditu.
Hargatik joan me -
Zer da webgune bat ona?
Txarra naiz ona pentsamendu at spot webgune.
>> AUDIENCE: Wikipedia.
>> KEVIN SCHMID: Ados.
Egin Wikipedia utzi.
Beraz, hemen dut mugitu zen.
Oh itxaron.
Izan dut?
Bai, izan nintzen.
Ados.
Beraz www egin dut.
Beraz, ez dut www egin.
Eta ikusi dezakezu bezala, hemen HTML guztiak nabigatzaileak prozesatu litzateke
Wikipedia da.
>> Baina hemen korritu mantendu badut, zer egingo goialdean ikusten dut -
wow, han asko da HTML Wikipedian -
baina zer ahal dut goialdean ikusten da hemen 200 egoera kode hau baita aurka
301 lehenago ikusi nuen.
Eta nabarituko polit bat duela lagunarteko OK ondoan.
Beraz, hau da ona status kodea bezalakoa da.
>> 200 zenbaki hori du itxura ezagutzen?
Bai denean simpler.js ez dudalako, Idatzi zuen 200 bat han dut.
Beraz, funtsean esanez esango du nabigatzaileak edo duenarentzat iritsi nahian
honek arrakasta zirela.
Edo atsegin dugu mota horretako arrakastatsuak izan ziren gehiegi.
>> Han eta sintaxia berezia mota hau da Javascript in bat geratuko
eduki mota bezalako gakoak horien mapa eta testu arrunta bezala balio horiek.
Beraz begiratzen baduzu erantzuna bertan dugun Wikipedia bueltatu aurretik, -
Korrituko saiatu noa gora pixka bat azkarrago -
zerbitzari bezala gako horiek duzu eta balio horiek Apache.
Beraz, lortu duzun gakoak eta balioak.
Eta hau zehaztu ahal duzu hemen Nodo zer atzera bidaltzeko.
>> Beraz, hau da benetan mota, batzuetan moduak, eta alde batera ez da
benetan, baina maila apur bat txikiagoa da PHP duzula liteke kodearen baino
P idatziz ezarri zazpi delako PHP eta Apache moduko zaindu batzuen
zuretzat gauza horiek.
PHP, gainidatz dezakezu lehenetsia Zure goiburuak egin idatziz portaera.
Baina honen ondorioetarako, lortuko dugu gure goiburuak propioa idazteko.
>> Beraz, egin nahi du lerro hori zentzurik denek, idazketa buru lerroan?
Ados.
Awesome.
>> Beraz, ondoren, egiten dudana da erantzuna amaituko dut kaixo mundu esanez.
Ados.
Baina horrek funtzio bat besterik ez eskaera handler izeneko.
Beraz, gaur egun, egia esan, mota horretako egin behar dut Funtzio honekin zerbait, ezta?
>> Beraz, hemen egiten dudana da, ez da honen horrek var zerbitzari berdinen du lerro
HTTP.create zerbitzaria, eta egin nuen eskaera kudeatzailea pasatzen.
Beraz, hau da Nodoa du nolako zerbitzari bat sortzeko bidean.
Eta konturatu naiz pasatzen eskaera kudeatzailea da.
Beraz, hau createServer da kontatzea funtzio hori niri egin dezakezu bat nahi dut
zerbitzaria, eta zerbitzari horretan jasotzen erantzuna, hau deitu duzu behar dut
handler funtzio eskatzeko.
OK?
>> Beraz, lerro hori nahiko askoz berehala bukatzen.
Beraz var zerbitzari line egiten da eskuineko hori egin duzu nahiko askoz ondoren.
Esan nahi dut, gora barneko batzuk ezarri behar ditu egoera nahi duzula litzateke jakitea
eskaera handler funtzio hori deitu, baina ez da bertan eseri eta joan
esan bidaltzen erabiltzaileari ditu me eskaera bat oraindik?
Ditu, erabiltzailearen eskaera bat bidali dit oraindik?
Beraz, ez du blokeatzen.
OK?
>> Beraz, zer egingo da, funtsean, orain, kode hau erakuslea gordetzen,
honek eskaera handler funtzio, eta, ondoren, kodea duten exekutatu egingo norbaiti
eskaera egiten du.
Eta gero server.listen egiten dugu.
>> 1337 ez da nahiko arbitrarioa.
Arrazoia jakin ez nuen zenbaki hori biltzea da.
Erabat ausazko zen.
Baina hori besterik ez ataka zehazten ditu.
Beraz web zerbitzari gehienetan ikusiko duzu dutela 80 ataka erabili hori da mota delako
konbentzio bezala.
Beraz, joan nintzen antzeko zerbait behar izanez gero, Ez dakit, Wikipedia.org,
eta koloneko 8 jarri dut -
oh wow, ezin duzu ikusi duela.
Sentitzen dut.
Baina egin dudan Wikipedia bada -
Hemen idatzi dut besterik, beraz, kamera argi da.
Baina hartu badut honekin nabigatzaile bat sartu puntu eta 80, duten zehazten joan
Wikipedia.org 80 portuan.
Beraz, Estatu Batuetan nola du bezala non ontziratu dezakezu bezalako portuak anitz
moduko gauza.
Beraz, zehatz honetan joan bezala zerbitzari honetan kokatzeko.
Ados.
>> Beraz, aukeratu besterik ez dut 1337.
Badira zenbakiak sorta oso bat da jaso dezakezu.
Hori ez zen guztiz berezia.
>> Baina zer naiz orain egin da joan da naiz Nodoa exekutatu.
Dezagun benetan sartu zidan pare bat beraz, zuk ikusi ahal izango behera lerro.
Nodoa egin nahi dut, eta nago simpler.js exekutatu.
Eta ikusiko du nola iritsi buruz hitz egiten dugu Nodoa sortu pixka batean.
Baina orain, besterik ez da zerbitzaria martxan.
>> Beraz, gauza bat dastatu ahal izango dugu eta horrek, agian ez izan duten zirraragarria da ahal dugun benetan
saiatu sartzeko Curl in.
Beraz egin dezaket Curl, eta nire Makina tokiko antolatzailea da.
Ere ikusiko dituzu hau idatzi batzuetan hau atsegin dute.
Tokiko ostalari eta 127.0.0.1 dira mota du zure etxeko ordenagailuan bezala.
Beraz, hizketan bezala zeure ordenagailuan.
Ados.
>> Eta ondoren, 1337 esan dezaket.
Beraz, kode-lerro hau exekutatu bada, dio kaixo mundua.
Eta stuff hori ikusi nahi nuen bada izan eduki mota testu arrunta edo
edozein dela, nahiz eta ezin izan dut jarri hau hemen.
Eta nabarituko dela esan du Ados.
Eta testu arrunta egin dut.
Eta gero, ez da mota guztietako beste hau stuff hori Nodoa en gehituko ditu
Niretzat ez dago.
Hori ez da super garrantzitsua.
>> Esan nahi dut, ez dago teknikoen nolabaiteko tan alderdi diren moduko
of cool hitz egin, baina besterik ez erakusteko zuk, nik ere boterea
aldaketa horien inguruan.
Beraz, besterik mordo bat gehitu ahal izango dut horrelako gauza.
Eta gero, orain, begiratzen dut bada neure irteera, hori izango da.
Beraz goiburuak hauek esan nahi zenbait gauza Nabigatzaile eta horrelako gauzak egiteko.
>> Eta goiburuak nabigatzaile bat, funtsean, esan ahal nola zerbait erantzuteko.
Duzun inoiz cookieak entzun aurretik bada, edo duzun inoiz haserretu bada
Web orri bat cookieak ezarriz, edo cookie bloke edo piztuta
horrelako zerbait.
Cookieak benetan ezarri ditzakezu goiburuak hauetan.
Beraz, nabigatzaile bat nola kontatzen dituzte zenbait kasutan portaera.
Ados.
>> Beraz simpler.js zen.
Du inor edozein zalantza iturburuaren fitxategia horretan?
Ados.
Cool.
>> Hargatik kendu r horretatik aurrera eta simple.js begiratu.
Beraz, hau da, nahiko askoz programa bera.
Besterik idatzi nuen apur bat ezberdina ra nabarmendu ordenatzeko nahi nuelako
JavaScript zenbait ezaugarri.
>> Beraz nabarituko duten eskaera kudeatzailea funtzioa erabat galtzear dago.
Oh bai, egin galdera bat duzu?
>> AUDIENCE: Bai, argumentuak diren hori gainditu
funtzioa, zer dira?
>> KEVIN SCHMID: Beraz, horiek JavaScript objektuak.
Node.js dokumentazioa, hura funtsean dio metodo, zer dira
horiek eskuragarri.
Gertatuko dugu besterik sarbidea izatea idazketa burua eta amaiera izeneko metodo hau
eta horrelako gauzak.
Baina ez dago osoa sorta metodo gehiago.
>> Eta adibidez, horietako bat bezalakoa Bereziki rec on in, egin dezakezu
rec.method antzeko zerbait horrek egingo esango dizu ote den HTTP bat lortzeko edo
HTTP post eskaerak eta horrelako gauzak.
Beraz, ez dago hainbat mota guztiak egin jabetzak, baina biak ari dira
JavaScript objektuak, eta besterik ez dute haiei atxikitako funtzio duzun
gauzak idatzi ahal izateko.
OK?
>> Beraz nabarituko eskaera handler duten guztiz desagertuko da.
Baina kodea zuela eskaeran dut kudeatzailea da oraindik.
Oraindik ere res.writeHead hau daukat eta oraindik res.end hau daukat.
Eta zer honetako adibidea da JavaScript baten ideia hau da
Funtzio anonimoak.
eta anonimoa egokitzea izen bat bezalakoa da da, hitzez hitz egiten du, ez duelako
izen bat dute.
Ez dago funtziorik eskaera ez han kudeatzailea.
>> Izenik ez du, baina oraindik ere argumentu bat hartzen ari da.
Beraz, oraindik ere lortu nuen rec eta res.
Eta oraindik kodearen daukat.
Hau erabat fina JavaScript kodea.
Beraz, funtzio bat aldarrikatu dezaket gabe esplizituki izen bat emanez.
Da hasiera batean apur bat nahasgarria da.
Badira gauza batzuk bezala rekin egin ditzakezun
funtzio anonimo horiek.
Du inor honetako edozein zalantza, edo OK da, besterik gabe, gaur egun,
sort besterik ez onartzea da gauza bera egingo?
Yep?
>> AUDIENCE: Are funtzioak Lehenengo JavaScript klase?
>> KEVIN SCHMID: lehenengoa dira JavaScript in class.
Eta besterik ezagutzen duten kontzeptu horiek bezalako funtzio anonimo bat igaroz
hau JavaScript aplikatu duzula Baliteke zure azken proiektua idazteko eman
web nabigatzailea gehiegi.
Beraz, adibidez, in Javascript batean Zure nabigatzaileak, Gainera, zertxobait ekitaldi
zentzuan gidatzen duten, zer egiten duzu, izan da sakatzen honetan
botoia, kode hau exekutatu nahi dut.
>> Beraz, ideia mota bera bezero alboko saguaren denean klik bat edo dute
sagua irudi batzuk baino gehiago zure Web orri, exekutatu kode hau.
Duten zerbitzarietan egon daitezke.
Beraz, hori da mota zirraragarria bezalako arrazoirik JavaScript benetan bat
pertsona egokiak edo batzuek uste da mota honetako hizkuntza egokia
Ekitaldia gidariari zerbitzari duzulako funtzio anonimo horiek.
Ideia osoa izan duzu kodea asinkronoak hau.
Ados.
Inor edozein zalantza?
>> Ados.
Beraz simple.js zen.
Hargatik begiratu one more at edo pare bat gehiago.
Beraz, hau sleep.js da.
Beraz, inor ezagutzen da C funtzioa loa?
Agian lehenago hitzaldi batetik edo horrelako zerbait?
>> Beraz, funtsean, uste dut gainditu ahal izango duzu bat segundo kopurua edo zuk U erabiltzen ari bazara
lo milisegundotan zenbaki bat edo nanosegundoak.
Eta funtsean programa besterik gelditu egingo Denbora kopuru hori martxan.
Ezta?
Eta orduan esnatu egingo da azkenean, eta orduan besterik ez du jarraituko exekutatzen
programan.
>> Zerbitzaria moduko ematen lotan inpresioa.
Beraz, konturatu hori bera dugu res.writeHead 200 goiburu gisa duen
aurretik, baina, ondoren, honek deitzen ari gara set timeout izeneko funtzioa.
Ezarri denbora muga ere dago eskuragarri zure web nabigatzailea Google Chrome
edo Safari edo dena delakoa.
Eta, funtsean, zer da hemen egiten da da funtzio bat da hartzen.
Oharra, berriro ere, bat da Funtzio anonimoak.
Beraz, hori da mota cool Oraindik dugulako baten barruan funtzio anonimo bat erabiliz
Funtzio anonimoak eta horrek Apur bat arraroa izan daiteke.
>> Baina funtzio hori hartu du, hau da, funtsean esaten -, eta modu honetan
obrak 5.000 milisegundotan da, nahi dut funtzio hori burutzeko baimenik duzu zein
besterik erantzun bukatzen du eta idazten hey.
Beraz, honen antzeko inpresioa ematen , lotan baina modu honetan benetan
lan egiten da bidez dugu exekutatu Lerro hau oso azkar.
Zerbait ari gara idazten.
Eta gero, gainera, dugu zehar ibiltzen Lerro hau oso azkar.
Beraz, ez gara benetan joan bost segundo itxaron.
Ari gara exekutatu joan kode hau berehala.
>> Eta orduan, berriz ere, txiki honetan Ekitaldia begizta, orain gauza hau dauka
erregistroen, funtsean, besterik ez da etengabe inguruan biribilean
eta bakar batean erlojua begiratu haria eta esaera, bost segundo ditu
gainditu gabe?
Eta orduan da ohartzen denean bigarrenean eskuko bost segundo edo bezala mugitu
edozein izanda ere, orduan esnatuko da eta dioenez, oh, zer egin behar dut?
Oh kode hau exekutatu behar dut.
Eta gero, joan den exekutatu res.end hey.
>> Beraz, berriro ere, ari gara inoiz hemen zain.
Beraz, ez da kode honen barruan Funtzio hau da bost hartu du
exekutatu segundo.
Kode hau nahiko askoz ihes egingo berehala, gutxienez erlatiboa
bost segundo dela hitz egin genuen buruz lehenago baino lehen.
>> Beraz, besterik ez hau erakusteko ekintza, Egin ahal izango dut Node.sleep.js.
Eta nik zerbait egin nahaspila sortu?
Seguru asko.
Barkatu.
Ea zer hau konpontzeko egin ahal izango dugu utzi.
Ados.
Beraz, behin betiko erabili Node.js.
Besterik ez dut Txantxetan.
Ados.
Bakar bat s.
Ados.
Zer den jakin dut.
>> Beraz, arazoa da, nire beste fitxan Hemen, dagoeneko on Nodoa exekutatzen ari nintzen
Helbide berdina duen, 1337.
Beraz, akats hori bota, bilatuko dugu bada at benetako estuki, helbidea da in
erabili, EADDRINUSE.
Beraz erabiliz nintzen dagoeneko 1337 hemen.
Hau itxi beraz badut off, eta egin dut, gaur egun, saiatu hau exekutatzeko, zorionez, dena
ondo egongo da.
Ados.
Beraz, soilik gauza moduko bat izan dezake portuan batean entzuten aldi berean.
Beste irtenbide bat niretzat izan litzateke besterik programa hori editatu eta egin
izango 1338 edo antzeko zerbait da duten bezala.
>> Baina orain loa martxan dago.
Hargatik saiatu benetan it out in nabigatzaileak une honetan, da delako bat
unexciting gutxi ikusi terminal batean.
Naiz, beraz, nahi duten joan 127 Helbide berriro 1337 at.
Eta baduzu ikusten -
Ez dakit ahal bada - baina nire nabigatzailearen oso, oso luze bat hartu
denbora edo bost segundo bezala kargatu.
>> Eta gero, ondoren, azkenik erantzuna amaitu zen.
Eta ezin duzu ikusi delako gauza da apur bat baino gehiago joan zen bizitzera, baina ez dut egin bada
hau pixka bat txikiagoa, zuk Ikusten dio hey.
Beraz hey lortu nuen, baina bost segundo ondoren.
Eta garbiagoa apur bat izango da agian ikusi hemen terminal oinarrituta, beraz, naiz
bat egin da joan -
Egin hemen utzi -
Egin helbide hori Curl utzi berriro 1337 batera.
Eta mota besterik ez daukat eseri Hemen bost segundo.
Baina konturatu zerbitzariak erantzun berriak onartu ahal izango.
Beraz bistaratzen hey.
>> Eta hau demo, funtsean, zer Beste fitxa honetan egin dezaket -
beraz, demagun egin behar dut fitxa bestean, Curl eta gauza bera egin nahi dut
berriro gauza.
Eta ez dut horiek alboratzen saiatzeko joan guys off aldi berean.
Beraz, ez dut hau egin behar zuen, eta ni naiz gorako arraza hemen eta ni naiz
berriro egin behar.
>> Eta utzi egin da, beraz, en duzu biak ikusi ahal izango dira.
Inprimatuko hey eta bat inprimatutako hey modu guztiak at -
Berriro egin esperimentu horretan utzi.
Egia esan, erabili izan da hau utzi engainatu, OK bada.
>> Beraz, ez naiz oskol gauza bat erabiltzeko egingo duten ahalbidetzen niri, funtsean, bi kopia exekutatu
paraleloan programa honen.
Beraz, lehen programa exekutatu izango da eta paraleloan bigarren programan.
Beraz, orain Sartu sakatzen badut, joan da eskaera hurbiltzen dela egiteko
berehala, aldi berean.
Hargatik eman honen jaurtiketa bat.
>> Beraz, gaur egun nabarituko bi prozesu dio.
Eta ari zaren bitxia bada, hori 27.000 zenbakia prozesuaren izena da, funtsean.
Eta orduan konturatu dira, inprimatuta beno, aldi berean.
Ez zen horrela bost itxaron behar izan dugu bat eta, ondoren, horren ondoren segundo,
bost segundo geroago bigarrena lortu.
Beraz, mota horretako, nolabait, ez da ez benetan frogarik, baina da
intuitiboa frogarik ez dela besterik bost segundo zain eta blokeatuz bezala
haria osoa.
Ados cool.
>> Beraz Aaron lehenago galdera bat eskatu duten izan zen, baita zer zerbait egin dugu bada -
Yep?
>> AUDIENCE: Itxaron.
Nola ez dagoen beste printf buffer, nahiz eta?
Ez du automatikoki egiten da hori?
Zergatik kezkatu behar dugu?
>> KEVIN SCHMID: Oh, ezin izan duzu denbora gehiago bat dela esateko?
>> AUDIENCE: Ez dauka printf buffer gustatzen zehatza gauza bera egin?
>> KEVIN SCHMID: printf bufferra?
>> IKUSLEEN: Bai.
Ados.
Ezin izan ziren galdetegiak batean eskubidea nola baduzu printf buruz hitz egiten
zerbait, eta ondoren izan bat pausatu da bigarren, eta egin behar duzun da begizta hamar
aldiz, hamar segundo itxaron beharko da eta Orduz printf dena batera?
>> KEVIN SCHMID: Oh, OK.
>> AUDIENCE: Is bera egiten da ondoren, gauza kasu honetan?
>> KEVIN SCHMID: Galdera izan zen funtsean ohia galdetegiak batean
edo zerbait, ez dago galdera bat zela funtsean inprimatu f 10 esaten baduzu
garai batean gauzak eta orduan bezala lorik horiek inprimatzeko prozesua,
arrazoi batzuk amaieran, litzateke besterik irauli horiek guztiak pantailan.
Beraz, ez da bi mota desberdin kontzeptu hemen.
>> Beraz, uste dut gauza bat dela, hau kasuan, bi desberdinak aurre ari gara
moduko jende zerbitzariari eskatuz aldi berean, gauzak egiteko.
Eta arrazoia duten printf mota horrelako itxaroten eta zabortegiak guztiak izarrekin
aldi berean gehiago lotuta dago nola printf mota -
beraz, modu printf da, benetan ezarri da, funtsean duzu zure alde
sistema eragilearen hitz idatzi kontsola stuff hori.
Beraz, ez du hori guztia egin nahi stuff berehala printf esan duzu
kate batzuk ezin izan delako lortu garestia bada nahi
egin aldi bakoitzean.
>> So egiten baduzu printf hey, zure programa Agian ez da inprimatzen duen
berehala kontsola.
Esan du, Ongi, idatzi nuen.
Eta gero motatako duzu eman arte itxaron egia esan aurretik apur bat gehiago
idazten dituzten kontsola.
>> Beraz, arrazoi hori zela kasuan -
eta mota zerikusirik da lo egin -
da loa dela sort besterik ez zen bertan injektatu ahal frogatzen du
Izan ere, ez dela idatzi sinkronikoki da.
Baina hori arrazoia da besterik errendimendua ez duzu, beraz, behar
Kontaktu asko egin sistema eragilea.
>> Baina hemen, benetan zer egiten saiatzen ari gara loa gauza honekin ikuskizuna besterik ez da
denean bisitatzen bi pertsona behar dugu Web gune honetan, ez da jarri joan
horiek lerro bat non nik esango in Denean nago laguntzeko, eta ondoren daukat
erabat amaitu duzu lagunduz hauen ondoren bost segundo, orduan noa joan
hurrengo pertsona aldera mugitu.
Beraz, lehen pertsonan eskatuta ez du gorbata gora ekitaldi begizta duen
zentzua badu.
>> Baina hemen da, benetan adibide bat hori izango gorbata zerbaiten
Ekitaldia begizta sortu.
Hortaz, hona hemen funtzio izugarria da konputatzeko Ngarren Fibonacci.
Da literalki okerragoa ahal duzun modu konputatzeko Ngarren Fibonacci zenbakia.
Eta hori da, benetan besterik aitortu non honetan, zetorren
ez da benetan -
Esan nahi dut, aurkitu joaten saiatuko dezakezu - baina ez da oso luzea blog baten antzera
bidaltzeko norbaiti idatzi.
Da Reddit gauza horietako bat bezalakoa da.
Baina norbaitek kritikatu Node.js, eta hau erabiltzen dute adibide gisa.
Beraz, mota horretako nahi nuen besterik erakutsiko duzu bi desberdinen ikuspegiak besterik lortu
orokor bat kontzeptuak ulertzeko bi gauza horiek atzean.
>> Baina hori besterik ez da izugarria gisa aukeratu, horribly eraginkorra computationally
kalkulatzeko modu intentsiboko n-garren Fibonacci zenbakia.
Beraz, besterik Alboko ohar bat, zergatik da modu batean izugarria duen bezala?
Yep?
>> AUDIENCE: Say hasten zara 1.000 batera daudelarik.
1.000 zatitzen 999 eta 998 sartu.
Honen bakoitzean bi gauza zatitzen.
>> KEVIN SCHMID: Eskuin.
>> AUDIENCE: modu guztiak behera.
>> KEVIN SCHMID: Zehazki.
Beraz, besterik gabe kamera errepikatu, badut deitu FIB buruzko 1.000 edo antzeko zerbait
duten bezala, jakina da ez baino gutxiago da edo bat berdina beraz noa joan
bestela, kasu honetan joan, eta orduan egingo dut deitu FIB 999 plus FIB 998.
Eta gero, nahiko askoz guztiak horren 999 ez FIB duten lana da
motatako maila honetan.
Behera joan behar bada, are gehiago, erredundantea da hori baino, baina izanez gero, besterik gabe
Uste informatika FIB 998 lortzen gurekin 999 FIB nahiko hurbil.
Beraz benetan behar apur bat gehiago izango dugu nola motatako berrerabiltzeko dugu buruz clever
horiek, baina, ez gabiltza berrerabiliz Gauza horiek guztiak at.
Beraz erraldoi honetan imajinatu dezakezu, erraldoi zuhaitz hori besterik izugarria.
>> Baina hala ere, Ados.
Beraz, FIB zen.
Besterik exekutatu pixka bat hartzen du.
Yep?
>> IKUSLEEN: [INAUDIBLE].
>> KEVIN SCHMID: Oh, ezin izan duzu galdera errepikatu?
>> IKUSLEEN: [INAUDIBLE].
>> KEVIN SCHMID: Oh, beraz, hau besterik ez da kode hori ordenatzeko on izango da
zerbitzari alboko.
Beraz, hau ez da aurkitu egingo nabigatzailea edo ezer.
Funtsean zer dugu hori denean erabiltzaileari hemen nahiko askoz marka
bere eskaera berriro, noiz ordenatzeko dugu eskaera egiteko, deitu goaz
funtzio honetan zerbitzari aldean.
Eta gero emaitza lortu dugu funtzio hori deituz from.
Eta gero, besterik ez dugu inprimatu erabiltzailea da.
Beraz, erabiltzaileak ez du benetan aurre egiteko Funtzio honekin gehiegi.
>> Izan zen galdera hori?
Ez duela zentzurik?
Ados.
Cool.
>> Beraz, berriro ere, res.writeHead honetan guztian egiten dugu Gauza non inprimatu dugu
goiburua.
Eta gero eginez erantzuna amaituko dut zenbakia magia FIB 45 da.
Hargatik zerbitzari hau exekutatu besterik gabe.
Naiz, beraz Nodoa fib.js. bat egin da joan
Beraz, orain nire FIB zerbitzaria exekutatzen ari da.
>> Eta gero, hara, noa horietako bat egin ahal izateko.
OK?
Naiz, beraz, erraitea, Curl joan.
Beraz, pixka bat hartu du, baina espero dut laster eta, bukatzeko, izango da
egingo 45th duten inprima ezazu Fibonacci zenbakia.
>> IKUSLEEN: [INAUDIBLE].
>> KEVIN SCHMID: It should ezagutu nahiko laster egin.
Beraz, bost edo sei segundo hartu behar da.
Ez dakit hori besterik V8 super izateaz azkar, baina, edozein kasutan, hau da, bat
Adibidez, oso laburra eta nahita ez hutsala baten inelegant
konputazio.
Beraz, pixka bat egin ondoren, lortu du honek.
>> Baina orain, egiten dudana bada mota bera esperimentu non egin dut orain arte bezala
bi eskaerak aldi berean?
Beraz, hemen ez naiz on Curl bat joan helbide hori, eta egingo dut
beste Curl egin.
Eta gogoratu, orduan ez genuen hau egiteko lo zerbitzari denean, funtsean izan genuen bertan
bost segundo ondoren, nahiko askoz bai eskuinera itzuli zen
Aldi inguruan.
Beraz, ez zen bereziki berdinketa egin.
>> Baina dezagun saiatuko da orain.
Ados, beraz, gure bi prozesuak lortu dugu.
Gogoan hartzen dira prozesu identifikazioak.
Hau da, apur bat izango da joan baldar saltoki dugun bitartean.
Hargatik hemen lo besterik gabe eta itxaron.
>> Beraz, haietako bat etorri behar bezalako ondoren itzuli -
Ados, beraz, itzuli zen.
Baina orduan zergatik ez zuen bigarrena bat itzuli, besterik gabe?
Yep?
>> AUDIENCE: zerbitzariak ezin ezer egin nik kopuru handi hori informatika bitartean.
>> KEVIN SCHMID: Eskuin.
Beraz, erantzuna izan zen, besterik gabe, zerbitzariak Benetan ez da ezer egin bitartean
Honez Fibonacci zenbaki hori informatika da.
Beraz, orain lortu dut nire bi gauza atzera.
Baina asmatzen dut besterik ondorengo kodea pentsatzen apur bat gehiago, nola lan egiten
eta dena.
>> Beraz, funtzio hau hemen kodea da duten Zerbitzari honetan kontatu dudala exekutatu noiz
sarrerako eskaera berri bat jasoko du.
Beraz, besterik ez da behar honetan zehar ibiltzen joan kode osoa, eta gero joango gara
Ekitaldia begizta itzuli eta gero jarraitu Ekitaldi berria egiaztapena.
Beraz, funtsean, zer gertatzen ari ditugu da zerbitzaria da
gauza berriak entzuten.
Lehen zer pertsona 45 da eskatzen.
Hura kalkulatzeko kode hau exekutatu dugu.
Kode hau hartzen du gutxi gorabehera bost Sei segundo behar exekutatu.
Ondoren, atzera egin dugu ekitaldi begizta egiteko eta eskaera berriak egiaztatzeko.
>> Beraz, hori nola adibide bat da, zuk duten compute deiturikoak dira gauza izan
loturik, edo konputazionala asko erabili, ez botere, baina bezalakoak dira
eskakizun handikoak -
Uste dut gauza bat esan honi buruz da funtzio hori erabat egiten ari da,
zati handiena, nahiko lanerako eskubidea erabilgarria.
Denbora osoa duten callback duten funtzioa exekutatzen zen, nahiko izan zen
askoz bere denbora gehien gastatu besterik informatika duten Fibonacci garren zenbakia.
>> Baina hari bakarra izan genuen landu.
Apache ereduan, bi pertsona denean eskaera FIB 45 lortzeko egin, dugu
bi hariak ezberdinak izan litzateke.
Eta, ondoren, sistema eragilearen lana zatekeen, edo erabiltzaile-maila
hariak kudeatzen duen kodea, Pentsamendu izan duten xerra sortu da
CPU, edo PUZ bat baino gehiago izan badituzu ere, Horietako berdinarekin PUZ zehar banatu
beraz, bi akabera ziren Gutxi gorabehera aldi berean.
>> Beraz, besterik gabe, erakusteko nola ordenatzeko dezakegu - eta hau ez da guztira perfektua
konponbidea, baina moduko ezin dugu nola egiteko bat atzera hona etorri eta egin
pixka bat hobeto.
Beraz, hemen zer daukat izeneko programa bat da FIB C. Eta hori funtsean erabiltzen
bestera deitzen Nodoa en modulu bat Child Prozesua modulua.
Beraz, Sartu dut, goiko nolako at dagoen bezala libra bat egin nahi dut, besteak
Umea process.h edo zerbait.
Orain CP aldagai hau dut eskura horrek nire funtzionalitate guztiak ditu.
>> Beraz, orain zer erantzun hau dut egiten ari naiz kudeatzailea da programa hau exekutatzen ari naiz
dot barrarik FIB 45.
Beraz, zer egin dut - eta besterik ez naiz joan urratsa programa hau daudelarik batentzat
Pixka -
da C programa bat idatzi dut horretan funtsean kalkulatzen du
n-garren Fibonacci zenbakia.
Beraz, hemen besterik programa bat idatzi dut C hori kalkulatzen.
I konpila dezakezu, eta ezin exekutatu I komando-lerroan ere.
Eta hori konputatu egingo da 45th Fibonacci zenbakia.
>> Beraz nabarituko hartzen besterik ez da nahiko askoz betiere.
Ziurrenik dut etenaren 03 erabil zitekeen optimizatuko da, edo horrelako zerbait,
baina erregular bezala, egin dut, konpiladoreak ezarpenak.
Eta hura bistaratzen da.
>> Baina orain, zer naiz motatako egiten dut?
Oh barkatu, oker fitxategiak.
Beraz, gauza bera egiten dut goiburua lehen bezala.
Ondoren cp.exec hau egin dut.
Beraz, zer da hori egin egingo da da da programa hau exekutatu.
Baina obra hau dela ez da itxaron joan
programa hori amaitzeko.
Dio besterik funtsean, programa hori exekutatu.
Beraz, funtsean, idatzi hau sartu gonbita moduko aginteaz.
>> Eta gero, egiten ari zaren da, funtzio hau exekutatu.
Beraz, orain dugu mota lor honetan du gauza osoa zaharberritu
bezala ez gaude zain.
Mota hori egin du zentzurik?
Yep?
>> IKUSLEEN: [INAUDIBLE]?
>> KEVIN SCHMID: Beraz, hau izango da benetan ireki prozesu berri bat egin behar den.
Beraz, hau da, benetan, nolabait, gaiztoak, ez super gaiztoak, baina hala da,
hori da mota esateko garrantzitsua atzera egingo, batetik, Apache
Eredu non hari eta prozesuak egiten dugu eskaera bakoitzean edo
eskaera bakoitzeko prozesuak.
Beraz, hau da antzeko moduko Apache zer ez den.
Kasu batzuetan, besterik erabiliko du berria haria, hau da, pixka bat gehiago argi
prozesu bat baino pisu, baina Apache Could azkenean, prozesu berri bat banandu
horrek hemen egin dugu antzeko zerbait da inplizituki dot barra FIB 45 eginez.
>> Eta gero, kasu horretan, mota ordaindu beharko dugu prozesuak gastu bera.
Beraz, gauza egin dezakezu bat besterik ez da.
Baina besterik entzierro moduko hau erakusteko.
Eta eztabaida hau besterik ez da benetan zuzenduta Programa hauetan aurkezteko moduan
bidean ikuspegi desberdinak erakusteko nola horrelako zerbitzarietan diseinatzeko.
Beraz, hau martxan dago, eta, ondoren, orain ez dut hau berriz, bi prozesu identifikazioak lortu nuen.
>> Dezagun buruz hitz besterik gauza azpimarratzea.
Beraz nabarituko handitik Oraindik dutela.
Hori da cool.
27.122 zelako aurretik.
Baina abisua orain, itzuli ziren gutxi gorabehera aldi berean.
>> Eta orain, galdera ona izan galdetzeko zergatik zen horrelakorik egin, hau da, bere lana
orain zen ordenatzeko egiteko gauza horiek motatako play arrazoizko bakoitzarekin
beste, bi instantzia horiek dot barra FIB 45 duten I ran
edo Nodoa ran duten?
Duten moduko egiten du azoka dutela bai get motatako orekatua run denbora?
>> IKUSLEEN: [INAUDIBLE].
>> KEVIN SCHMID: Bai.
Beraz, funtsean, noiz egin behar dut dot barra FIB 45 edo horrelako zerbait, orain da
motatako sistema eragilea sortu nahi kudeatzeko programak horiek exekuzio du.
Eta orain, horiek antola daiteke PUZ edo beste on
haiek antola ditzakezu.
Sortu xerra daiteke garai bat CPU egingo du edo dute, hori lortzeko
den PUZ batean exekutatu.
Beraz, horren atzean dagoen ideia da.
Ez duela zentzurik denek?
Beraz, orain Nodoa ez da benetan bat jotzen Zeregin horiek zatituz parte.
Ados.
>> Beraz, ia adibide da.
Nahi dut gauza bat gehiago erakusteko honek asko orain arte izan delako
Ez erabat super praktikoa zenbait kasutan.
Etxera datozen honen ondoren ezin dut imajinatu hitz egin eta zerbait eta antzekoak esanez,
baita mota I got eztabaida hori duten Fibonacci zerbitzari bat I egin ahal
nire azken proiektua.
Hortaz, hona hemen moduko adibide bat gehiago besterik ez dela espero da izango -
agian ez, baina agian - apur bat gehiago Sort azken proiektu garrantzitsuak eta
aurretik pentsatzen horrelako gauzak egiteko.
>> Beraz, hau da chat.js.
Beraz, hau da, mota horretako gustatzen lagin batzuk zuk erabili liteke zerbitzari albo kodea
sortu txat bezalako zerbitzari txiki bat zuk ikusi zenuen
Facebook Chat edo dena delakoa.
Beraz, ez dut esaten hau Facebook bezalakoa da Berriketan, baina hau da, mota
agian ez da ona, baina agian - on bat bezala ona - hasten txat bat puntu
Zure web zerbitzaria azken proiektu baterako.
Hargatik begiratu zer egiten ari da egun.
>> Hain ari gauza berezi hau lortzeko dugu goialdean, hau var SIO
berdinen eskatzen Socket.IO.
Beraz, horrek ez du hori beste gauza bat da benetan etorri saltzen
Nodo baina instalatu dezakezu.
Nodoa modulu bat da.
Beraz da zenbait bezala Nodoa luzapena.
>> SocketIO da benetan benetan cool mota.
Abstrakzio bat dela, funtsean, zer da egiten da da zuk aukera ematen du
komunikazio korronte hau izan web baten arteko
nabigatzailea eta web zerbitzari bat.
Beraz, zati handiena, orain arte eman, izan dugu bigarren edo bi hauek oso azkar bat
web baten arteko bigarren komunikazioak nabigatzailea eta web zerbitzariak.
Beraz, google.com, get joan funtsean stuff, bidaltzen da atzera, eta, ondoren,
Bukatutakoan dugu.
Inoiz gehiago ari gara hitz egiten ari den bitartean, Erabiltzaileak beste zerbait motak.
>> Baina zer Socket.IO eta antzeko moduko gauzak - eta SocketIO da, benetan bat
hori eraiki on bezala gauza Web Sockets moduko den eskuragarri
HTML5 zati gisa -
aukera ematen duen hau izan behar dituzu etengabeko elkarrizketa.
Eta hau da, oso erabilgarria txat zerbitzari batean Gauza mota delako
motatako etengabeko elkarrizketa bat bezala Nolabait duzulako berriketan ari bada
norbaitekin, orain dezakezu besterik bidal bat kanalizazio behera mezua, eta, ondoren,
zerbitzari mezu bat behera bidali ahal beste pertsona Oraindik pipa
txateatzen.
Eta ondoren, hau izan dezakezu horrelako trukatzeko.
>> Beraz, zer motatako SocketIO ona.
Duten SocketIO WebSockets erabiltzen arrazoia Gauza bat da gisa horretako
WebSockets besterik gabe Plain Old gain, trikimailu batzuk egiten ere funtsean
Nabigatzaile bateragarri egiteko.
Beraz, Internet Explorer bezalako nabigatzaile zoritxarrez ez WebSockets onartzen
eskuineko koadroan.
Beraz, beste cool neat mota batzuk erabiltzen ditu Adobe Flash gauza baimendu
nabigatzaileak cross laguntza izan duzu.
Beraz, benetan erabilgarria da.
>> Eta egia esan, badakit motatako naiz Hemen denbora exekutatzen, baina CS50
Eztabaidatzeko, inoiz zerbait ikusi al duzu bezala, ez dakit, beraz, hutsik eta hain da
post edo zerbait honi erantzutean duten bezala, ezaugarri hori?
Hori da SocketIO.
Beraz, norbait idazten hasten denean eztabaidatzeko kutxa erantzun bat edo egiteko
zerbait, zure nabigatzaileak ez zer SocketIO izeneko nolabaiteko igortzen
Ekitaldia esaten duen norbait da post hau erantzutean.
>> Ondoren, zerbitzariak dio, OK, zer egin behar dut?
Beno, orain, beste guys horiek kontatu nahi izan dut nork CS50 daude eztabaidatu bila
post honetan duen norbaiti erantzutean.
Beraz, hori da SocketIO zer den mota , jarraitu mota hau ona
elkarrizketaren korrontea.
Ados.
>> Beraz, hemen zer egin behar dut - eta besterik ez gara konexioak array ez da joan
Pixka bat -
dudana da beste bat, ez dut entzun.
Beraz, hori besterik Socket.IO in bidean dago dezagun entzuteko ataka honetan esaten.
Eta, ondoren, egin behar dut konexioa.
Beraz, hori besterik funtsean Socket IO en , esaten denean bat jasoko dugu modu
konexioa, nahi dut kode hau exekutatu.
>> Eta konturatu ordez rec izatea eta han gainditu res Socket daukat.
Eta Socket ideia hori da, funtsean, honetan duzula, idatzi eta irakurri ahal izango da gauza
horretatik aurrera ditu erabiltzaileen du mezuak, seguru.
Eta hori bidali nahi duzun mezuak daiteke Socket horren bidez joan.
Ez duela zentzurik?
Beraz, etengabeko gauza hau ez da.
>> Beraz, egiten dudana da Socket.emit deitzen dut.
Eta igortzen hartzen nahiko Askoz bi argumentuak.
Lehen argumentua katea da besterik motaren ordezkari
Gauza igorle ari zaren.
Beraz, kasu honetan, erabilera dut katea mezu berri hau.
Eta hori besterik ez da, funtsean, esaten duten gauza hau mota, zer naiz
bidaltzea, mezu berri bat da.
Beraz, mota zehatz duzu entzun dezakezu Mezu edo dena berria bezala
on dot erabiliz.
>> Beraz, konexio eta erabiltzaileak bidaltzen badira, bada non dot on deitzen diogu begiratu duzu,
horiek ordezkatzen dituzten beste kateak dira Erabiltzaileak mezu mota.
Beraz, funtsean da igortzen hau izan dezakezu Mezu mota horietako bat, eta
gero zerbait egin erantzunez Mezu mota horietako bat
>> Beraz, mezu berri hau igortzen dut.
Connections.push alde batetara goaz bigarren bat.
Baina, ondoren, esaten dut Socket.on erabiltzaileari bidali.
Beraz, gaur egun, mota horretako gustatzen noiz Erabiltzaileak mezu bat bidaltzen dit, nahi dut
kode hau exekutatu behar duzu.
Eta nabarituko duten funtzio anonimoa duten da aldagai honetan hartu
hau da, funtsean, joan datuak izeneko erabiltzaileak duen mezua izan.
>> Beraz, gaur egun utzi buruzko eztabaida mota konexioak array.
Beraz txat bezero bat da hau diseinatu non, funtsean, denek motatako da in
txat areto berean.
Beraz, funtsean, zer gorde behar dugu array batzuen ingurukoa da funtsean
pertsona guztiak txateatzen adierazten Nolabait, zentzua badu.
Ezta?
Duten guys horiek jakin behar dugulako dira, beraz, horietako mezuak bidali ahal izango dugu
beste jende guri bidaltzeko.
>> Beraz, zer kode hau ez da erabiltzailea mezu bat bidaltzen - duten mota da
Ekitaldiaren -
kode hau exekutatu goaz.
Eta zer egiten da honen bidez exekutatu dugu array duten konexioak deitu duguna.
Eta nahiko konexio bakoitzerako askoz ko duten gurea izan ezik, hori
zer kode hau dio, berri bat bidaliko dugu atxikitako mezua duten mezua
informazio.
>> Beraz, hemen nabarituko duzu, zer egin nuen orduan erabiltzaileari benetan egiten berria
batera Nik erantsia konexioa da JavaScript.push metodoa, hau da,
funtsean, esanez bezala gehitu Socket horretan balio gisa
gure konexioak array.
Beraz, gaur egun kode hau exekutatzen denean, izango da gauzak bidaltzeko jakin horiek
konexioak.
Beraz, hau abiapuntu ona izan daiteke txat zerbitzari bat egiteko
edo antzeko zerbait.
>> Eta cool gauza mota da hori horretan hemen bezala ikusten duzu, eta kode
igortzen eta horrelako gauzak bera da JavaScript kodea moduko duzu litzateke
nabigatzailea berarekin idazten zerbitzariarekin.
Beraz, horregatik SocketIO motatako da garbia eta modu horretan erabilgarria.
>> Oh, eta gauza bakar bat gehiago benetako azkar.
Iaz, CS50 azken proiektu bat funtsean txat bat abian
Node.js. zerbitzari
Uste dut Harvardchats.org baina ez naiz -
Ados.
Ez nago ziur zer URL da, baina Dut hori bidal daitezke gero.
Baina mota horretako cool zer Node.js. egin dezakezu
>> Beraz, espero dut, oro har, asko guys have a Node.js zer den baliagarria zentzu ona
eta nola liteke agian aplikatzen duzu zure azken proiektua da.
Batzuk gehiago behar dut bidaliz egingo honekin batera baliabideak.
Eta eskerrik asko etortzeagatik.
Eskerrik asko.
>> [Txaloak]