>> GABRIEL GUIMARAES: Sa a se CS50.
Byenveni nan etonan Apps entènèt ak Ruby sou ray.
Se konsa, pou nenpòt moun ki nan enterese nan sit entènèt devlopman ak fè sit entènèt, sit entènèt
aplikasyon pou, Ruby sou ray se sa a zouti etonan ke Twitter, GitHub,
Groupon, ak tout kalite vrèman bèl, ak gwo, aplikasyon pou web Cam chatroulette yo lè l sèvi avèk nan
kèk ane dènye yo.
Apre sa, li nan yon reyèlman, reyèlman fre karakteristik, yon zouti fre,
paske li nan nouvo.
Se konsa, li te gen tout nan pwisan nan nouvo teknoloji mete nan yon sèl
fondasyon ki ede ou fè fas avèk tout kalite bagay sa yo dwòl.
>> Men, sa ki se yon ankadreman?
Se konsa, yon fondasyon se fondamantalman yon bagay ki ka kreye -
lè ou kòmanse yon sit entènèt, si ou te kòmanse nan grate, tankou ou louvri
jdi a, epi ou vle kòd tout nan HTML ou, ak kòd nan tout ou
PHP, nan tout CSS ou a, tout bagay nan grate -
Se jis pral fè yon anpil nan travay.
Apre sa, yon fondasyon literalman ba ou mwatye nan sit wèb la fè deja.
Se konsa, ou kòmanse koupe ak mwatye nan yon sit entènèt ki gen tout bagay gen pou ou.
Menm jan ak koneksyon ki baz done, ak tout kalite bagay sa yo ke ou gen enkyete
sou si w ap fè li nan grate, ou pa gen enkyete sou sa yo
ba nivo plis detay.
>> Men, jodi a nou ap ale nan ekspòtasyon youn nan sou sit entènèt yo ki nevyèm ane a nan la
klas nan 2017 yo se pwobableman abitye.
Se konsa, sou sit wèb sa a se sit entènèt la ke mwen te fè pou klas nou an pandan ete a.
Se te yon sit entènèt kote elèv yo nan klas la nan 2017 te kapab ouvri sesyon an epi
kominike youn ak lòt.
Lè sa a, sa a se yon kat jeyografik -
tout moun, kote moun yo ye.
Apre sa, nou te gen yon jwèt liv, yon jwèt chante kote nou te wè chante moun nan ak
liv moun.
Ki sa yo renmen li, ki sa ki yo renmen pou koute.
Apre sa, pati ki pi enteresan nan li se ke li literalman te pran m 'twa èdtan
ki prevwa nan kòd tout nan li.
Paske si mwen te fè tout bagay soti nan grafouyen, tankou louvri jdi, li
pwobableman ta yo te pran m '20, 30 èdtan.
Men, avèk Ruby sou ray, paske tout bagay te deja mete kanpe pou mwen,
li sèlman te pran m 'twa oswa kat èdtan, oswa yon bagay tankou sa.
>> Se konsa, sa se Ruby sou ray.
Ruby sou ray, ankò jan nou deja te di, se yon ankadreman.
Sa a se yon foto nan yon fondasyon.
Se konsa, w ap ale nan kòmanse bati yon kay, ou deja gen mwatye nan a
kay fè.
Sa a fondasyon an.
Apre sa, Ruby sou ray se egzakteman tankou sa.
Apre sa, ou ta dwe panse a li kòm, ou kòmanse yon sit entènèt, ou kòmanse entènèt ou an
aplikasyon an, nou deja genyen mwatye ladan l 'fè a.
Men, premye nan tout, ki sa ki Ruby?
Ruby sou ray sèvi ak gade nan modèl kontwolè, ki se paradigm, ki
se yon reyèlman enteresan -
ak tout nan aplikasyon yo sèjousi sèvi ak yon bagay tankou sa.
Lide sa a nan separe bagay sa yo nan twa pati, modèl la, gade a, ak
kontwolè la.
Nou pwal pale yon ti kras plis enfòmasyon sou ki pita.
>> Premyèman, sa ki Ruby?
Se konsa, sa a se Ruby.
Lè sa a se senbòl la nan la lang yo rele Ruby.
Ruby se youn nan newish yo entèprete lang, se konsa script.
Li se yon lang ki pa nan konpile tankou C. Li konpile sou kouri an.
Se konsa, sa a, se bon paske, jis tankou PHP, pou egzanp tou se entèprete, se
pa konpile.
Sa a bon paske pòtab li yo.
Se konsa, ou jis pase kòd ou a soti nan yon sèl machin nan yon lòt.
Soti nan yon machin Linux, nan yon fenèt machin, nan yon Mac oswa Apple machin, oswa
yon bagay tankou sa.
Apre sa, ou pa bezwen enkyete sou detay konsènan chak nan espesifik nan
fonksyònman sistèm yo.
Li ale nan travay toupatou.
>> Apre sa, Ruby se yon lang ki -
ou nèg pwobableman sonje sa a.
Moun itilize fonksyon an hash aplike nan C pou tab la hash
semèn pase a epi te gen tout kalite nan defo segmentation.
Lè sa a, bagay sa yo mangonmen sou si wi ou non ki fisèl mwen gen, mwen la fisèl
isit la, te aktyèlman miniskil oswa majuskul, oswa sa yo kalite inkyétant
ba nivo plis detay.
Byen nan Ruby, si ou vle aplike yon tab hash, sa a se egzakteman kouman ou
kreye yon tab hash.
Ou di, diksyonè, sa a, se non an nan varyab m 'yo, = "Hash.new".
Lè sa a, diksyonè ["foo"], epi lè mwen se ajoute foo sou tab hash m 'yo, mwen se
jis di foo ki gen la.
>> Lè sa a, si mwen te vle tcheke si foo te gen, mwen jis di si
diksyonè ["foo"] == vre retounen vre.
Ola, e ke sa a tab hash ou.
Sa a aplikasyon an nan tablo hash nan Ruby.
Se konsa, tout moun te vle yo te ka gen itilize yon bagay tankou Ruby pou dènye
pset semèn nan, dwa?
Nou gen tout kalite rezon ki fè yo vle sèvi ak yon lang tankou Ruby.
Ruby gen Meservey.
Gem se yon non pou yon kalite nan bibliyotèk nan Ruby.
>> Se konsa, tout kalite karakteristik enteresan ke ou ka gen, pou egzanp, si mwen
ou vle entegre aplikasyon mwen an.
Sa Harvard 2017 aplikasyon te entegre nan Facebook.
Se konsa, ou ta ka ouvri sesyon an, atravè Facebook, nan app a.
Se konsa, si w ap ale nan fè sa, ou pa fè sa bezwen enkyete sou voye kèk
Demann HTTP Facebook, ak ap tann pou repons lan, epi fòse a
repons, ak bla, bla, bla.
Ou jis download GEM-a ki fè tout sa ki pou ou.
Lè sa a, ou pa bezwen enkyete sou nan tout sa.
>> Lè sa a, anpil èd sou entènèt, nan kou.
Gen anpil, anpil, sou sit entènèt anpil moun ki yo ale nan ede ou tou de ak
Ruby ak ak ray.
Epi li se anpil nan plezi yo kòd.
Egzakteman paske ou ka sispann mangonmen sou moun ki pwoblèm pa konsa pou sa plezi.
Menm jan ak si gen yon bagay se miniskil oswa ka anwo kay la, ak Lè sa a, poukisa se sa a
ban nou yon fay segmentation, ak ou ka reyèlman plonje nan anpil nan
enteresan bagay.
Plonje nan pwoblèm sa yo vrèman fre.
>> Se konsa, Ruby se jis tankou nan C nan yon sans.
Se konsa, li pa nan pral fè ki gwo yon so aktyèlman.
Se konsa, mete, ki nan app ekri ak lèt ​​detache nou yo nan Ruby.
Mwen panse ke ou ka sèvi ak ekri ak lèt ​​detache tou, men primer se sa ki tout moun sèvi avèk yo.
Se konsa, jis mete "Alo Mondyal".
Ou te kapab, oswa ou pa t 'kapab yo, yo gen parantèz la wonn
"Alo Mondyal" la.
Ou ka jis chwazi si oswa pa sèvi ak sa a.
Lè sa a, x = "1".
Yon bouk pandan y ap sanble trè anpil menm bagay la.
Li jis gen mwens sentaks.
Li nan kalite cleaner yon ti kras.
Lè sa a, si x> 25 primer "Big!" ak lòt moun mete "Ti ...".
Apre sa, li nan kalite C nan sans sa.
>> Se konsa, si ou gade nan sa, ou kapab apwòch pwobableman konprann
tout bagay ki pral sou.
Men, li la plis pouvwa anpil.
Plis pouvwa anpil, paske, plis pase sa, li ka bagay sa yo yo pa sa ki -
kèk kalite hackage yon ti kras.
Nan C ou pa t 'kapab fè nan jis fè ak yon sèl liy.
Pou egzanp, mete "Se mwen menm # {x}".
Sa a se jis sentaks pou mete valè a nan x isit la, epi yo pa ekri ak lèt ​​detache a
N. x.
Nan C ou te fè pousan d la, ak Lè sa a, mete x la varyab apre a
vigil isit la, oswa yon bagay tankou sa.
>> Ak nan Ruby gen yon steno pou jis fè sa.
Apre sa, mete sa a, si x> 3, konsa ou ka mete an si tout sou yon sèl liy.
Lè sa a, yon lis.
Lis nan C, tankou yon etalaj, ou gen kenbe tras nan ki jan gwo etalaj ou a oswa
otreman ou jwenn yon segmentation fòt.
Etalaj ou se yon sèl kalite.
Se konsa, li swa yon etalaj de chaj oswa yon etalaj de nonb antye relatif.
Nan ka sa a, mwen kreye yon lis isit la, sa a, se yon etalaj, ki gen premye a
eleman se yon fisèl, Jan ak Lè sa a, kat, de - sa yo se nonb antye relatif.
Lè sa a, mwen jis ajoute, lis, nan Left Ang bracket, Left
Ang bracket, twa.
Sa vle di jis kole yon bagay nan lis mwen an.
>> Se konsa, li nan kalite plis enteresan paske si ou te vle sèvi ak sa kòm
jis yon lis senp nan nonm antye yo, ou te kapab, totalman.
Sa a totalman amann.
Jis mete nonm antye la.
Men, si ou vle fè yon bagay sa a, se plis irezistib, ki gen lòt
bagay sa yo, ki gen -
Mwen pa konnen, tout kalite bay lis nan la, oswa lòt bagay ki gen plis
enteresan, ou ka totalman fè sa.
Li nan totalman amann.
Lè sa a, si ou vle repňte nan lis la, ou ka sèvi ak nan
plis C-ich kalite apwòch.
Sa a pou bouk, ou kòmanse yon varyab, mwen = "1", oswa mwen = "0".
Lè sa a, ou ale, epi repňte, epi pou yo jwenn tout nan eleman yo.
>> Men, ou ta ka tou itilize sa a plis Ruby ki tankou apwòch.
Se jis tankou yon list.each.
Se jis li di yo: retounen m ' tout eleman nan lis la.
Apre sa, fè ak chak eleman, rele yo ELEM.
Se konsa, sa a se jis yon non ki mwen se bay nan chak eleman.
Epi, koulye a sa a ki pral repete pou tout eleman yo, ak ELEM, li pral
yo dwe wout la ke nou jwenn aksè nan ki eleman sèl.
Se konsa, ou ta ka totalman bwa nan la C apwòch, men sa a ap travay tou.
Epi li se egzakteman menm bagay la, OK.
>> Apre sa, lòt pase sa, li se reyèlman, reyèlman fasil entegre Ruby ak HTML
depi ou guys ki enterese nan aplikasyon sou entènèt.
HTML se definitivman yon bagay ki w ap ale nan sèvi ak yon anpil.
Ak isit la si ou te vle mete Ruby nan HTML, jis kòmanse isit la, <%.
Sa vle di, isit la Ruby kòmanse.
Lè sa a,%>, kalite tankou PHP nan sans sa.
Isit la Ruby fini ak Lè sa a, ou kapab jis mete ou si nan isit la.
Lè sa a, mwen gen kèk varyab user.logged_in.
Nan Ruby, anjeneral nou ajoute sa yo, swa make intewogasyon oswa esklamasyon
mak, tankou yon karaktè labank, jis kalite
distenge ant fonksyon nou an.
Men, ou jis mete sa pou dedomajman pou pwòp ou yo.
Li pa yon bagay ki chanje anyen nan fonctionnalités a.
>> Se konsa, jis fè sonje m 'ke sa a se yon fonksyon - ak fonksyon nan Ruby,
olye ke C, jan mwen te di deja, yo pa bezwen parantèz yo.
Se konsa, ki louvri sesyon an bagay, sa a, se yon fonksyon, ki nan yon metòd.
Men, ou pa klèman bezwen mete parantèz yo nan la.
Se konsa, jis mande w si la nan itilizatè louvri sesyon an, epi si nan nan itilizatè louvri sesyon an, kounye a
HTML kòmanse ankò.
Se konsa, Byenveni, ak isit la Mwen ekri ak lèt ​​detache user.name la.
Epi sa a, li.
Se konsa, sa a, se bèl dwat devan, ki jan ou entegre Ruby ak HTML ou yo.
Ak resous, jan mwen te di, gen tout kalite resous pou Ruby.
Ou mesye tout ka gade sa a leve apre sa paske tou de videyo a, ak
glisad yo, yo ale nan ap disponib sou entènèt.
>> Epi, koulye a kite a jwenn nan ray.
Ray se renmen menm.
Ray -
Se konsa, Ruby se lang l 'yo.
OK, jis tankou PHP, jis tankou Piton.
Li nan yon lang wo nivo, pa renmen C. C nan yon mwayen, lang nan nivo ki ba nan
sans ke Ruby ou pa bezwen enkyete sou Re memwa, ak
endikasyon, ak moun ki kalite bagay.
Men, ray se pwogram sa a ke te ekri nan Ruby.
Apre sa, li itilize Ruby, yo nan lòd yo gen sa a fondasyon, pou ou pou w kapab
bati aplikasyon pou entènèt pè.
>> Se konsa, ou gen premye enstale Ruby sou machin ou, men pifò machin
deja gen sa.
Lè sa a, enstale ray sou tèt li.
Nou pral pale de sa pita.
Epi poukisa ray?
Se konsa, mv, ki nan kontwolè a modèl View nou te pale de yon ti kras
ti jan, fè tout bagay ki pi senp paske li divize bagay ki
concept diferan nan diferan pati nan aplikasyon w lan.
Mwens tan pase sou pwoblèm ba nivo, ankò, li trè, trè
popilè kounye a.
Se konsa, pou tout moun sa yo ki enterese nan sèn nan kòmanse moute, oswa nan yon bagay
tankou kòmanse biznis yo, ak moun ki nan mache a teknoloji ki gen
kòmanse pwòp biznis yo kounye a yo se reyèlman, reyèlman fanatik nan Ruby sou
Ray paske li nan tèlman vit.
>> Se konsa, ou ka jwenn yon bagay leve, li kouri nan mwens pase yon jou, e ke sa a
reyèlman yon trè konvenkan agiman yo sèvi ak Ruby.
Apre sa, ray 4.0 -
li trè fre soti nan fou a kounye a.
Se konsa, ray 4.0 -
Mwen panse ke liberasyon an premye te nan mwa mas ane sa a.
Epitou, se vrèman bèl, li gen tout kalite nouvo, karakteristik fre.
Se konsa, Ruby sou ray se yon fondasyon ki nan toujou ap mete ajou gen tout
nan nouvo teknoloji a.
>> Premye fwa mwen te eseye sèvi ak Ruby sou Ray, mwen te gen pwoblèm sa a paske mwen
kreye aplikasyon premye sit entènèt mwen an, epi li voye je egzakteman tankou sa.
Se konsa, li kreye tout moun ki dosye pou ou, epi mwen te gen okenn lide ki sa -
ki sa ki sa a?
Li te kreye tout moun sa yo dosye, epi mwen sèlman te vle kreye yon pwogram ki senp, yon
senp sit entènèt HTML.
Apre sa, mwen pa t 'kapab menm fè anyen.
Se konsa, mwen te yon ti jan akable.
Men, sa a youn nan bagay ke yon fwa ou konprann li, tout bagay vin pou
pi klè.
Se konsa, pa dwe akable pa premye a devan je nan sa ou kreye an premye.
>> Se konsa, sa k ap pase se ray kreye tout moun sa yo dosye.
Se konsa yonn nan se sa ki doc, kopi dokiman yo.
DB, ki nan ki gen rapò ak baz done a.
Lib, ki nan bibliyotèk louvri sesyon.
Piblik, script, ak kèk bagay sa yo.
Bèl anpil tout sa ou ap ale nan enkyete sou se folder nan app, moute a.
Sa a katab la ki gen aplikasyon w lan.
Tout moun nan lòt dosye yo -
kèk nan yo yo ki enpòtan yo, epi w ap pral aprann sou sa pita.
Men, yo ap jis isit la yo gen ladan fondasyon an.
Se konsa, pilye yo an premye nan kay la ou nèg yo se konstriksyon, OK?
>> Men, katab la app -
sa a, se yon sèl la vrèman enpòtan.
Apre sa, folder nan app gen byen yo.
Aktif oswa Byen se tout bagay bèl anpil ki nan ap vini an.
Imaj pou egzanp, tout bagay sa a, se estatik ki nan ale nan dwe telechaje
nan sit entènèt ou.
Se konsa, imaj, JavaScript, CSS -
sa yo kalite bagay sa yo yo byen yo.
Contrôleur -
nou pral pale plis enfòmasyon sou ki sa yo contrôleur, modèl,
ak lòt jaden pou yo nan yon dezyèm fwa.
Apre sa, moun k'ap ede yo fonksyon ke ou ka sèvi ak tout lòt peyi sou Kòd ou
ede w fè yon bagay.
Fonksyon tankou louvri sesyon an, pou egzanp - user.loggedin.
Sa a se yon fonksyon ki pwobableman ou gen yo sèvi ak nan tout pati ou
aplikasyon an.
Se konsa, ou ka mete yon bagay tankou ke nan k'ap vin ede ou.
>> Mailers -
sa a, se si w ap ale nan voye yon imèl bay itilizatè ou an, ou
vle itilize yon Mailer.
Ak modèl ak opinyon, nou pwal pale sou ki kounye a.
Se konsa, kontwolè a modèl vi, sa a, se poto a de baz yo Ruby sou
Ray, epi pifò cadres sèjousi, yo dwe onèt.
Se konsa, ankò, nou separe tout nan kòd nou an an twa pati diferan.
Modèl la -
modèl la se fondamantalman baz done a.
Li kenbe bagay sa yo nan baz done a.
>> Se konsa, chak tab nan baz done a gen yon ki koresponn dosye yo nan lespas modèl an.
Se konsa, li nan kalite yon tablo pou itilizatè ou an.
Se konsa, w ap estoke enfòmasyon renmen an non itilizatè, anay yo, yo
adrès, modpas yo, ak bagay tankou sa.
W ap ale nan gen yon sèl dosye ki nan modèl la rele itilizatè RB -
RB pou Ruby.
Apre sa, w ap ale nan gen tout nan metòd yo ak varyab yo.
Varyab yo yo ale nan koresponn nan non nan itilizatè, imèl la, ak
tout bagay.
>> Apre sa, w ap ale nan gen metòd yo.
Sa pral yon bagay ki konsène -
w ap ale nan okipe enfòmasyon sa a nan baz done a.
Pou kreye yon modèl ak ray, ou jis itilize ray jenere.
Apre sa, yo kreye bagay sa yo nan ray, ou aktyèlman bezwen tèminal la.
Se konsa, li yon trè tèminal ki baze fondasyon.
Ou jis ale nan tèminal la, ak ray, jenere modèl.
Apre sa, non an nan modèl la se itilizatè.
Apre sa, mwen jis vle gen de varyab, de kolòn, nan tab avè m '.
Se konsa, sa a, se imel.
Imèl se yon fisèl kalite.
Modpas, modpas la se tou yon fisèl kalite.
Sa yo se sèlman de bagay sa yo.
Li nan kalite yon tab itilizatè senplist.
Men, ou ta ka totalman mete yon santèn bagay la gen si ou te vle.
>> Apre sa, ray tou fè li trè, trè senp yo gen tout
kalite relasyon baz done.
Se konsa, anjeneral, lè ou gen tab nan ou baz done yo, yo pa ap anpil
endepandan de youn ak lòt.
Se pou nou panse osijè de.
Ou vle achte ak vann pwodwi sou entènèt.
OK, se konsa ou gen yon sit entènèt kote ou vle achte ak vann pwodwi yo.
Se konsa, chak itilizatè gen anpil pwodwi ki itilizatè sa a se vle vann.
Epitou, chak itilizatè tou te gen anpil tranzaksyon ki kontinyèl, oswa
yon bagay tankou sa.
Ak tranzaksyon yo ak yon lòt itilizatè.
Chak tranzaksyon ki dwe nan de itilizatè diferan.
Itilizatè a ki nan achte ak itilizatè a ki nan vann.
>> Se konsa, sa yo se sa yo rele an baz done relasyon yo.
Ak isit la nou gen egzakteman moun ki mo kle, gen anpil ak ki dwe nan.
Moun sa yo ki se yo menm ki pi enpòtan.
Apre sa, w ap sèlman ale nan di, pou egzanp, sa a se egzanp lan nan yon
modèl nan 2017 sit entènèt la Harvard.
Yon fwa ankò, elèv ki nan isit la -
chak elèv sou sit entènèt la, elèv la se yon modèl, se yon tab baz done.
Chak elèv te gen anpil liv paske ou te kapab di, ki sa yo pi renmen ou
liv, dwat.
Se konsa, chak liv ki dwe nan yon elèv desann isit la.
Apre sa, atribi ki aksesib -
Se jis di, sa yo ki yo varyab yo.
Sa yo se varyab yo aksesib soti nan modèl sa a.
Apre sa, varyab yo se otè a nan liv la, deskripsyon, genre, ak
tit liv la.
Se konsa, jis enfòmasyon ki konsènan liv la.
>> Ak isit la mwen gen yon metòd ki tou senpleman asòti tout bagay.
Se konsa, defini epi fini isit la, sa se sèlman li di yo: isit la vini metòd m 'yo.
Self.sorted_all.
Se jis, ban m 'tout bagay Ranje, e ke sa a ki jan ou aplike
algorithm nan klasman, ki se jistis fasil.
Men, fondamantalman, sa a se ki jan yon modèl sanble, OK.
nenpòt moun ki gen kesyon konsènan bagay sa a baz done?
Relasyon?
Èske sa klè?
Wi.
>> ODYANS: Èske ou ka fè algorithm nan sòt?
>> GABRIEL GUIMARAES: a sòt algorithm, OK.
Lè ou jwenn itilize Ruby sentaks, li pral yo dwe klè.
Men, fondamantalman, elems se Book.all.
Se konsa, liv se non an nan modèl mwen.
Lè ou kreye yon modèl, li vini ak tout kalite metòd bèl pou ou.
Se konsa, dot.all se yon metòd ki retounen tout liv.
Men, jwenn, pou egzanp, ta fè rechèch pou yon sèl liv epi retounen ke liv, oswa
yon bagay tankou sa.
Se konsa, elems se tout bagay.
Apre sa, mwen jis di elems.sort.
Triye se yon fonksyon bati-an Ruby.
>> Epi, fè ab.
Se konsa, sa a ankò se -
w ap ale nan sòt.
Men, w ap ale nan jwenn agiman sa a te pou mwen.
Apre sa, agiman an sèvi ak - sa a se youn nan bagay sa yo pi rèd nan Ruby aktyèlman,
sa a fè sa.
Men, yon fwa ou konprann li tout bagay vini trè, trè entwisyon.
Se konsa, ab a, sa a ap di plas la moun ki gen ke mwen pral sèvi ak - tankou
varyab yo mwen pral sèvi ak yo, se yo pral rele yon ak b.
Apre sa, sa yo se liv yo.
>> Se konsa, paske sòt bezwen konpare eleman, sonje ke?
Se konsa, lè ou klase bagay sa yo, ou konpare de eleman.
Mwen pral di ke chak fwa w ap ale nan konpare -
Se konsa, sa a se, mwen pase sòt yon diskisyon.
Apre sa, agiman an se tout bagay soti nan fè ak isit la, OK?
Epi bay agiman sa a, se jis di sòt ki jan yo konpare.
Triye ta travay isit la, men li ta konpare ak yo
default konpare algorithm.
Mwen vle li yo konpare nan yon trè espesifik fason, sètadi, lè liv la
te kreye, lè chak te liv ki te kreye.
>> Se konsa, m ap di, di non an nan premye a liv la se yon ak non an nan la
dezyèm liv kòm b, mwen vle sòt sòt yon bagay ki baze sou b.created_at sa a
etranj senbòl, a.created_at.
Epi ki senbòl etranj se steno Paske, si se yon sèl pi gwo pase a
lòt, retounen 1.
Si youn ki egal a la lòt, retounen zewo.
Si se yon sèl ki pi piti pase nan lòt, retounen mwens 1.
Se konsa, se sa ki ki senbòl etranj se.
>> Men, sa a pa enpòtan.
Mwen vle di, ki sa mwen vle ou mesye yo ka resevwa kounye a se lide ki fè konnen baz done -
ou ka gen modèl la a.
Se konsa, ou pa gen enkyete sou konekte ak lè l sèvi avèk deklarasyon SQL,
ak bagay tankou sa.
Li kapab tou kreye pòt Piki SQL ak tout
kalite pwoblèm sekirite.
Nan ka sa a, ou pa fè sa enkyete sou sa.
Ou jis sèvi ak metòd tankou book.all.
E ke, nan background nan nan kou, ki pral baz done ou a, epi li
pral sèvi ak yon deklarasyon SQL jwenn tout liv yo.
Men, ou pa bezwen enkyete sou sa.
Sa a Takeaway a, OK?
>> Men, lè ou gen yon deklarasyon ki belongs_to tankou sa a, sa vle di
yon fwa ou gen yon objè liv, ou ka wè ki sa ki elèv li yo.
Se konsa, kote elèv gen liv sa a?
Se konsa, nou ka jis sèvi ak book.student, ak ki ba ou sa elèv la.
Epi sa a, yon vrèman prezante genyen.
>> OK, kounye a gade nan.
Se konsa, modèl la se sa ki reyaji ak baz done a, dwa?
View nan se fondamantalman HTML, ak CSS, ak kèk JavaScript.
Epi sa a, sa ki itilizatè a aktyèlman wè.
Itilizatè a pa ale nan wè baz done ou.
Li te ale nan wè kèk done ki sòti nan la baz done entegre nan visualiseur a.
Ruby sou ray, sa fè li vrèman senp yo fè jaden yo.
Premyèman, paske li deja kreye li pou ou, soti nan bwat la, yon Layout.
>> Yon Layout se fondamantalman yon bagay ki -
si tout nan paj ou a gen yon logo sou tèt ak, mwen pa konnen, gen kèk meni oswa
yon bagay tankou sa, pou tout paj ou a pataje nan ki komen yo, Lè sa a, ou pa fè sa
bezwen yo kreye anpil, anpil, anpil HTML dosye kote tout dosye yo genyen ki
menm Kòd HTML.
Mwen vle di sa a, se bèbè paske ou se jis repete Kòd nan mitan dosye diferan.
Sa a definitivman pa yon apwòch bon.
>> Se konsa, Ruby sou ray kreye Layout sa a pou ou.
Lè sa a se jis li di yo: tout paj mwen an yo ale nan gen HTML sa a, sa a tèt
tit isit la, ak sa yo se style fèy lyen tag.
Ploge nan isit la tout CSS m 'yo.
Ploge nan isit la tout JavaScript mwen ak kèk Tags meta.
Se jis yon bagay yo ke yo fè otomatikman pou ou.
Lè sa a,, fini tèt la, kounye a isit la kòmanse kò a.
Epi, koulye a sa a se kontni reyèl mwen fè.
Se konsa, si mwen te vle mete yon bagay tankou, yon meni isit la, mwen ta mete l 'dwa sou
kote sa a, oswa yon bagay tankou sa, pou ke tout nan paj mwen an pataje yo.
Se konsa, Layout a ap pataje pa tout paj yo.
>> Koulye a, ke sede isit la jis di, pa gen okenn gen pwoblèm sa paj sa a se nan, jis
ploge nan kontni sa a nan paj nan isit la, OK?
Epi, koulye a sa a se, pou egzanp, nan kontni nan yon sèl paj ki nan pral fè
konekte nan sa a deklarasyon sede otomatikman pa ray.
Men, sa a se yon Layout pataje pa tout paj.
Lè sa a se yon egzanp nan yon paj.
Lè sa a se egzakteman paj la Li bay yon lis tout liv yo.
Se konsa, sa a se yon HTML tab debaz moute tèt.
Se konsa, lis liv, yon tit, otè, deskripsyon, genre.
>> Ak isit la nou itilize, ankò, kèk Ruby sentaks, @ books.each--
@ Kalite di ke varyab ou se mondyal nan yon sans.
Paske varyab sa a te aktyèlman te deklare nan kontwolè a ki
w ap ale nan wè kounye a.
Men, jis pran pou yo akòde ke sa a @ Liv la se yon varyab ki gen pou se yon lis
tout nan liv yo.
Se konsa, books.each,, epi ankò, sa a se jis li di ki jan ou vle nan non
chak nan iterateur yo pou ke nou pa fè sa gen enkyete sou yon kat, Int mwen
bla, bla, bla.
Nou jis pran chak nan la eleman ak sèvi ak yo.
>> Se konsa, sa a se liv la, ak Lè sa a, jis ekri ak lèt ​​detache isit la. book.title, book.author,
book.description, ak bla, bla, bla.
Apre sa, isit la se yon link_to.
Se konsa, link_to se jis yon tag lyen ke yon itilizatè kapab klike sou ak
ale nan yon lòt sit entènèt.
Link_to, yo fè montre ke liv an patikilye.
Se konsa, si itilizatè a se yon bagay ki enterese nan liv sa a, lè sa a li kapab klike sou montre sa.
Oswa klike sou modifye, si li vle yo edit liv la.
Oswa detwi, si li vle efase liv ki soti nan baz done a.
OK, ki fè sans?
Bon.
>> Finalman, kontwolè la.
Se konsa, fondamantalman kontwolè a se koòdone ki genyen ant an
modèl ak gade nan.
Se konsa, modèl la se yon pati a nan ou Kòd ki gen baz done -
chak tab nan baz done a gen yon dosye respektif nan la
modèl, ak sou sa.
Ak ki jan fè modèl la ak gade nan kominike?
Se konsa, nan kontwolè la.
Ki sa ki yon kontwolè fè se li se nan modèl pou yon bagay tankou, pou egzanp,
mete tout nan liv la andedan nan yon varyab.
Menm jan ak yon sèl sa a, @ liv.
>> Apre sa, li bezwen yo dwe mondyal ak sa-a nan bagay paske li k ap pase yo dwe
jwenn aksè pa gade nan.
Li pa yo pral itilize nan lespas kontwolè nan tèt li.
Apre sa, li jis ralanti enfòmasyon ki gade nan ki pral sèvi avèk yo.
Pou egzanp, chèk yo kontwolè si itilizatè a se sou entènèt.
Apre sa, li montre kouman li fè sa?
Li aktyèlman mande modèl la paske modèl la gen nan
enfòmasyon sou itilizatè a.
Li te gen yon tab itilizatè yo, liv yo tab, tab lòt.
Se konsa, kontwolè a mande si itilizatè a se sou entènèt.
Si itilizatè a se sou entènèt, kontwolè a manch bagay sa yo tankou mete yon bonbon,
oswa yon bagay tankou sa, yo mete koupon pou achte a yo di ke itilizatè a se sou entènèt.
Pa bezwen ouvri sesyon an ankò.
>> Apre sa, li pral chaj yon varyab rele itilizatè, pou egzanp, ke a
View kapab itilize.
Apre sa, gade nan ka mete yon bagay isit la, pou egzanp, akeyi user.name.
Se konsa, li pral vle di, akeyi Jan, akeyi James -
yon bagay tankou sa, dwa?
Se konsa, tout moun ki varyab yo itilize nan nan View yo pral chaje nan la
kontwolè, epi yo pral fè rale moute soti nan modèl an.
>> Sa a se egzanp lan nan yon kontwolè.
Se konsa, nou genyen, fondamantalman, chak -
nou rele bagay sa yo aksyon yo.
Se konsa, endèks la se yon aksyon.
Li se yon fonksyon Ruby.
Li se yon metòd Ruby an la.
Men, pou apèl yo kontwolè bagay sa yo aksyon yo.
Apre sa, se chak aksyon ki gen rapò ak yon wout.
Se konsa, isit la sa a wout, pou egzanp, se yon Pran deklarasyon / liv.
Se konsa, si ou ale nan harvard2017.com/books, sa ki pral rive se kòd sa a se
yo pral rele.
>> Apre sa, se yon dosye -
kite m 'louvri sa a rapid reyèl.
Genyen yon dosye rele dosye anvan tout koreksyon.
Li pa louvri.
Se konsa, gen nan yon dosye rele dosye anvan tout koreksyon ki fondamantalman matche ak chwa -
oh, kounye a li nan louvri.
Isit la, wout.
Se konsa, fondamantalman yo mete yon souch, deklanchman / nouvo pou egzanp, pou
yon bagay nan kontwolè la.
Se konsa, gen nan kontwolè sa a rele deklanchman kontwolè, men soti isit la,
nou gen liv yo, pou egzanp.
Se konsa, matche ak chwa -
Liv / nouvo, nan kontwolè a liv, aksyon nan nouvo.
Se konsa, fondamantalman, trè senp bagay sa yo.
>> Ak isit la, si ou te jwenn / liv, koupe ID a nan liv yo, koupe nouvo,
w ap ale pou yo ale nan ki Ruby metòd desann la.
Se konsa, isit la, sa ki sa a endèks fè se jis chaje boutèy demi lit liv.
Sa se yon bagay ki -
Mwen louvri sesyon tout nan liv yo nan yon boutèy demi lit.
Apre sa, sòt li tout.
Se konsa, sa a pral retounen tout liv yo Ranje.
Sa a se, ankò, nan baz done a.
Se konsa, sa a se yon metòd nan modèl an.
Ou te wè metòd sa a ke yo te ki te kreye nan modèl an.
Koulye a, sa a se jis chaje tout liv yo epi mete ki nan yon varyab ki gen pou
ka wè pa wè a.
>> Paske nou pa kapab, nan mitan an nan Kòd HTML ou, ou pa ka rele
yon bagay ki sòti dirèkteman nan modèl la, paske pou de rezon.
Premyèman, pou rezon sekirite paske li pa reyèlman enteresan yo dwe
chaje enfòmasyon sou andedan chak HTML sa a, se nan baz done a.
Apre sa, dezyèm, nan kenbe ou Kòd reyèlman òganize.
Se konsa, separe egzakteman nan diferan pati.
Se konsa, BookLog.sorted_all, sa a nan la baz done ak sa a ki pral mete nan
yon varyab @ liv.
Epi, koulye a varyab sa a se aksesib nan Kòd HTML ou yo.
Se konsa, ou ka jis mete tout nan liv yo gen jis tankou nou te fè sa, isit la menm.
Sa a se varyab la.
>> Ak vizit respond_to fè | fòma |, sa a se jis yon kalite Ruby sentaks pou
si itilizatè a ap mande m 'pou Kòd HTML, mwen pral
reponn avèk kòd HTML.
Si itilizatè a mande m 'ak JSON kòd, ki se yon bagay ki apps entènèt sèvi ak
yo kominike ant tèt yo, yo anjeneral sèvi ak JSON oswa kèk lòt
jan de bagay konsa.
Se konsa, li jis reponn lè l sèvi avèk sa yo de fòma diferan.
Men, pou yon itilizatè nòmal, sa a pa ta bezwen yo dwe isit la.
Ou ta jis reponn ak HTML, e ke sa a amann.
Se konsa, pa reyèlman enkyete ke anpil sou sa a.
Sa a se liy lan sèlman nan kòd nan nou an kontwòl kòm li a chaje soti nan HTML
baz done, mete nan yon bagay sa a, se aksesib pa gade nan.
>> Lè sa a, nouvo, se konsa isit la Mwen kreye liv.
Men, yo kreye liv, mwen bezwen yon elèv paske mwen bezwen konnen elèv la
ki gen liv sa a fè pati nan, dwa.
Se konsa, @ elèv = Elèv la.
Elèv, ankò, nou ap kòmanse avèk yon gwo S se elèv la modèl.
OK, se konsa sa a se elèv la modèl, sa a se boutèy la liv modèl.
Student.find, se konsa mwen pral jwenn yon elèv lè l sèvi avèk ID a paramèt.
params.id, sa a se jis jwenn m 'valè a nan ID sa a ki te pase -
ak URL la.
>> Jis ale nan rechèch pou elèv sa a.
Apre sa, an premye, nou pral tcheke si elèv la gen kèk chante
ak bla, bla, bla.
Lè sa a deja okipe a ka lè elèv la
pa egziste, pou egzanp.
Lè sa a,, lòt moun, nou jis reponn nan menm bagay la lè l sèvi avèk HTML.
Lè sa a, nou ka kite itilizatè a kreye chante yo.
Se konsa, sa a se nouvo.
New se anjeneral yo itilize pou, se pou itilizatè a kreye yon bagay.
Lè sa a, gen nan aksyon an kreye ki nan anjeneral yo itilize pou -
aktyèlman mete chante yo nan baz done a oswa yon bagay tankou sa.
Men, yon fwa ou kòmanse lè l sèvi avèk ray, bagay sa yo yo ale nan dwe
anpil, pi plis klè.
OK, fre.
Nenpòt kesyon byen lwen tèlman?
Èske li fè sans ak contrôleur, modèl, jaden -
yeah?
>> Yon fwa ankò nan aplikasyon ray ou -
Se konsa, nan tout sa ka jwenn nan isit la.
Se konsa, ou gen app, contrôleur, sa yo ki yo tout nan contrôleur m 'yo.
Se konsa, pou egzanp, liv kontwole.
Sa a yon sèl nan nou jis te wè.
Lè sa a, opinyon.
Epitou, chak kontwolè a gen yon ki asosye View, dwa?
Se konsa, otomatikman lè ou rele sa a endèks isit la, pou egzanp, oswa lè w
rele sa liv nouvo, Lè sa a, gade nan, liv, nouvo yo pral rele.
>> Se konsa, ray fè tout bagay otomatikman pou ou.
Se konsa, gen tout kontwolè yon asosye wè ak tout modèl yo -
isit la mwen gen yon sèl, de, twa, kat, senk modèl.
Men, sa a se yon modèl elèv, se konsa moun yo varyab yo ke tout la
elèv yo gen - lokalizasyon, dat nesans li.
Elèv yo se yon ti jan ti kras pi plis konplike paske chak elèv genyen
plis metòd diferan ki asosye ak li.
Men, sa a se jis manyen la tab ki te gen tout la
elèv yo nan baz done a.
>> Epi, OK, enstale ray.
Enstale ray, yo dwe onèt, se pa bagay la ki pi senp lan.
Men, yon fwa ou jwenn sot pase tout bagay, li trè, trè fasil.
Se konsa, enstale ray, ou jis ale nan nan sit entènèt, rubyandrails.org / download
epi swiv enstriksyon yo la.
Download tout bagay.
Epi ou ka fè sa swa nan Aparèy, nan CS50 Aparèy la, sou
Fenèt yo, sou Mac, oswa nenpòt ki opere sistèm nan chwa ou.
Ruby sou ray kouri sou tout bagay.
>> Chans yo ou deja gen Ruby enstale si ou gen yon Mac oswa -
nan aparèy yo Mwen panse ke Ruby se -
Mwen pa si.
Lè sa a, ou jis gen sa a enstale.
Men, si ou vle kreye yon nouvo aplikasyon entènèt, ou jis
fè ray, nouvo, blog.
Ray, nouvo -
Mwen pa konnen -
non an nan sit entènèt ou.
Lè li nan sa ki senp.
>> Li ale nan kreye tout moun ki dosye mwen jis te montre ou.
Men, modèl la, gade nan, ak nan kontwolè yo pa pral yo dwe
peple ankò.
W ap sèlman pral fè yo ale la ak peple sa yo twa dosye.
Se konsa, chans yo, ou vle kreye yon modèl, pou egzanp, aplike yon sèl
modèl an premye.
Se konsa, ankò, toujou ap eseye mòde ki pi piti Bits nan yon pwoblèm nan yon tan.
>> Lè sa a, kite a di, kreye yon modèl pou itilizatè ou an.
Sa a premye bagay la si ou gen divinò yo.
Apre sa, mwen vle kreye yon modèl jis tankou nou te montre isit la.
Ray, jenere, modèl, itilizatè, ak Lè sa a, Imèl fisèl - nou gen ki isit la.
Apre sa, jis kreye ki modèl, repons lan se wi.
Ray jenere modèl Itilizatè imel: fisèl modpas: fisèl.
>> Lè sa a, ou kreye yon kontwolè ki boule ak itilizatè a.
Epi ou ka kreye nouvo itilizatè yo ak fè sa yo kalite bagay.
Lè sa a, ou kapab deplase sou kreye rès la nan sit entènèt ou.
Fre, kesyon?
Wi.
>> ODYANS: [fèbl]
>> GABRIEL GUIMARAES: Wi, repons lan se wi, ou definitivman gen ale nan gade nan.
Sa se yon kesyon trè bon.
Se konsa, gade nan se sa ki aktyèlman gen HTML ou yo.
Se konsa, li sa ki itilizatè yo yo ale nan wè.
Yon fwa ankò, isit la, sa a se yon egzanp sou yon vi.
Li te gen kòd HTML ak Ruby Kòd nan menm tan an.
Se konsa, kòd la Ruby ki gen la yo mete bagay sa yo soti nan baz done a, pou egzanp,
ki te chaje nan kontwolè la.
Se konsa, ki varyab @ liv, pou egzanp, te gen tout nan liv yo ak tab la
liv nan baz done a.
Nou te fè asire w ke li te gen nan kontwolè la.
>> Apre sa, gade nan -
chak nan paj sa yo nan sit entènèt ou a se pral gen yon sèl ki asosye vi.
Se konsa, si ou ale nan paj la lakay ou, nan trè premye paj, harvard2017.com.
Ki montre yon paj.
Lè sa a, ou ale nan koupe pwofil yo.
Sa k ap pase pou yo ale nan yon kontwolè sa a, se yon kontwolè pwofil yo.
Apre sa, pwofil kontwolè a ki pral l 'ban nou gade nan pwofil yo.
Apre sa, gade nan pwofil ki pral gade yon ti jan tankou sa a, men li la ale nan
gen enfòmasyon sou itilizatè a, epi yo pa sou liv yo.
>> Se konsa, li kòd HTML ak CSS, ak moun ki bagay sa yo ke yon itilizatè wè
ak kòd la Ruby -
ki aktyèlman simagri bagay soti nan baz done a.
Eske se sa ke pi klè?
Mwen espere ke.
>> ODYANS: se kòd la HTML itilize aktyèlman fè sou sit wèb la ki nan
itilizatè wè, men kòd la Ruby se sa ki fè travay la sou sit wèb?
>> GABRIEL GUIMARAES: Kòd la Ruby vin konvèti nan HTML.
Se konsa, sa itilizatè a vin se sèlman HTML, OK?
Se sèlman HTML.
Book.title sa a ki pral konvèti an valè a nan book.title nan HTML, OK.
Se konsa, sa a se tout moun ki nan sèvè a, e konsa sa a depann de sa ki liv ki genyen
nan sèvè a kounye a.
Men, sa ki sèvè a ta imedyatman sans se sèlman Kòd HTML, OK.
>> Men, gade nan jis bay Layout a nan sa HTML nan te ale nan gade tankou
ak sa ki varyab yo yo pral yo dwe.
Sa a jan de yon soti ekri ak lèt ​​detache, OK.
Moun sa yo ki bagay sa yo gen fondamantalman ekri ak lèt ​​detache retraits.
Yo ap ale nan ekri ak lèt ​​detache varyab, OK.
Se konsa, sa se sèlman HTML, sa yo ki -
otè, tit, deskripsyon.
Sa a kontni estatik.
Ki pa nan ale nan chanje.
Se jis plenn Kòd HTML.
Sa yo se retraits yo ekri ak lèt ​​detache pou varyab -
bagay ki depann.
Cool, plis kesyon?
Sa ki bon?
Wi.
>> ODYANS: Mwen panse ke ou te fè tout koreksyon an nan yon tèks diferan
koreksyon pwogram lan.
Eske nou ta dwe tou download sa?
>> GABRIEL GUIMARAES: Yeah, mwen renmen sa a editè tèks yo rele TextMate.
Epitou, se vrèman bon.
Li nan byen adapte Ruby.
Li koulè bagay sa yo trè nètman.
Se konsa, TextMate, T-E-X-T. Mwen pral yo mete sa a, kenbe sou -
>> Mwen vle di ou ka itilize jdi oswa nenpòt bagay ou vle.
Men, sa a se espesifik pou Mac, ak sa a se reyèlman pwòp paske li mete tout moun nan
dosye ou anba isit la.
Ak nan Ruby sou ray, ou bezwen ta chanje dosye yon anpil.
Se konsa, li anpil, anpil dosye jis ale soti nan yon dosye li an, Ale nan
yon dosye oswa lòt la.
Se konsa, TextMate se yon trè bon, men gen anpil yo deyò.
Plis kesyon?
OK, repons lan se wi?
>> ODYANS: Èske gen yon devlopman mobil nan Ruby sou ray?
>> GABRIEL GUIMARAES: Mwen te tande pale de bagay sa yo.
Mwen pa te itilize yo.
Ou te kapab fè rechèch sou plis sou sa.
Mwen pa si si gen nan nenpòt ki bon bagay yo deyò.
OK, repons lan se wi?
>> ODYANS: [fèbl]
>> GABRIEL GUIMARAES: Pa ray, pwobableman Ruby etalaj.
Louvri moute yon fenèt tèminal ak kalite, "Ruby".
Yeah, pwobableman, ak Lè sa a, ou jis gen enstale ray.
Men, si w ap ale nan enstale nouvo a Ray 4.0, ki mwen trè rekòmande pou,
ou ta dwe download Ruby 2.0.
Sa a yon sèl nan nouvo tou.
Apre sa, ray yo nouvo 4.0 gen yon bagay vrèman fre ki
li fè sa nan byen yo.
Li kenbe byen yo.
Aktif oswa Byen ankò yo se imaj, dosye CSS, ak JavaScript dosye.
Se konsa, yon sèl bagay reyèlman pwòp ki Ruby sou Ray pou ou se tout moun ki CSS
dosye ke ou gen ak tout bagay -
li jis offres tout bagay moute nan yon sèl gwo ranpli, ki pa gen okenn espas oswa nenpòt bagay,
pou misyon pou minimize tan an itilizatè a bezwen download ke Kòd ki soti nan sèvè ou.
>> Se konsa, lè ou wè nan òdinatè w lan, li la pral gen tankou 15 dosye CSS.
Oswa anpil, anpil dosye CSS diferan.
Men, nan fen jounen an, sa ki ray otomatikman pou ou se li mete
tout bagay ansanm nan yon sèl gwo dosye konsa ke li kapab redwi tan an mande sa.
Sa a vrèman fre.
Wi?
>> ODYANS: [fèbl]
>> GABRIEL GUIMARAES: Egzakteman.
Se konsa, Google Maps entegrasyon.
Sa se yon API JavaScript nan Google.
Se konsa, mwen jis te ale nan sit entènèt la Google.
Yo gen sa a API Google Maps ak mwen telechaje kòd la ak entegre li
nan vi mwen.
Se konsa, sa mwen te bezwen fè gen se mwen te bezwen yo ka resevwa nan
kote ki soti nan baz done a.
Sa te fè yo nan kontwolè la.
Se konsa, mwen te ale nan kontwolè a -
kote nan kontwolè la.
Kontwolè a te sanble ak sa a.
Te resevwa tout nan lokal yo nan la elèv yo, mete nan tout sa nan yon gwo
varyab, yon gwo lis, ki te gen tout kote yo.
>> Apre sa, nan gade la, paske JavaScript a API se yon bagay ki nan la
wè, dwa?
Paske JavaScript kouri nan HTML ou Kòd, li ale nan dwe voye l bay
machin itilizatè a la.
Apre sa, nan gade la, mwen chaje nan tout sa enfòmasyon nan API la Google.
Apre sa, li te fè nan tout sa pou m ', ki se vrèman fre.
Men, si ou vle sèvi ak bagay sa yo nan la back-fen, epi li tankou yon bibliyotèk, pou
egzanp, ankò -
entegrasyon an ak Facebook.
Sa se yon bagay ke anpil, anpil, anpil apps yo lè l sèvi avèk sèjousi.
>> Se konsa, gen entegrasyon ou a ak Facebook paske li se tèlman pi fasil nan jis
ouvri sesyon an li ak Facebook pase yo kreye yon kont e bla, bla, bla.
Lè sa a, ou jis sèvi ak yon GEM-lan ak li a kòm senp tankou ale nan dosye GEM-ou.
Dosye GEM-a se yon dosye rele dosye GEM-nan sous anyè a nan Ruby ou sou
Ray pwojè.
Jis ale la epi ajoute nouvo GEM-.
Apre sa, ou gade l 'sou Google.
Gen anpil, anpil, Meservey anpil moun.
Genyen youn ki espesyalman fè sa a pou Facebook entegrasyon.
Mwen pa si sa ki non an nan li.
Jis Google li epi w ap ale nan jwenn li ankò.
OK, plis kesyon?
Awesome, di ou mèsi pou vini yo.