>> GABRIEL Guimaraes: Þetta er CS50.
Velkomið að Amazing Vefur Apps með Ruby á Teinn.
Svo hver er áhuga á vefnum fyrir alla þróun og gerð vefsíður, vefur
forrit, Ruby á Teinn er þetta ótrúlegt tól sem Twitter, GitHub,
Groupon, og alls konar mjög gott, og stór, vefur umsókn eru að nota í
síðustu ár.
Og það er virkilega, virkilega flott lögun, a kaldur tæki,
því það er nýtt.
Svo það hefur allt ný öflugt tækni felldar inn í einn
ramma sem hjálpar þér að takast á við alls konar frábæra hluti.
>> En hvað er rammi?
Svo er rammi grundvallaratriðum eitthvað sem skapar -
þegar þú byrjar a website, ef þú ræsir frá grunni, eins og þú opnar
gedit þar, og þú vilt að kóða alla af HTML, og númer á alla
PHP, allt CSS þinni, allt frá grunni -
það er bara að fara til vera a einhver fjöldi af vinna.
Og rammi gefur þér bókstaflega helmingur af the website gert nú þegar.
Svo þú byrjir með hálfa vefsíðu sem hefur allt til staðar fyrir þig.
Eins og tengingar gagnagrunninum, og allt konar hlutir sem þú þarft að hafa áhyggjur
um ef þú ert að gera það frá grunni, þú þarft ekki að hafa áhyggjur af þeim
lágmark láréttur flötur upplýsingar.
>> En í dag erum við að fara að flytja eina af vefsíður sem freshman af
flokki 2017 eru líklega kunnugt.
Þannig að þetta vefsvæði er vefsíða sem ég gerði fyrir bekknum okkar yfir sumarið.
Það var vefsíða þar sem nemendur í flokki 2017 gæti skrá þig inn og
samskipti við hvert annað.
Og þá er þetta kort -
allir, þar sem fólk er.
Og við áttum bók leiknum, Lög leikur þar sem við sáum lög fólks og
bækur fólks.
Hvað þeir vilja lesa, hvað þeir vilja til að hlusta á.
Og áhugaverður hluti af því er að það tók bókstaflega mig þrjár klukkustundir
að kóða allt það.
Vegna þess að ef ég þurfti að gera allt frá klóra, eins og að opna upp gedit, það
myndi líklega hafa tekið mér 20, 30 klst.
En með Ruby á Teinn, því allt var þegar sett upp fyrir mig,
það tók aðeins mig þrjár eða fjórar klukkustundir, eða eitthvað svoleiðis.
>> Svo er það Ruby á Teinn.
Ruby á Teinn, aftur eins og við nú þegar sagði, er umgjörð.
Þetta er mynd af ramma.
Svo þú ert að fara að byrja að byggja upp hús, ert þú nú þegar helmingur af
Húsið gert.
Það er rammi.
Og Ruby á Teinn er nákvæmlega eins og þessi.
Og þú ættir að hugsa um það sem þú byrjar a website, þú byrjar þinn vefur
umsókn, höfum við nú þegar helmingur af því gert þarna.
En fyrst af öllu, hvað er Ruby?
Ruby á Teinn notar Model View stjórnandi, sem er fyrirmynd, sem
er mjög áhugavert -
og öll forrit nú á dögum nota eitthvað svoleiðis.
Þessi hugmynd um að aðskilja hlutina í þremur hlutum, en fyrirmynd, útsýnið, og
stjórnandi.
Við erum að fara að tala svolítið meira um það síðar.
>> Fyrst, hvað er Ruby?
Þannig að þetta er Ruby.
Og þetta er tákn um tungumál sem heitir Ruby.
Ruby er eitt af newish túlkuð tungumálum, svo handrit.
Það er tungumál sem er ekki saman eins C. Það er tekið saman á flótta.
Svo er það gott því, rétt eins og PHP, til dæmis er einnig túlkað, er
ekki saman.
Það er gott vegna þess flytjanlegur þess.
Svo þú fara bara kóðann þinn frá einni vél til annars.
Frá Linux vél, til Gluggakista vél, til Mac eða Apple vél, eða
eitthvað svoleiðis.
Og þú þarft ekki að hafa áhyggjur Upplýsingar um hvert hinna sérstöku
stýrikerfum.
Það er að fara að vinna alls staðar.
>> Og Ruby er tungumál sem -
þú krakkar sennilega muna þetta.
Fólk notar kjötkássa virka framkvæmda í C fyrir kjötkássa borð
í síðustu viku og hafði alls konar skiptingu galla.
Og þá hlutirnir hafa áhyggjur af því hvort að strengur ég þar, band ég
hér, var reyndar lágstafir eða hástafi, eða þessir góður af áhyggjuefni
lágmark láréttur flötur upplýsingar.
Jæja í Ruby, ef þú vilt að framkvæma kjötkássa borð, þetta er nákvæmlega hvernig þú
búa til kjötkássa borð.
Þú segir, orðabók, það er nafn breytu mínu = "Hash.new".
Og þá orðabók ["foo"], og þegar ég er bæta foo til kjötkássa borð mitt, ég er
bara að segja foo er þar.
>> Og þá ef ég vildi athuga hvort foo var þar, segi ég bara ef
orðabók ["foo"] == satt aftur sannur.
Whoa, og það er kjötkássa borð þitt.
Það er framkvæmd af kjötkássa borð í Rúbín.
Svo allir vildi að þeir gætu hafa notað eitthvað eins og Ruby fyrir síðast
viku pset, ekki satt?
Við höfum alls konar ástæður til að vilja að nota tungumál eins og Ruby.
Ruby hefur gems.
Gem er nafn fyrir a góður af bókasafni í Rúbín.
>> Svo alls konar áhugaverðum eiginleikum að þú getur haft, til dæmis, ef ég
vilja til að aðlagast umsókn mína.
Það Harvard 2017 umsókn var samþætt við Facebook.
Svo þú gætir skráð þig inn, með Facebook, til app.
Svo ef þú ert að fara að gera það, þú þarft ekki þurfa að hafa áhyggjur um að senda nokkrar
HTTP beiðni til Facebook, og bíða fyrir svar, og þvinga
svar, og bla, bla, bla.
Þú sækja bara gimsteinn sem gerir allt sem fyrir þig.
Og þá þarftu ekki að hafa áhyggjur allt um það.
>> Og þá nóg af hjálp netinu, að sjálfsögðu.
Það eru margir, margir, margir vefsíður sem eru að fara að hjálpa þér bæði með
Ruby og með Teinn.
Og það er hellingur af gaman að kóða.
Einmitt vegna þess að þú getur hætt að hafa áhyggjur um þá ekki svo gaman vandamál.
Eins og ef eitthvað er lágstafir eða hástöfum, og þá hvers vegna er þetta
gefa þér skiptingu og átölulaust, og þú getur í raun að kafa í mjög
áhugavert efni.
Að kafa í the raunverulega kaldur vandamál.
>> Svo er Ruby alveg eins í C í vissum skilningi.
Svo það er ekki að fara að vera að stór af stökk í raun.
Svo setur, það er prenta app okkar í Ruby.
Ég held að þú getur notað prenta líka, en setur er það sem allir aðrir nota ósýnilega.
Svo bara setur "Hello World".
Þú gætir, eða þú getur ekki hafa The sviga umlykur
"Hello World" þar.
Þú getur bara valið hvort eða ekki til að nota það.
Og þá x = "1".
A meðan lykkja lítur falleg mikill the sami.
Það hefur bara minna setningafræði.
Það er góður af hreinni svolítið.
Og þá ef x> 25 setur "Big!" og annað setur "lítill ...".
Og það er góður af C í þeim skilningi.
>> Þannig að ef þú horfir á það, þú getur nálgun sennilega skilja
allt sem er að gerast.
En það er fleiri öflugur.
Öflugri því, meira en það, Það getur gert það er ekki það -
einhvers konar hackage smá.
Í C þú getur ekki gert í bara gera með einni línu.
Til dæmis, setur "Ég er # {x}".
Þetta er bara setningafræði fyrir að setja gildi af X hér, og gera prenta ekki
eðli x.
Í C sem þú þurfti að gera prósent d, og þá setja upp breytu x eftir
komma hér, eða eitthvað svoleiðis.
>> Og í Ruby það er styttingin fyrir bara að gera það.
Og setur þetta, ef x> 3, svo þú getur setja ef allt í einni línu.
Og þá lista.
Listum C, eins og fjölda, þú þarft að halda utan um hversu stór fylking er eða
að öðru leyti þú færð skiptingu kenna.
Array er aðeins ein tegund.
Svo það er annaðhvort fylki endurgjalds eða fylki af heiltölur.
Í þessu tilviki, búin I til lista hér, sem er fylki, sem hefur fyrst
þáttur er band, John, og þá fjórir, tveir - þeir eru heiltölur.
Og þá er ég bara að bæta, lista, sem Vinstri Horn Bracket, Vinstri
Horn Bracket, þrír.
Það þýðir bara auka eitthvað við listann minn.
>> Svo er það góður af meira áhugavert vegna ef þú vildir nota þetta sem
bara einfaldur listi heiltalna, þú gætir, algerlega.
Það er algerlega fínt.
Bara setja heiltölur þar.
En ef þú vildir gera eitthvað sem er meira sannfærandi, sem hefur annað
hlutir, sem hefur -
Ég veit ekki, alls konar listum í þar, eða aðra hluti sem eru meira
áhugavert, getur þú alveg gert það.
Það er alveg í lagi.
Og þá ef þú vilt iterate gegnum lista, getur þú notað
meira C-ish konar nálgun.
Það er fyrir lykkju, þér að hefja breytu, i = "1", eða i = "0".
Og þá fara, og kunnugt er, og fá alla þá þætti.
>> En þú gætir líka notað þetta meira Ruby-eins og nálgun.
Það er bara eins og list.each.
Það er bara að segja, aftur mig allir þættir á listanum.
Og gera með hvert frumefni, kalla þá ELEM.
Svo er þetta bara nafn sem ég er sem gefur til hvers frumefni.
Og nú er þetta að fara að endurtaka fyrir alla þá þætti, og ELEM, það er að fara
að vera á þann hátt að við aðgang að einn þáttur.
Svo þú gætir alveg standa við C nálgun, en þetta virkar líka.
Og það er nákvæmlega það sama, OK.
>> Og annað en það, er það í raun, mjög auðvelt að samþætta Ruby og HTML
Þar sem þú krakkar hafa áhuga í vefur umsókn.
HTML er örugglega eitthvað sem þú ert að fara að nota mikið.
Og hér ef þú vildir setja Ruby í HTML, bara byrja hér, <%.
Það þýðir, hér Ruby byrjar.
Og þá%>, góður af eins og PHP í þeim skilningi.
Hér lýkur Ruby og þá getur þú bara setja þinn ef hérna.
Og þá er ég með breytu user.logged_in.
Í Ruby, bæta við yfirleitt þeim, annað hvort yfirheyrslu merkja eða upphrópunarmerki
tákn, eins og banka eðli, bara til hvers konar
greina á milli virka okkar.
En þú setur bara það fyrir eigin sök þína.
Það er ekki eitthvað sem breytist eitthvað í virkni.
>> Svo bara að minna mig á að þetta er virka - og aðgerðir í Ruby,
frekar en C, eins og ég sagði þegar, þeir þurfa ekki svigans.
Þannig að skráður í neitt, sem er fall, sem er aðferð.
En þú ert ekki beinlínis þurfa að setja sviga þar.
Svo bara spyrja ef notandinn er skráður inn, og ef notandinn er skráður inn, nú
HTML byrjar aftur.
Svo velkomnir, og hér Ég prenta user.name.
Og það er það.
Svo er það laglegur beinn áfram, hvernig þú samþætta Ruby með HTML kóðanum.
Og auðlindir, eins og ég sagði, það eru alls konar úrræði fyrir Ruby.
Þú krakkar geta allir líta þetta upp eftirá því bæði vídeó og
glærur, eru að fara að aðgengileg á Netinu.
>> Og nú skulum við fá inn Teinn.
Teinn er ást.
Teinn -
svo er Ruby tungumál hans.
OK, bara eins og PHP, bara eins og Python.
Það er a hár láréttur flötur tungumál, ekki eins og C. C miðja, lágmark-láréttur flötur tungumál í
að því leyti að Ruby þú þarft ekki að hafa áhyggjur af minni endurúthlutun, og
ábendingum og þeir konar hlutum.
En Teinn er þetta forrit sem var skrifað í Ruby.
Og það notar Ruby, í því skyni að hafa þetta ramma fyrir þig að vera fær um að
byggja ógnvekjandi vefur umsókn.
>> Svo þú þarft að fyrst að setja Ruby á vél, en flest vélar
þegar hafa það.
Og þá setja teinn ofan á það.
Við erum að fara að tala um það síðar.
Og hvers vegna Teinn?
Svo MVC, það er Model View Controller við ræddum um smá
hluti, gerir allt einfaldara því það skiptir hluti sem eru
eðli mismunandi í mismunandi hlutar af umsókn þína.
Minni tíma varið í lágu stigi vandamál, aftur, og mjög, mjög
vinsæll núna.
Svo fyrir alla þá sem hafa áhuga á byrja upp vettvangur, eða í einhverju
eins og að byrja fyrirtæki, og fólk í tækni markaðnum sem eru
byrjun eigin fyrirtæki þeirra núna eru virkilega, virkilega aðdáendur Ruby á
Teinn því það er svo hratt.
>> Svo þú getur fengið eitthvað upp og keyra í minna en einn dag, og það er
í raun mjög sannfærandi rök til að nota Ruby.
Og Teinn 4,0 -
það er mjög ferskur úr ofninum núna.
Svo Teinn 4,0 -
Ég held að fyrsta útgáfa var í mars á þessu ári.
Og það er mjög gott, það hefur allt allskyns nýja, kaldur lögun.
Svo Ruby á Teinn er rammi sem er stöðugt að uppfæra til að hafa allt
nýju tækni.
>> Í fyrsta skipti sem ég reyndi að nota Ruby á Teinar, hafði ég þessa vandræði vegna þess að ég
bjóst vefur umsókn mína, og það leit nákvæmlega eins og þessi.
Svo það skapar allar þessar skrár fyrir þú, og ég hafði ekki hugmynd um hvað -
hvað er þetta?
Það skapaði allar þær skrár, og ég bara langaði til að búa til einföld forrit, sem
einföld HTML website.
Og ég gat ekki einu sinni gert neitt.
Svo ég var svolítið óvart.
En það er eitt af því sem þegar þú skilja það, allt verður svo
miklu skýrari.
Svo ekki vera óvart með fyrsta sjón af því sem þú býrð í fyrstu.
>> Svo er það sem gerist Teinn skapar öllum þeim skrám.
Svo einn af því er doc, skjöl.
Db, sem er tengt við gagnagrunn.
Lib, sem er bókasöfn skrá þig.
Almennings, handrit, og sumir hlutir.
Nánast allt sem þú ert að fara að hafa áhyggjur um er app möppuna þar upp.
Það er mappa sem inniheldur umsókn þína.
Allar aðrar skrár -
sumir þeirra eru mikilvæg, og þú ert að fara að læra um það síðar.
En þeir eru bara hér til að innihalda ramma.
Svo fyrsta hornsteinar hússins þú krakkar eru að byggja, OK?
>> En app möppuna -
það er mjög mikilvægt.
Og app möppuna hefur eignir.
Eigna er nánast allt sem er í vændum.
Myndir til dæmis, allt sem er truflanir sem er að fara til að sækja
á vefsvæðið þitt.
Svo myndir, JavaScript, CSS -
þeir konar hlutir eru eignir.
Stýringar -
við erum að fara að tala meira um hvað eru stýringar, módel,
og engi á sekúndu.
Og aðstoðarmenn eru aðgerðir sem þú Hægt er að nota allan kóðann þinn
til að hjálpa þér að gera eitthvað.
Virka eins og skráður inn, fyrir dæmi - user.loggedin.
Það er fall sem þú sennilega höfum til að nota alla hluti af þinn
umsókn.
Svo er hægt að setja eitthvað eins og að í hjálpara þínum.
>> Mailers -
það er ef þú ert að fara að senda tölvupóst til notenda, þú
vilt nota póst.
Og módel og skoðanir, við erum að fara að tala um það núna.
Svo Model View Controller, sem er Grunn hornsteinn Ruby á
Teinar og flestir ramma nú á dögum, til að vera heiðarlegur.
Svo aftur, skilja við allt númerið okkar í þrjá hluta.
Líkanið -
líkanið er í grundvallaratriðum the gagnasafn.
Það sér hlutina í gagnagrunninum.
>> Svo að hver tafla í gagnagrunninum hefur samsvarandi skrá í líkaninu.
Svo það er góður af a borð fyrir notendur.
Svo þú ætlar að geyma upplýsingar eins og notandanafn, tölvupóst þeirra, þeirra
heimilisfang, lykilorð þeirra, og svoleidis.
Þú ert að fara að hafa eina skrá í líkanið heitir notandi Rb -
RB til Ruby.
Og þar sem þú ert að fara að hafa allt af þeim aðferðum sem og breytur.
Breytur eru að fara að svara til notandi nafn, tölvupóst og
allt.
>> Og þú ert að fara að hafa þær aðferðir.
Það mun vera eitthvað um -
þú ert að fara að höndla þessar upplýsingar í gagnagrunninum.
Til að búa til líkan með Teinn, þú notar bara Teinn mynda.
Og til að búa til hluti í Teinn, þér raunverulega þörf flugstöðinni.
Svo er það mjög flugstöðinni byggt ramma.
Þú skráir þig bara inn í flugstöðina, og gera Teinn, mynda líkan.
Og nafn líkaninu er notandi.
Og ég vil bara að hafa tvær breytur, tveir dálkar, í mitt borð.
Svo er þessi email.
Email er tegund band.
Lykilorð, lykilorðið er einnig gerð band.
Þeir eru aðeins tvö atriði.
Það er góður af einföldu notanda borð.
En þú gætir alveg sett hundrað hlutur er þar ef þú vildir.
>> Og Teinn gerir það líka mjög, mjög einfalt að hafa alla
konar gagnasafn samskiptum.
Svo yfirleitt, þegar þú hefur töflur í þínum gagnasafn, þá eru þeir ekki mjög mikið
óháð hvort öðru.
Við skulum hugsa um.
Þú vilt að kaupa og selja vörur á netinu.
OK, svo þú hafa a website þar sem þú langar að kaupa og selja vörur.
Svo hver notandi hefur margar vörur sem Þessi notandi er tilbúinn að selja.
Og hver notandi hefur einnig margir viðskipti sem eru í gangi, eða
eitthvað svoleiðis.
Og viðskiptin eru með öðrum notanda.
Hver viðskipti tilheyrir til tveggja mismunandi notendum.
Notandinn sem er að kaupa og notandinn sem er að selja.
>> Þannig að þeir eru svokölluð gagnasafn samskiptum.
Og hér höfum við einmitt þessum leitarorðum, hefur margar og tilheyrir.
Þeir eru mikilvægustu sjálfur.
Og þú ert bara að fara að segja, að Þetta er td dæmi um
líkan í Harvard 2017 website.
Aftur, nemendur í hér -
Hver nemandi á heimasíðu, nemandi er fyrirmynd, er gagnagrunnur borð.
Hver nemandi átti margar bækur vegna þess að þú gæti sagt, hvað eru uppáhalds
bækur, ekki satt.
Svo að hver bók tilheyrir nemandi niður hér.
Og eigindi aðgengileg -
það er bara að segja, þá eru breytur.
Þeir eru breytur aðgengileg frá þessu líkani.
Og breyturnar eru höfundur Bókin, lýsingu, tegund, og
titill bókarinnar.
Svo bara upplýsingar um bókina.
>> Og hér er ég með aðferð sem einfaldlega skiptir öllu.
Svo skilgreina og endað hér, það er bara segja, hér kemur minn aðferð.
Self.sorted_all.
Það er bara að gefa mér allt raðað, og það er hvernig þú innleiða
á flokkun reiknirit, sem er nokkuð auðvelt.
En í grundvallaratriðum, þetta er hvernig fyrirmynd lítur út, OK.
Hefur einhver hefur einhverjar spurningar varðandi þessum gagnagrunni hlutur?
Samskipti?
Er það ljóst?
Já.
>> Áhorfendur: Getur þú gert tegund reiknirit?
>> GABRIEL Guimaraes: The Raða reiknirit, OK.
Þegar þú venst Ruby setningafræði, það er að fara að vera skýr.
En í grundvallaratriðum, elems er Book.all.
Svo er bók nafn módel.
Þegar þú búa til líkan, það koma með alls konar flottum aðferðir fyrir þig.
Svo er dot.all aðferð sem skilar öllum bókum.
En finna, til dæmis, myndi leita að eina bók og skila þessi bók, eða
eitthvað svoleiðis.
Og svo elems er allt.
Og ég ætla bara að segja elems.sort.
Raða er innbyggð í Ruby virka.
>> Og ekki ab.
Þannig að þetta gera aftur er -
þú ert að fara að raða.
En þú ert að fara að fá þetta rifrildi fyrir mig.
Og þau rök notar - þetta er eitt af The herða hluti í Ruby Raunverulega,
þetta gera hlutur.
En þegar þú skilur það allt kemur mjög, mjög leiðandi.
Svo ab, þetta er að segja í stað eigendur sem ég ætla að nota - eins
breyturnar sem ég ætla að nota, eru fara að vera kölluð a og b.
Og þeir eru bækur.
>> Svo því tagi þarf að bera þættir, man það?
Svo þegar þú raða hlutum, þér bera saman tvo hluti.
Ég ætla að segja að í hvert sinn þú ert að fara að bera saman -
svo er þetta, ég er liggur að raða rifrildi.
Og þau rök er allt frá gera til og hér, OK?
Og þetta rifrildi er bara að segja Raða hvernig á að bera saman.
Raða vildi vinna hér, en það myndi bera með þeirra
sjálfgefið að bera saman reiknirit.
Ég vil það að bera í mjög sérstakur hátt, þ.e. þegar bók
var búið til, þegar hver bók var búin til.
>> Þannig að ég er að segja, segja nafn fyrsta bók er og nafn á
önnur bókin sem b, Ég vil Raða til að raða eitthvað byggt á b.created_at þetta
undarlegt tákn, a.created_at.
Og það undarlegt tákn er styttingin fyrir ef maður er stærri en
annað, skila 1.
Ef eitt er jöfn annað, skila núll.
Ef einn er minni en annað, aftur mínus 1.
Svo er þetta það undarlegt tákn er.
>> En það er ekki mikilvægt.
Ég meina, það sem ég vil að þú krakkar að fá nú er sú hugmynd að gagnagrunni -
þú geta hafa the líkan þar.
Svo þú þarft ekki að hafa áhyggjur tengja og nota SQL staðhæfing,
og svoleidis.
Það getur líka búið dyr sínar SQL innspýting og allt
konar öryggi vandamál.
Í þessu tilfelli, þú ert ekki áhyggjur af því.
Þú notar bara aðferðir eins book.all.
Og að í bakgrunni auðvitað, er að fara að gagnasafninu, og það er
fara að nota SQL staðhæfing að fá allar bækur.
En þú þarft ekki að áhyggjur af því.
Það er takeaway, OK?
>> Og þegar þú ert með belongs_to yfirlýsingu eins og þetta, sem þýðir að
þegar þú ert með bók hlut, þér geta séð hvað er nemandi hennar.
Svo sem nemandi hefur þessa bók?
Þannig að við getum bara notað book.student, og sem gefur þér hvað nemandinn er.
Og það er mjög lögun til að hafa.
>> OK, nú að skoða.
Svo er fyrirmyndin hvað samskipti við gagnagrunninn, ekki satt?
Útsýnið er í grundvallaratriðum HTML, og CSS og JavaScript.
Og það er það sem notandinn reyndar sér.
Notandinn er ekki að fara að sjá gagnagrunninn.
Hann er að fara að sjá nokkrar gögnum frá gagnasafn embed í áhorfandann.
Ruby á Teinn gerir það í raun einfalt að gera sviðum.
Fyrst, því það skapar þegar það fyrir þig, út af the kassi, uppsetningu.
>> A skipulag er í grundvallaratriðum eitthvað sem -
ef allar síðurnar þínar hafa lógó ofan og, ég veit ekki, sumir valmyndinni eða
eitthvað svoleiðis, að allar síðurnar þínar hlut sameiginlegt, þá getur þú ekki
þurfa að búa margir, margir, margir HTML skrá þar sem allar skrár hafa að
Sama HTML kóða.
Ég meina það er mállaus vegna þess að þú ert bara endurtaka kóðann milli mismunandi skrár.
Það er örugglega ekki góð nálgun.
>> Svo Ruby á Teinn skapar Þetta skipulag fyrir þig.
Og þetta er bara að segja, allar síður mínar eru að fara að hafa þetta HTML, þetta höfuð
titill hér, og þeir eru stílblað tengilinn tag.
Stinga í hér allan CSS mína.
Stinga í hér allt mitt JavaScript og sumir meta tags.
Það er bara eitthvað sem þeir gera sjálfkrafa fyrir þig.
Og þá, enda höfuð, nú hér byrjar líkaminn.
Og nú er þetta raunverulegt innihald mín.
Þannig að ef ég vildi setja eitthvað eins og, sem matseðill hér, myndi ég setja hann strax
þessum stað, eða eitthvað svoleiðis, svo að öllum síðum mínum miðlað henni.
Svo útlitið er hluti af öllum síðum.
>> Nú þegar krafan hér segir bara, nei hvað málið síður þetta er í, bara
stinga í innihald sem síðu hér, OK?
Og nú er þetta, til dæmis, að innihald eina síðu sem er að fara að vera
tengt inn Krafa yfirlýsingu sjálfkrafa af Teinn.
En þetta er skipulag hluti af öllum síðum.
Og þetta er dæmi um eina síðu.
Og þetta er einmitt síðu þessi listi allar bækurnar.
Þannig að þetta er einfalt HTML töflu upp ofan.
Svo skráningu bækur, titil, höfundur, lýsing, tegund.
>> Og hér notum, aftur, sumir Ruby setningafræði, @ books.each--
@ Konar segir að þínu breyta er alþjóðlegt í vissum skilningi.
Vegna þessa breytu var í raun lýst í stýringu, sem
þú ert að fara að sjá núna.
En bara að taka sem sjálfsögðum hlut að þetta @ Bækur er breyta sem er listi yfir
allar bækurnar.
Svo books.each, gera, og aftur, þetta er bara að segja hvað þú vilt nefna
hvert Ítrarar svo að við gerum ekki að hafa áhyggjur óður í a fjórir, int i
bla, bla, bla.
Við tökum bara hvern af þættir og nota þær.
>> Þannig að þetta er bók, og þá bara prenta hér. book.title, book.author,
book.description, og bla, bla, bla.
Og hér er LINK_TO.
Svo er LINK_TO bara hlekkur tag að notandi getur smellt á og
fer í annan vef.
LINK_TO, sýna þessi sérstakur bók.
Þannig að ef notandinn er mjög áhugasamur Þessi bók, þá getur hann smellt á sýningunni.
Eða smelltu á Breyta ef hann vill að breyta bókina.
Eða eyðileggja, ef hann vill eyða bók úr gagnagrunninum.
OK, ekki að vit?
Gott.
>> Að lokum, the stjórnandi.
Svo í rauninni er stjórnandi tengi milli
fyrirmynd og útsýnið.
Svo er líkan hluti af númer sem hefur gagnagrunn -
hvert borð í gagnagrunninum hefur A viðkomandi skrá í
gerð, og svo framvegis.
Og hvernig gera líkan og útsýnið samskipti?
Svo, í gegnum stýringu.
What stýritæki gerir er að það sé á líkan fyrir eitthvað eins og, til dæmis,
setja öll bókinni inni breytu.
Eins og þessa, @ bókum.
>> Og það þarf að vera alþjóðlegt með þetta á hlut vegna þess að það er að fara að vera
nálgast með því viðhorfi.
Það er ekki að fara til að nota innan stjórnandi sjálft.
Og það hægir bara upplýsingar sem útsýnið er að fara að nota.
Til dæmis er stjórnandi fer ef notandinn er á netinu.
Og hvernig virkar það að gera það?
Það spyr í raun líkan Þar sem líkanið hefur
upplýsingar um notanda.
Það hefur notenda töflu, bækurnar borð, aðrar töflur.
Svo spyr stjórnandi ef notandinn er á netinu.
Ef notandinn er á netinu, stjórnandi annast hlutina eins og að setja smáköku,
eða eitthvað svoleiðis, til að setja stimpil að segja að notandinn er á netinu.
Engin þörf á að skrá þig inn aftur.
>> Og það er að fara að hlaða inn breytu sem heitir Notandinn, til dæmis, að
sýn getur notað.
Og útsýnið getur sett eitthvað hér, til dæmis, velkomin user.name.
Svo það er að fara að segja, velkominn John, velkomin James -
eitthvað svoleiðis, ekki satt?
Svo allar þessar breytur notaðar í Skoða ert að fara að vera hlaðinn í
stjórnandi og ert að fara að vera dreginn upp úr líkaninu.
>> Þetta er dæmi um stýringu.
Þannig að við höfum, í grundvallaratriðum, hvor -
við köllum þá hluti aðgerðir.
Svo er vísitalan aðgerð.
Það er Ruby virka.
Það er Ruby aðferð þar.
En fyrir stjórnandi símtöl Þeir hlutir aðgerðir.
Og hver aðgerð er skyldur til leið.
Svo hér þessa leið, til dæmis, er a Fá yfirlýsingu / bækur.
Þannig að ef þú ferð til harvard2017.com/books, hvað er að fara að gerast er þetta númer er
fara að vera kölluð.
>> Og það er skrá -
láta mig opna þetta raunverulegur fljótur.
Það er skrá sem heitir hrár skrá.
Það er ekki opnuð.
Svo er það skrá sem kallast hrár skrá sem í grundvallaratriðum svipað -
ó, nú það er opnuð.
Hér leiðir.
Svo passar í rauninni álag, örvun / nýr til dæmis, að
eitthvað í stýringu.
Svo er það þetta stjórnandi kallað örvun stjórnandi, en hér,
við höfum bækur, til dæmis.
Svo passar -
bækur / nýr, til ábyrgðaraðila bækur, aðgerð nýr.
Svo í grundvallaratriðum, mjög einfalt hlutir.
>> Og hér, ef þú hefðir til að fá / bækur, rista Auðkenni bækur, rista ný,
þú ert að fara að fara til að Ruby aðferð þarna niðri.
Svo hér, hvað þessi vísitala er að gera er bara hleðsla bók log.
Það er eitthvað að -
Ég þig allar bækurnar í log.
Og flokka það allt.
Svo þetta að fara að koma aftur allar raðað bækur.
Þetta er, aftur, í gagnagrunninum.
Þannig að þetta er aðferð líkansins.
Þú sást að þessi aðferð sé búin í líkaninu.
Nú er þetta bara að hlaða allar bækurnar og setja það í breytu sem
og sjá má af þeirri skoðun.
>> Þar sem þú getur ekki, í miðri HTML kóða þinn, getur þú ekki hringt
eitthvað beint frá líkaninu, því af tveimur ástæðum.
Fyrst, af öryggisástæðum vegna það er ekki mjög áhugavert að vera
hleðsla upplýsingar beint inni Sérhver HTML sem er í gagnagrunninum.
Og í öðru lagi til að halda númer skipulagt raun.
Svo skilja nákvæmlega mismunandi hlutum.
Svo BookLog.sorted_all þetta í gagnagrunn og þetta er að fara að setja inn
breytu @ bókum.
Og nú er þessi breyta aðgengilegt innan HTML kóðann þinn.
Svo þú getur bara sett allar bækurnar það bara eins og við gerðum hérna.
Þetta er breytilegt.
>> Og heimsóknir respond_to gera | snið |, þetta er bara svona Ruby setningafræði fyrir
ef notandinn er að biðja mig um HTML kóða, ég ætla að
bregðast við með HTML kóða.
Ef notandi biður mig með JSON kóða, sem er eitthvað sem vefforrit nota
að miðla sín á milli, þeir venjulega nota JSON eða einhver önnur
þannig hlutur.
Svo það bregst bara að nota þá tvær mismunandi snið.
En fyrir venjulegan notanda, þetta myndi ekki þurfa að vera hér.
Þú vildi bara að bregðast við HTML, og það er bara fínt.
Svo í raun ekki áhyggjur af því að mikið um þetta.
Þetta er eina línu af kóða í okkar stjórna eins og það er hleðsla frá HTML
gagnasafn, setja í eitthvað sem er aðgengileg með það í huga.
>> Og þá nýr, svo hér Ég er að stofna bækur.
En til að búa til bækur, ég þarf nemandi vegna þess að ég þarf að vita nemandann
sem bækur þetta tilheyra, ekki satt.
Svo @ nemandinn = nemanda.
Nemandi, aftur, við erum að byrja með stór S er líkanið nemandi.
OK, svo er þetta líkan nemandi, þetta er líkan bók skráir þig inn.
Student.find, þannig að ég ætla að finna nemandi Notkun stika ID.
params.id, þetta er bara að fá mér gildi af þessu auðkenni sem samþykkt voru -
og slóðin.
>> Bara að fara að leita að nemanda.
Og fyrst við erum að fara að athuga ef nemandi hefur nokkur lög
og bla, bla, bla.
Og þetta þegar meðhöndlar ræða þegar nemandi
er ekki til, til dæmis.
Og þá, annars, bregðast við bara við það sama að nota HTML.
Og þá getum við svo að notandinn búa lögin þeirra.
Svo er þetta nýja.
New er venjulega notað fyrir, láta notandanum að búa til eitthvað.
Og þá er það búið aðgerð sem yfirleitt notað fyrir -
raunverulega setja lög í gagnagrunninum eða eitthvað svoleiðis.
En þegar þú byrjar að nota teinar, Þessir hlutir eru að fara að vera
miklu, miklu skýrari.
OK, kaldur.
Einhverjar spurningar svo langt?
Er það vit með stýringar, módel, sviðum -
já?
>> Aftur í Teinn umsókn þína -
svo öll sem hægt er að finna í hér.
Svo þú ert app, stýringar þá eru allar stýringar mínum.
Svo til dæmis, stjórna bækur.
Það er eitt sem við sáum bara.
Og þá skoðanir.
Og hver stjórnandi hefur tengd skoða, ekki satt?
Svo sjálfkrafa þegar þú kalla þetta Vísitala hér, til dæmis, eða þegar
kalla þetta bækur á New og svo að skoða, bækur, nýtt er að fara að vera kölluð.
>> Svo er Teinn allt sjálfkrafa fyrir þig.
Svo hvert stjórnandi hefur tengt skoða og allar gerðir -
hér er ég með einn, tveir, þrír, fjórir, fimm módel.
En þetta er nemandi líkan, svo þeir eru breytur að öll
nemendur hafa - staðsetning, fæðingardag.
Nemendur er svolítið meira flókið því hver nemandi hefur
fleiri mismunandi aðferð tengslum við það.
En þetta er bara meðhöndlun borð sem hafði alla
nemendur í gagnagrunninum.
>> Og, OK, setja teinn.
Setja Teinn, til að vera heiðarlegur, er ekki einfaldast.
En þegar þú fá fortíð öllu, það er mjög, mjög auðvelt.
Svo setja Teinn, þú ferð bara til website, rubyandrails.org / niðurhal
og fylgja leiðbeiningum þeirra þar.
Sækja allt.
Og þú getur gert það annað hvort í Tæki, í CS50 Appliance, á
Windows á Mac, eða hvaða stýrikerfi kerfi að eigin vali.
Ruby á Teinn keyrir á allt.
>> Stuðlar ert þú nú þegar hafa Ruby uppsett ef þú ert með Mac eða -
í tæki sem ég held að Ruby er -
Ég er ekki viss.
Og þá er bara þetta uppsett.
Og ef þú vilt búa til nýjan vefur umsókn, þú bara
gera Teinn, ný, blog.
Teinar, ný -
Ég veit ekki -
Heiti vefsvæðis þíns.
Og það er svo einfalt.
>> Það er að fara að búa til allar þessar skrár sem ég sýndi bara þér.
En líkanið, útsýnið, og stjórnandi er ekki að fara að vera
byggð ennþá.
Þú ert bara að fara að fara þangað og byggja þá þrjár möppur.
Svo líkurnar eru, þú vilt að búa til líkan, Til dæmis, framkvæma einn
fyrirmynd fyrst.
Svo aftur, alltaf að reyna að bíta minni bitar af vandamál í einu.
>> Og þá skulum segja, búa fyrirmynd fyrir notendur.
Það er það fyrsta sem ef þú ert með notendum.
Þá vil ég að búa til líkan bara eins og við sýndum hér.
Teinar, mynda, gerð, notandi, og þá tölvupóst band - við höfum það hér.
Og bara búið að líkan, já.
Teinar mynda líkan User email: band Lykilorð: band.
>> Og þá að búa til stjórnandi sem fæst með notandanum.
Og þú getur búið til nýja notendur og gera þær tegundir af hlutum.
Og þá þú geta hreyfa á til að búa til restin af vefsíðunni þinni.
Cool, spurningar?
Já.
>> Áhorfendur: [inaudible]
>> GABRIEL Guimaraes: Já, já, þú ákveðið hafa að fara í skoðun.
Það er mjög góð spurning.
Svo er að sjá hvað í raun og veru inniheldur HTML.
Svo er það það sem notendur eru að fara að sjá.
Again, hér, er þetta Dæmi um það í huga.
Það hefur HTML kóða og Ruby kóða á sama tíma.
Svo er Ruby kóða þar til að setja hlutina úr gagnagrunninum, til dæmis,
sem voru sóttar á stjórnandi.
Svo sem breytu @ bókum, til dæmis, hefur allar bækurnar og borðið
bækur í gagnagrunninum.
Við viss um að það hefði í stýringu.
>> Og útsýnið -
hvern af þeim síðum á vefsvæðið þitt er fara að hafa einn sem tengist útsýni.
Þannig að ef þú ferð á heimasíðuna, sem fyrstu síðu, harvard2017.com.
Sem sýnir eina síðu.
Og þá fara að rista uppsetningu.
Sem er að fara að fara í stýringu það er prófíl stjórnandi.
Og sniðið stjórnandi er að fara að gefa þér uppsetningu.
Og uppsetningu er að fara að líta nokkuð eins og þetta, en það er að fara að
hafa upplýsingar um notanda, og ekki um bækur.
>> Svo það er HTML kóða og CSS og þá hlutir sem notandi sér
með Ruby kóða -
sem í raun prenta hluti úr gagnagrunninum.
Er það skýrari?
Ég vona.
>> Áhorfendur: HTML kóði er notaður til raun gert heimasíðu sem
notandi sér, en Ruby kóða er hvað gerir heimasíðu vinna?
>> GABRIEL Guimaraes: The Ruby kóða verður breytt í HTML.
Svo það sem notandinn fær er aðeins HTML, OK?
Það er bara HTML.
Þetta book.title er að fara að breyta til gildi book.title í HTML, OK.
Svo er þetta allt í the framreiðslumaður, og svo þetta fer eftir því hvað bækur eru
í þjóninum núna.
En hvað þjóninn myndi strax vit er aðeins HTML kóða, OK.
>> En útsýnið gefur bara skipulag hvað HTML var að fara að líta út eins og
og hvaða breytur eru að fara að vera.
Þessu tagi prenta út, OK.
Þessir hlutir eru grundvallaratriðum prenta útspil.
Þeir eru að fara að prenta breytur, OK.
Svo er það bara HTML, þá -
höfundur, titill, lýsingu.
Það er fast efni.
Það er ekki að fara að breytast.
Það er bara látlaus HTML kóða.
Þeir eru prenta útspil fyrir breytur -
hlutir sem háð.
Cool, fleiri spurningar?
Gott?
Já.
>> Áhorfendur: Ég held að þú varst að gera allt The útgáfa í mismunandi texta
útgáfa program.
Ættum við að sækja líka að?
>> GABRIEL Guimaraes: Já, eins og ég þetta texti ritstjóri heitir TextMate.
Og það er mjög gott.
Það er vel til þess fallin að Ruby.
Það litir hlutum mjög snyrtilegur.
Svo TextMate, T-E-X-T. Ég ætla að setja það, haltu áfram -
>> Ég meina þú getur notað gedit eða hvað sem þú vilt.
En þetta er sértækt fyrir Mac, og þetta er mjög snyrtilegur því það setur allt
skrár þarna niðri.
Og í Ruby á Teinn, þú þarft að skipta skrár mikið.
Svo það er margir, margir skrá bara fara úr einni skrá, að hoppa til
ein skrá eða hinn.
Svo er TextMate mjög góð, en það eru margar þarna úti.
Fleiri spurningar?
OK, já?
>> Áhorfendur: Er hreyfanlegur þróun gegnum Ruby á Teinn?
>> GABRIEL Guimaraes: Ég hef heyrt af hlutum.
Ég hef ekki notað þá.
Þú gætir rannsóknir meira um það.
Ég er ekki viss um að ef það er einhver gott þarna úti.
OK, já?
>> Áhorfendur: [inaudible]
>> GABRIEL Guimaraes: Ekki Teinn, sennilega Ruby array.
Opinn upp a umferðamiðstöð gluggi og tegund, "Ruby".
Já, líklega, og þá bara að setja Teinn.
En ef þú ert að fara að setja nýja Teinn 4,0, sem ég mæli,
ættir þú að sækja Ruby 2.0.
Það er sú nýja líka.
Og nýja Teinn 4,0 eitthvað æðislegt að
það þýðir að eignir.
Það sér eignir.
Eignir aftur eru myndir, CSS skrár, og JavaScript skrá.
Svo einn mjög snyrtilegur hlutur sem Ruby á Teinn er fyrir þig er allar þessar CSS
skrár sem þú hefur og allt -
það knippi bara allt upp í einn gríðarstór skrá, án bila eða neitt,
að draga úr þeim tíma sem notandinn þarf að sækja kóðann á vefþjóninum þínum.
>> Svo þegar þú sérð í tölvunni þinni, það er fara að hafa svona 15 CSS skrár.
Eða margir, margir mismunandi CSS skrár.
En í lok dagsins, hvað Teinn sjálfkrafa er fyrir þig er að það setur
allt saman í einn stór skrá svo að það dregur beiðni tíma.
Það er virkilega svalt.
Já?
>> Áhorfendur: [inaudible]
>> GABRIEL Guimaraes: Einmitt.
Svo að Google Maps sameining.
Það er JavaScript API frá Google.
Svo ég fór bara á Google heimasíðu.
Hafa þeir þetta Google Maps API og ég sótt kóðann og samþætta hana
inn að mínu mati.
Svo það sem ég þurfti að gera það er ég þurfti að fá
stöðum úr gagnagrunninum.
Það var gert í stýringu.
Svo ég fór að stjórnandi -
Hvar er stjórnandi.
The stjórnandi leit svona.
Fékk allar stöðum í nemendur, setja allt sem í stór
breytu, stór listi, sem hefur alla staði.
>> Og í augum, vegna þess að JavaScript API er eitthvað í
skoða, ekki satt?
Vegna JavaScript rennur í HTML kóða, það er að fara að senda til
vél notandans.
Og í augum, ég hlaðinn allt að upplýsingar inn í Google API.
Og það gerði allt sem fyrir mig, sem er mjög svalt.
En ef þú vilt nota það í bak-endir, og það er eins og bókasafn, til
dæmi, aftur -
samþættingu við Facebook.
Það er eitthvað sem margir, margir, margir apps eru að nota nú á dögum.
>> Svo hafa sameining með Facebook því það er svo miklu auðveldara að bara
Innskráning með Facebook en að búa reikning og bla, bla, bla.
Síðan sem þú notar bara gimsteinn og það er eins og einfalt og að fara til gem skrá.
Gem skrá er a skrá sem heitir gem skrá í uppspretta skrá af Ruby þínum á
Teinn verkefni.
Bara fara þangað og bæta við nýjum gimsteinn.
Og þú lítur það upp á Google.
Það eru margir, margir, margir gems.
Það er eitt sem sérstaklega er þetta fyrir Facebook samþættingu.
Ég er ekki viss um hvaða nafn það.
Just Google það og þú ert að fara að finna það.
OK, fleiri spurningar?
Ógnvekjandi, þakka þér fyrir að koma.