>> [MIZIK jwe]
Oratè: Awesome.
Se konsa, jodi a, mwen pral yo dwe ap pale de Ruby sou ray.
Se konsa, Ruby sou ray se yon fondasyon entènèt.
Li nan fondamantalman yon fason fè pè apps entènèt, ki yon anpil nan ou nèg
ap pwobableman ap fè pou final pwojè ou a.
>> Se konsa, li la tou distribisyon fre, paske w ap aktyèlman ap travay
nan PHP pou sa a pwoblèm seri aktyèl la.
Se konsa, èspere ke, yon anpil nan sa yo bagay sa yo ke mwen ap pale de jodi a
pral sonnen kèk kalite nan ti klòch, ak gen pral
gen kèk rpor ant bagay la ou pral aprann jodi a, bagay la w ap
ap travay sou pwoblèm ansanm sa yo,.
>> Tout dwa.
Se konsa, sa ki nan sou ajanda a?
Premyèman, nou ap ale nan ale sou yon revizyon nan mv, modèl-view-kontwolè.
Èspere ke, ou te aprann sou kèk sa a nan konferans,
men li pral yon revizyon nan sa.
>> Lè sa a, nou ap ale nan pale yon ti kras sou ray,
ki gen yon nonb infini de bagay sa yo mwen te kapab pale sou.
Se konsa, nou ap ale nan ale sou kèk nan la debaz yo, ki sa ki ray, ki sa li fè.
>> Ak yon ti kras sou Ruby 2, paske Ruby sou ray se,
Se pa etonan, bati nan yon lang ki rele "Ruby."
Chans, Ruby se yon anpil plis entwisyon pase yon anpil nan lang yo
ou ve yo te ap travay nan.
Se konsa, èspere ke, li ta dwe dwe trè fasil yo ranmase.
>> Ak dènye, nou ap ale nan depanse tan ale sou yon app entènèt debaz yo,
ak fouye nan kèk kòd la.
>> Se konsa, sa a se gid-la ofisyèl nan mv.
Sa a se sa w ap jwenn sou etid 50 ak konferans.
Apre sa, mv, evidamman, gen twa pati.
Se konsa, gen nan modèl la, ki pèsistan depo, jere ak òganize done.
Ou ka panse osijè de sa a kòm miskl ou baz done nan pwoblèm mete nan kounye a,
nenpòt done depoze ou genyen.
Genyen gade nan, ki se nan prezantasyon nan enfòmasyon, kap itilize li an
koòdone, epi ou ka panse sou sa yo kòm paj HTML ak nenpòt
nan paj sa yo modèl w ap bati sou pwoblèm sa a seri.
Apre sa, kontwolè a, ki manch tout enfòmasyon an,
kalite pase enfòmasyon ant baz done yo ak gade nan.
>> Epi ou ka panse osijè de sa yo kòm dosye aktyèl PHP ou
nan pwogram yo w ap ekri pou pwoblèm Mete 7.
Se konsa, mwen pral ale nan yon ofisyèl gid, ki se enspire, aktyèlman,
pa Ruby sou ray seminè pou ane pase.
Mwen vrèman te renmen chemen an, yo kalite panse sou modèl-view-kontwolè.
Se konsa, se pou yo ale kounye a, an gid-la ofisyèl.
>> Se konsa, nou gen yon karaktè koup nan gid-la ofisyèl.
Gen "modèl," nou an Madeline, ki moun ki se trè, trè entelijan, renmen done,
konnen tout bagay sou done, men li nan yon ti jan anti-sosyal,
epi li pa fè sa anjeneral kominike pi ak moun,
sof si li te di yo fè sa.
>> Apre sa, gen nan "vi," nou Vicki, ki moun ki supèrb.
Li nan absoliman supèrb, men li la pa tèlman entelijan.
Epi anfen gen nan "kontwolè." Nou
Nou swete ke, nan tout contrôleur ou yo ap dwe mwens pase vye kontwolè sa a
isit la, men sa a se nou an sa ki mal larenn, Caitlyn,
ki reyèlman renmen kòmann-nan moun ki alantou li, men se pa fè sa ki reyèlman
tankou fè bagay tèt li.
>> Se konsa, kite la kòmanse avèk yon analoji.
Se pou nou di tout nan nou an karaktè travay nan CVS.
Gen de senaryo nou ka reflechi sou.
Pou kèk rezon, mwen gen Senaryo 2, Senaryo 1, men sa a tout dwa,
nou pral kòmanse ak Senaryo 2.
>> Se konsa, kite a di yon kliyan vini jiska CVS, ak Vicki ap travay nan devan an.
Li nan kesye an.
Se konsa, kliyan an mande Vicki pou yon moso nan sirèt.
Ou konnen ki jan, nan CVS gen nan toujou ki sirèt aliyen yo nan ranje devan an.
Se konsa, yon kliyan mande pou sa sirèt.
Sak pase?
>> Oke, Vicki pa konnen ki sa fè, se konsa li vire ozalantou yo ak mande
Caitlyn. "Caitlyn, ki sa mwen fè?
Kliyan sa a jis mande pou sirèt. "
Caitlyn, manadjè trè kontwole nou an di, "Oke, sirèt la ki dwat la,
Vicki, jis bay li nan men yo.
Se konsa, Vicki di, "Oh, oke, bon," Li lonje sirèt la tounen nan kliyan an.
Sa a kalite premye senaryo nou an.
Se konsa, nan ka sa a, nou pa menm fè fas ak modèl li
Sa a se jis, di, yon itilizatè ale, li klike sou yon ap mennen nan paj entènèt ou an.
View la se estipid.
Li pa vrèman konnen ki sa fè, se konsa li gen pou yo ale nan kontwolè a.
Li te gen yo mande, "Ki sa mwen fè ak enfòmasyon sa a? "
Kontwolè a Lè sa a, men do paj la ki apwopriye,
ak gade nan ka montre li.
>> Nou kounye a gen yon dezyèm senaryo, oswa Senaryo nou an 1,
nan ka sa a, kote yon kliyan mande Vicki, kesye an,
pou yon tas ki nan chita nan do a, yon kote nan depo.
Koulye a, ankò, Vicki di, "O m 'bondye papa.
Mwen pa gen okenn lide sa yo dwe fè. "
>> Li tounen vin jwenn Caitlyn, nan manadjè, li te di, "Caitlyn,
Mwen gen absoliman okenn lide ki sa yo dwe fè.
Yo mande pou yon tas tan sa a, sa m 'fè? "
Caitlyn di, "Tout dwa, kwoke sou."
Li vire alantou li, ape a Madeline, modèl nou an,
li te di, "Madeline, ale jwenn yon koupe soti nan do a. "
Madeleine di, "Oke, oke."
>> Madeline ale, li konnen egzakteman ki kote tas yo ye a,
li bèn tas la li lonje li tounen nan Caitlyn, manadjè nou yo.
Manadjè a lonje l 'tounen nan Vicki.
Vicki kounye a ka finalman prezante nan tas nan itilizatè a, oswa kliyan an.
Se konsa, nan ka sa a, li nan yon ti kras plis konplike.
Nou te gen yon koup plis pati, men fondamantalman lide a se trè menm jan an.
Yon bagay k ap pase sou fen a devan.
Itilizatè a, kliyan an mande pou yon bagay.
View nan pa konnen ki sa fè, li gen pou yo ale nan kontwolè a.
Kontwolè a di gade nan si wi ou non jis
nan men tounen yon sèten kantite lajan pou done nan itilizatè a,
oswa yo ale jwenn kèk done ki sòti nan la tounen, men li tounen nan gade nan,
ak gade nan ka prezante nan itilizatè a.
>> Se konsa, mwen panse ke sa ka yon itil fason pou panse sou mv.
>> Kounye a ke nou gen sa fondasyon an tèt ou, se pou yo pale yon ti kras sou Ruby
sou ray.
Ruby tèt li, Ruby lang nan, gen yon anpil mwens pase sentaks PHP oswa C,
ak bagay sa yo ou ve yo te ap travay sou.
Ou pral wè gen yon anpil mwens virgules, yon anpil mwens
aparèy òtopedik Curly, sa ki fè li yon anpil joli yo travay avèk.
Li li yon anpil plis tankou lang angle.
>> Epitou, Ruby gen kèk karakteristik plezi bèl rele
Meservey, ki ou ka panse osijè de kalite tankou bibliyotèk nan C,
oswa bagay sa yo ou gen ladan ak regle la leve nan tèt la dosye ou.
Se konsa, gen Meservey Ruby pou jis sou tout bagay.
Li se yon lang super byen dokimante, e li gen anpil bagay nan moun k ap travay sou li.
>> Se konsa, si w ap panse sou mete ann aplikasyon kèk karakteristik fre,
eseye yon ti kras Googling, epi gen pral pwobableman
gen yon bibliyotèk pou li ki gen kèk pre-bati-an fonksyon ki fè
tou sa ou vle fè yon anpil pi fasil.
Epitou, n ap pale yon ti kras ti jan sou kèk ke ou
ka itilize yo amelyore app wèb la ke nou ap
pwal pale osijè yon ti jan pita.
>> Tout dwa.
Ruby sou ray, mwen te di, se yon fondasyon.
Ki sa ki se yon fondasyon?
Yon fondasyon se, fondamantalman, jis yon estrikti default.
Li ba ou yon seri dosye ak yon seri pwosedi
pou jere done, jere opinyon ou, ak jis
estrikti an jeneral nan pwogram ou an.
Se konsa, baz done, entènèt sèvis, paj entènèt se kalite
a kouche moute yon gwo moso nan pwojè ou pou ou,
ak Lè sa a ou ka ale nan ak kalite chanje bagay sa yo ke ou vle.
>> Se konsa, ki mennen nan kalite la dezyèm gwo poto gwo nan ray,
ki se konvansyon sou konfigirasyon.
Se konsa, Ruby sou ray, devlopè yo nan kominote a alantou Ruby sou ray,
valè konvansyon sou konfigirasyon.
Ak sa ki sa vle di ye, se la se pwosedi estanda ak fason
pou fè bagay sa yo nan Ray ki yo jeneralman
aksepte kòm wout la ou ta dwe, oswa pi fasil la
fason yo ale sou fè bagay sa yo.
>> Epi ou ka wè ke, lè nou pral aktyèlman kòmanse génération app nou an,
tankou mwen te di, gen yon pakèt moun sou dosye ki deja bati pou ou.
Lè sa a se kalite bagay la konvansyon.
Li fè li yon anpil pi fasil navige alantou app ou
epi jwenn fason pou fè bagay sa yo, si gen nan
yon estrikti seri, yon seri pwosedi ki nòmalman ou swiv.
Sa te di, gen nan yon anpil nan konfigirasyon ou ka fè nan ray.
Genyen yon anpil nan personnalisation, yon anpil nan Twitter big-- la bati nan ray.
Gen yon pakèt moun sou lòt konpayi gwo ki itilize ray,
kidonk sa a se pa vle di ke ray pa ka fè tou sa ou vle l 'bay fè,
li nan jis sa, jeneralman, gen nan yon pwosedi ki mete
fè li yon anpil pi fasil si ou dakò avèk sa.
Genyen ray reyèlman bon dokiman.
Mwen pral pwen ou nan yon koup lòt itil sous pita nan prezantasyon an,
men sa a se jis yon ap mennen nan la ofisyèl Ruby sou ray kopi dokiman yo.
Definitivman tcheke li soti si ou se panse a ap travay nan ray.
>> Tout dwa.
Yon ti jan ti kras sou Ruby.
Nou pral adrese diferans ant Ruby ak lang yo
ou ve yo te ap travay nan plis lè nou jwenn nan egzanp kòd,
men sa a se jis kalite yon bagay fre ki Ruby fè,
ki se iteration nan nimewo ak yon etalaj.
>> Se konsa, si ou sonje, nan C, sa ou dwe fè se,
ou gen yo mete kanpe yon pou riban, ak ou gen yo repekte nan etalaj ou
pa au chak eleman.
Se konsa, ou gen etalaj [0], oswa etalaj [1], oswa etalaj [2].
Nan Ruby, yo te pran swen nan yon anpil nan ke pou ou.
Se konsa, pou yon pou riban, ou ka olye sèvi ak .chak.
>> Se konsa, si mwen gen yon nimewo etalaj, epi li gen senk nimewo nan li,
e mwen vle yo ale nan chak nimewo Et enprime l ', mwen ka jis di,
numbers.each fè nimewo, ki son yon ti kras skre an premye,
men fondamantalman, ki sa sa a, se fè se, li la di:
Mwen gen yon etalaj de chif, Mwen vle pran chak yon sèl,
ak olye pou yo li di nimewo [0], nimewo [1], mwen ka jis di kantite.
Apre sa, li la pral ale nan chak yon sèl ak apèl
li "Nimewo" kòm li ale atravè li.
Se sak fè, mwen kapab jis di, mete nimewo, ak premye fwa a nan, li pral
mete nimewo a, ki se youn.
A dezyèm fwa a, li pral mete nimewo a, ki se de.
Twazyèm fwa a, et setra.
>> Se konsa, sa a se jis yon jistis konstriksyon komen nan Ruby,
Se konsa, mwen te panse mwen ta jis montre li nan ou nèg,
se konsa li a pa akablan si ou jwenn li ankò.
Ak diferans ki sot pase a se, nan fen a olye pou yo aparèy òtopedik Curly,
nou di, tout dwa, nou ap fè ak nou an pou riban, kite a di fen.
Epi nou ap di nou an pwogram ki, oke, nou ap
fè ak sa a ti moso nan kòd.
>> Se konsa, jis yon ti kras nan ekspoze a diferan kalite sentaks nan Ruby.
>> Oke.
Nou pral kounye a jis plonje tou dwat nan yon egzanp,
ak depanse 40 minit kap vini yo jis kalite a fouye nan li, ale atravè tout li,
eksplike bagay sa yo.
Si ou nèg yo se isit la pou seminè a, ou vle pou avanse pou pi moute nan bankèt yo?
Cool, pè.
Apre sa, santi yo lib yo sispann m 'nan nenpòt ki pwen si ou gen kesyon.
Leve yon men, tou sa, jis rele deyò.
>> OK oswa aktyèlman, se pou yo tounen isit la.
>> Se konsa, mwen te mete yon ap mennen nan tout nan kòd la ke mwen te
ekri pou egzanp sa a sou yon sit entènèt yo rele GitHub, ki
si ou pa yo te GitHub anvan, li nan
fondamantalman jis yon plas kote ou ka magazen yon anpil nan kòd,
ak kominike avèk li.
Li te gen yon anpil nan karakteristik fre, men pou kounye a ke nan tout sa ki nan vrèman nesesè.
>> Se konsa, ki te gen de bagay sa yo ke ou can-- fondamantalman,
de opsyon pou fè fas ak sa a code-- ou
ka ale nan GitHub.com, ak pou enstriksyon yo
ke ou pral wè pou konbyen yo swiv ansanm ak bati app pwòp ou a,
sa a, se menm bagay la kòm nan app nan kòd la egzanp,
oswa ou kapab aktyèlman download tout nan kòd la
epi gen yo se egzanp pou konbyen jis kouri li dwa koupe baton an si ou vle.
Ou regrèt, enstriksyon pou konbyen jis kouri li dwa koupe baton an,
si ou vle eksperyans ak jis kalite a wè sa ki li fè sa sou pwòp ou yo.
Nou pral tou gen pou jwe otou ak li kèk jodi a.
>> Se konsa, yo nan lòd yo jis jwenn yon kopi tout nan kòd la sa a, se nan repozitwa sa a,
tout sa ou dwe fè se tape sa a liy nan liy lòd ou,
ak glisad sa yo ap disponib apre, se konsa pa gen enkyetid la.
Se konsa, ou ka jis kopi sa a liy nan liy lòd ou yo.
Li pral fè yon nouvo folder ak tout nan kòd la egzanp,
oswa ou ka telechaje li nan sit entènèt la paske li pral, ki soti nan sit entènèt la CS50
paske li pral moute gen apre sa tou.
>> Tout dwa, kite pou yo gade nan kèk kòd.
Oke.
Se konsa, sa a se sa a GitHub lyen sanble.
Si ou te ale nan lyen ki premye ki te jis sou glise la jis parèt.
Se konsa, li di ou sou app a, sa ki nan nan li,
ak Lè sa a sa ki nan kalite la diferan kat nan dosye ke ou pral jwenn nan app a.
>> Se konsa, kite a pran yon gade nan folder nan premye nan app.
Se konsa, a-fè lis, kòmanse soti.
Fondamantalman, ki sa ki sa a pral app fè se, li la trè senp,
li nan jis ale nan fè yon lis a-fè.
>> Yo, epi sou lis a-fè ou, ou pral kapab yo ajoute atik,
ou pral kapab yo efase atik, ou pral kapab wè atik endividyèl,
modifye atik, ak wè tout nan atik yo nan lis ou yo.
>> Se konsa, san patipri ki senp fonctionnalités, men sa a se sa ki pi bon Ray nan.
Oke, ray se yon bon bagay nan yon bann bagay sa yo, men sa a
se kalite fondasyon an a ray, ak yon fwa ou
konnen ki jan yo kalite fè kat aksyon sa yo:
kreye, li, modifye ak detwi, li nan kalite de- mwen
toujou jwenn "detwi" yon mo reyèlman vyolan.
Mwen pa konnen poukisa yo jis itilize "efase", men de tout fason, konvansyon an
sa a vle di "detwi" Se konsa, nou ap pral detwi atik yo.
Men, yon fwa ou ka fè sa yo kat bagay sa yo, fondamantalman, mond lan
se ouvè a ou nan devlopman sou sit wèb ★ Se konsa, li ta dwe gen yon egzanp itil.
Tout dwa.
>> Se konsa, aktyèlman, an premye, mwen pral montre w ki sa sa a, nan pratik, ki sa
sa a lis a-fè ki pral fè.
Epi, mwen pral eksplike.
Se konsa, si nou ale nan, mwen toujou bliye sentaks an egzak
pou kòmanse yon sèvè ray, men sa a poutèt sa mwen te ekri li desann.
Tout dwa.
Se konsa, sa a se jis kòmanse yon sèvè.
Ou nèg, yo tout fè yon bagay ki sanble sou pwoblèm nan Ansanm, pa
sentaks egzak sa a.
Nou pral ale nan li yon ti kras plis pita.
>> Oke, kidonk sa a se sa a app final ki pral fè.
Nou pral yo dwe akeyi nan nou sit, nou ka wè lis a-fè nou an.
Dwa koulye a, li la vid, pou nou ka ajoute yon atik.
Se pou nou di, "Ale nan CS50 seminè jodi a."
Save atik.
>> Tout dwa, se konsa kounye a nou ap wè ekzakteman ki sa nou jis te ekri.
Li fè sans.
Lè sa a,, nou ka modifye li si nou vle, oswa nou te kapab jis tounen nan fè lis,
e kounye a, nou wè atik la se, "Ale nan CS50 jodi a."
Ou regrèt, fè li yon ti kras pi klè, nou
te kapab ajoute yon ti kras ti repo isit la, "Ale CS50 seminè, "tèks la se jodi a.
Nou kapab tou efase atik sa a, e kounye a, lis a-fè nou an, se vid.
>> Se konsa, ankò, bèl de baz yo.
Gen kèk, mwen pa fin sèten si sa a ane gen nan yon seminè sou demaraj,
men si ou vle fè sit ou bèl,
ou ka itilize bagay sa yo tankou HTML, CSS, ak demaraj.
Definitivman wè seminè sa yo si w ap enterese nan fè bèl pase apps,
men nou ap travay sou fonctionnalités jodi a.
>> Tout dwa, se konsa kite a jwenn te kòmanse.
Se konsa, si ou ale nan, ankò soti nan paj sa a kay sou GitHub,
ou ta ka di "lis kòmanse soti, "ak sa a
ap mache ou atravè jis de baz yo nan mete kanpe fondasyon ou a ray,
kòmanse sèvè ou, ak ap resevwa yon bagay yo montre sou ekran an.
>> Se konsa, sa a se jis konfigirasyon an de baz yo.
Se konsa, yo, ki fè yon nouvo ray pwojè se reyèlman fasil.
Tout sa ou dwe fè, depi li nan pre-enstale sou IDE a,
se tip "Ray nouvo" ak Lè sa a, non pwojè ou.
Epi sa k ap pase yo jenere yon pakèt antye nan kle flèch.
>> Kòm ou ka wè, si m 'ale todo_list_starting_out,
nou genyen, li kapab kalite akablan, paske se la se sèlman
yon tòn bagay ki jis parèt.
Chans, ou pa bezwen fas ak twòp nan li.
Espesyalman, lè w ap kòmanse soti jis bati apps entènèt de baz yo.
>> Folder nan prensipal ou pral konsène ak se sa a folder app.
Epi ou ka wè nan sa a app katab, nou gen yon koup bagay
ki deja gade yo konnen yo.
Se konsa, nou gen modèl, opinyon, ak contrôleur.
>> Se konsa, ou ka devine ki kote diferan nan kòd pou modèl, opinyon, ak contrôleur
yo ale nan ale, epi li la pwobableman ale nan dwe nan dosye yo ki apwopriye yo.
Se konsa, premye bagay la nou vle fè a, se fondamantalman,
nou jis vle fè yon bagay parèt sou ekran an.
Nan seksyon sa a, nou jis vle akeyi yon moun vini nan paj lakay nou an,
jis di hello.
>> Se konsa, wout la ou fè se sa ki, ou kapab jenere yon kontwolè reyèlman fasil
nan ray.
Dwa koulye a, nou pa fè sa gen nenpòt contrôleur.
Oswa, si ou te jis ale sa a byen lwen, ou pa pral gen nenpòt ki contrôleur.
Si ou ale nan ou contrôleur katab, tout
li pral gen se aplikasyon sa a kontwolè, ki se jis di ou,
ou ka fè kèk konfigirasyon baz nan kontwolè aplikasyon w lan,
men li pa k ap pase yo di app ou sa yo dwe fè si yon moun
klik sou yon paj entènèt espesifik.
>> Se konsa, wout la ke ou mete ke li leve, ki gen la
se yon liy ou ka kouri nan ray, ki fondamantalman, jis di,
jenere yon kontwolè.
Fè m 'yon dosye ki nan pral ede m 'fè fonctionnalités a ke mwen
bezwen sou sit entènèt sa a.
Epi, nan yon sèl sa a an patikilye, nou ap fè yon kontwolè akeyi yo,
paske tout li a pral fè se itilizatè Byenveni nan paj la.
Se konsa, anjeneral ou vle nan non ou kontwolè yon bagay ki fè sans
pou fonksyonalite a li k ap pase yo fè,
e nan lespas de ki kontwolè akeyi yo, nou vle gen yon aksyon endèks.
Koulye a, si ou sonje soti nan sèvè ou pwoblèm Mete, youn
nan bagay sa yo ou te fè, se te chèk yo wè si yon itilizatè te ale nan yon paj lakay
san yo pa, Se konsa, si yo jis te ale nan yon anyè,
ou te gen yo tcheke pou index.html oswa index.php.
Sa a se paske, pa konvansyon, "paj lakay"
yo rele "endèks" nan devlopman entènèt.
>> Se konsa, ou ka panse a index.anything, reyèlman kòm yon paj lakay ou.
Se konsa, nou ap ale nan di, nou vle yo dwe kapab okipe demann
nan paj sa a lakay yo.
Apre sa, nou vle gen yon aksyon ki nan kontwolè nou an ki ka fè fas ak sa.
Se konsa, sa ki sanble.
>> Oke, yon fwa ou kouri sa a liy nan kòd, w ap
pral jwenn yon kontwolè welcome.
Epi, nan ki kontwolè akeyi yo, li defini yon endèks metòd.
Epi sa a, tout li fè sa.
Li jis di ke li egziste.
Epi sa a, paske, nou pa fè sa vrèman bezwen nenpòt fonksyonalite anpenpan lè
pèp la vle pou yo ale nan paj lakay nou an, nou jis vle montre yo paj la.
>> Se konsa, nou jis bezwen di kontwolè nou an, "Tout dwa, aksyon sa a egziste.
Paj sa a ki egziste.
Pa sovaj soti lè ou jwenn isit la ak jis montre nou
paj sa a endèks, "ki se tout byen ak bon, eksepte nou
pa t 'fè yon paj endèks ankò.
>> Se konsa, ki ale nan pwochen an bagay nou dwe fè,
ki se yon fwa ou mete kanpe kontwolè ou nan Etap 3, ou gen pou ale nan yo opinyon yo,
paske, menm si ou te te di app ou ki sa
w dwe fè lè yo ale nan endèks la paj, ou pa t 'fè yon paj endèks.
>> Tout moun nan opinyon nou an, tankou Mwen te di anvan, yo ale
yo dwe estoke nan sa a folder opinyon.
Epi, menm jan ou ka wè, nou deja gen yon katab welcome.
Ki te pwodwi lè nou pwodwi kontwolè nou an.
>> Li sipoze w ap pwobableman ale nan vle montre
moun ki opinyon ak bagay sa yo sa yo divès kalite ou vle fè nan kontwolè sa a.
Se konsa, nou ap ale nan fè yon katab pou ou ki nan ki gen rapò ak sa a kontwolè
ke ou fè fè yo.
Epi, se k ap pase yo dwe rele "akeyi" paske ou te kontwolè
rele welcome.
>> Ou ka mete nan nenpòt paj ou vle isit la.
Se konsa, tankou mwen te di, nou vle yon paj endèks.
Nou vle yon paj lakay ou.
Se konsa, nou ka kreye paj endèks sa a.
Li pa pral isit la orijinal lè w ou fèk tape sa a,
se konsa ou pral gen fè li.
Epi ou vle li nan dwe rele index.html.erb
paske se sa kalite wout la ray nan di, sa a se yon paj vi ray.
>> Se konsa, olye pou yo jis index.html, konvansyon an se index.html.erb.
Epi, ou ka mete tou sa ou vle nan paj sa a lakay yo.
Dwa koulye a, tout mwen te di se "Alo."
>> Se konsa, ki vle di, sa k ap pase, kite a wè sa a nan aksyon.
Se pou nou sispann sèvè nou yo soti nan nou an final lis a-fè, ale nan kòmanse nou an
deyò lis a-fè, ak kòmanse sèvè a ankò.
Petèt.
Ann we.
Isit la nou ale.
>> Oke.
Se konsa, kounye sèvè nou an ta dwe kouri, ak li k ap pase yo dwe sèvi nou debaz sa a,
jis kòmanse soti paj.
Se konsa, lè nou vizite kay la paj sonje, we've--
>> Oh, regrèt.
Genyen yon lòt zòn enpòtan ke ou
bezwen configured lè w ap kòmanse soti ray app ou.
Se konsa, nou te di a kontwolè sa ou kapab espere
lè nou jwenn te pase enfòmasyon sa yo.
Men, nou pa gen aktyèlman configuré wout yo nan app wèb nou an ankò.
>> Se konsa, fondamantalman, nou bezwen fè asire w ke kontwolè a vin
pase enfòmasyon an dwa nan moman an dwa.
Se konsa, ki jan app wèb nou an menm konnen ke lè nou ale nan paj la lakay ou,
li ta dwe di kontwolè a akeyi yo dwe oke ak paj la endèks,
ak Lè sa a deklanche paj la endèks?
>> Dwa koulye a, si nou te ale nan paj lakay nou an, app nou an
pa vrèman konnen ki li nan sipoze pale
kontwolè a akeyi nan tout.
Se konsa, bagay la pase, kalite zòn enpòtan
edite lè w ap mete kanpe yon app se wout.
Epi sa a, nan config, routes.rb.
>> Se konsa, mwen gen sa kòrèk nan direksyon m '
sou Lè w paj sa a kòmanse, se konsa si w ap swiv ansanm ak sa,
ki ta dwe fasil dekouvri.
>> Se konsa, bagay la yon sèl nou gen fè, se nou dwe di,
lè w ou fèk rive nan paj sa a, pral liy sa a dwe kòmante soti,
paske gen yon anpil nan kòmantè.
Yon fwa ankò, sa a se jis yon pati nan lè ray vin pwodwi,
li mete yon pakèt antye nan bagay nan isit la.
Li te gen tout bagay sa a kòmante soti, paske ou pwobableman
pa bezwen li orijinal, men sa a se kalite bagay ki yon anpil nan moun
yo gen tandans yo sèvi ak.
>> Se konsa, ou ka efase tout nan sa a si ou vle,
men ou pral jwenn kèk nan bagay sa yo ou ta ka
vle suprime nan divès pwen, jis paske yo gen tandans yo dwe itil.
Se konsa, sa a se yon bagay ki Ray jis kouche moute pou ou.
>> Se konsa, sa a pral yon liy sa a, se kòmante soti, men ou ka suprime.
Epi, sa ki liy sa a di se yo, tout dwa, si itilizatè a ale nan rasin lan,
ale nan paj lakay nou an, nou vle deklanche endèks la contrôleur akeyi
metòd.
Epi sa a, ki jan sa a tout lyen ansanm.
>> Itilizatè ale nan paj an kay.
Nan wout, ou mete l 'kanpe pou ke volonte deklanche kontwolè a akeyi yo, ki
pral ale nan akeyi kontwolè, ki pral Lè sa a di, tout dwa.
Index, mwen vle rele index.html.erb epi bay ki tounen nan itilizatè a.
>> Sanble kalite konplitché, men ou pral kòmanse wè yon kalite modèl la,
nou dwe fè yon bagay ki gen wout, nou ou dwe fè yon bagay ki gen kontwolè,
nou dwe fè yon bagay ki gen opinyon yo.
Lè sa a, apre sa, nou pral ajoute nan, oke, yon fwa nou gen tout wout nou an,
opinyon, kontwolè, modèl, kontwolè, opinyon, kontwolè, modèl, kontwolè,
opinyon.
>> Se konsa, sa a, se kalite yon modèl ou pral kòmanse wè.
ODYANS 1: Èske mwen ka mande yon kesyon?
Oratè: Yeah, ale pou li.
ODYANS 1: De.
Youn, se ke mwen remake ou rekòmanse sèvè a, apre ou fin
mete nan bagay la endèks.
Sa vle di chak fwa ou chanje kèk kòd, ou bezwen rekòmanse li?
>> Oratè: Se konsa, li, souvan fwa, espesyalman si w ap jis
kalite chanje alantou opinyon, ou jis bezwen rafrechi paj la.
Pafwa, si ou fè kèk chanjman pi gwo,
ou pral bezwen rekòmanse sèvè a.
Anjeneral, si gen yon bagay se pa ki montre moute ke ou panse
li ta dwe, jis rekòmanse nan sèvè epi byen souvan yo li pral vini.
>> ODYANS 1: Se konsa, jis rekòmanse li.
>> Oratè: Yeah, anjeneral, yeah.
Fondamantalman, anjeneral, mwen jis rekòmanse nan sèvè si mwen kouri antre nan kèk pwoblèm sòt.
>> ODYANS 1: Epi, dezyèm m ' kesyon se, li sanble, menm jan ou te di,
sanble yon bèl konplitché pwosesis yo ranje paj endèks ou yo.
Koulye a, mwen asime gen nan yon bann bagay sa yo ki fè li pwisan ak versatile,
men mwen pa gen pou wè pati sa a ankò.
Èske w ap eksplike yon ti jan ti kras?
>> ODYANS 2: Ale pi devan epi repete kesyon l 'yo.
>> Oratè: Oh, regrèt.
Se konsa, kesyon an premye te, Mwen rekòmanse sèvè a,
e poukisa t 'mwen fè sa nan tan sa a an patikilye?
Rezon ki fè la pou sa espesifik se yon sèl paske mwen te aktyèlman
chanje dosye, Se poutèt sa mwen te gen nan rekòmanse li pou app ki kòrèk la.
Men, anjeneral, ou jis gen rekòmanse sèvè a si ou fè chanjman gwo.
>> Kesyon an dezyèm se, sa a sanble vrèman konplitché.
Poukisa se li tèlman konplike fè jis yon paj entènèt sèl parèt
ak ki kote se pouvwa a nan ray?
>> Se konsa, fondamantalman, pouvwa a Ray ki pral vini
nan youn nan bagay sa yo kap vini yo mwen se pral montre w, fondamantalman.
Se konsa, byenke sa a fè sanble konplitché, epi sitou konpare ak pwoblèm ou
Ansanbl, li la aktyèlman yon anpil plis konplitché
nan prèske nenpòt lòt fondasyon.
CS50 te kalite pran swen nan yon anpil nan fen sa a tounen
pou ou, lè yo te pwodwi kòd la pou Finans CS50 ou yo.
Se konsa, gen yon anpil nan sa a jis ale anba kapo a nan sa ki w ap travay nan,
paske yo te vle ou nèg konsantre sou modèl-view-kontwolè,
sèlman sa yo aspè, paske ki se baz la nan devlopman entènèt.
Apre sa, li vrèman enpòtan ke ou konprann ki bagay ak ki jan li kpaba antre ansanm.
>> Men tou, gen nan yon anpil nan bagay anba kapo machin lan ki
te yo ale nan anvan ou ka menm li ale nan modèl-view-kontwolè.
Se konsa, sa a, se kalite sa w ap wè isit la.
E reyèlman, si ou gade etap-pa-etap nan direksyon yo,
li aktyèlman sèlman se sou kat etap.
Ou gen jenere fondasyon an, Se konsa, jis tape "ray nouvo."
Ou gen jenere yon kontwolè, ou gen yo jenere yon endèks,
ak Lè sa a ou gen yo kreye yon wout.
>> Se konsa, li la reyèlman sèlman koreksyon kat dosye.
Epi li se yon anpil nan mete kanpe la fè pou ou.
Se konsa, li tou sanble plis konplitché, paske li te pran yon anpil plis
tan, depi m 'te eseye yo eksplike nan divès kalite etap ak poukisa yo rive.
Se konsa, si ou panse sou li sèlman kòm nan kat etap sa yo,
li sanble mwens konplitché.
Epi tou, ki sa mwen se sou montre w, se kalite pati
a rezon an pou kisa moun ki renmen ray anpil.
>> Oke, kidonk kite yo jis premye wè paj sa a ke nou te te travay sa difisil yo kreye.
"Hello!"
Tout dwa, trè underwhelming.
Oke, kite la kontinye.
Se konsa, apre yon pati, dezyèm lan, apre a-fè lis kòmanse soti,
se a-fè lis ki gen atik yo.
>> Se konsa, si li la pral a-fè lis, li pwobableman
bezwen kèk atik ki nan lis la a-fè.
Se konsa, premye bagay la nou dwe fè, oswa yon sèl nan bagay ki premye fè
se fè yon seri de wout, paske w ap pwobableman
ale nan vle yon paj kote ou ka fè bagay nouvo.
>> W ap pwobableman ale nan vle paj kote ou ka wè atik yo endividyèl elèv yo.
W ap pwobableman ale nan vle yon paj kote ou ka modifye atik yo,
ak Lè sa a evidamman, efase se, ou pa ta ka vle yon paj pou sa,
men w ap ale nan vle yo kapab klike sou yon bagay yo efase atik,
epi yo gen enfòmasyon ki disponib.
>> Se konsa, sa a se yon reyèlman itil bagay ki ray fè.
Se konsa, si nou ale nan folder nan pwochen, ki se ak atik, nou ka wè nan wout nou an
ankò.
Config, wout.
Nou te ajoute yon nouvo bagay.
Se konsa, anvan, nou jis dekomante sa a rasin akeyi endèks.
Epi sa te ankò li di: si ou ale nan paj an kay,
ale nan kontwolè a akeyi yo, ale nan paj la endèks.
Koulye a, nou gen sa a twa liy siplemantè.
Yo gade yon ti kras skre.
Li nan kalite klè ki sa yo ap fè.
Men, fondamantalman, sa a se kreye yon resous ray.
>> Apre sa, yon resous se jis yon seri nan enstriksyon ak pwosedi
ki gen rapò ak yon espesifik, regrèt sa, kite m 'rformule sa a.
Yon resous se yon seri pwosedi ki gen rapò ak kèk konstwi
ke ou pral vle gen.
Se konsa, nan ka nou an, li nan atik yo.
Nou vle gen atik; nou vle fè yon pakèt moun sou bagay sa yo nan men yo.
>> Se konsa, sa ki sa a koup liy fè, se li
di, nou vle kapab gen yon pakèt moun sou chemen
ke nou ka ale nan fè diferan bagay sa yo ak atik nou yo.
Apre sa, li kreye tout chemen sa yo pou nou.
Se konsa, yon sèl fason pou prouvan sa, se si nou ale -
se pou yo sispann sèvè nou an Se konsa, mwen kapab itilize wout yo rato terminal--.
Ki sa ki kòmandman sa a fè, se li, mwen se toujou nan kòmanse soti.
>> Men, sa a se, nou kapab kòmanse ak sa a aktyèlman.
Se konsa, jan ou ka wè, sa a te montre nou ke nou genyen, nou ka ale nan paj lakay nou an,
e ke pral deklanche nan contrôleur akeyi endèks metòd,
men nou ka ale tou akeyi / endèks, ak ki pral fè menm bagay la.
>> Se konsa, sa a se de diferan wout ke ou ka tape nan,
yo nan lòd pou li ale nan paj an kay menm.
Se konsa, sa se ki montre nou tout ki disponib wout nan kòmanse nou yo soti kite app.
Koulye a, si nou ale nan nouvo app nou an ki gen atik ki nan li, se konsa todo_list_with_items.
>> Lè sa a, nou kouri wout rato ankò.
Se konsa, yo montre nou tout ki disponib nan wout nan itilizatè a kapab tape nan.
Koulye a, nou gen yon pakèt plis.
Apre sa, tout nou te fè se ajoute moun liy koup nan wout nou an,
men kounye a nou ka ale nan koupe bagay ki soti nan rasin nou an,
epi n ap gade nan paj endèks atik kontwolè a.
Oswa, nou pral deklanche endèks la aksyon nan kontwolè a atik yo.
Nou gen "nouvo," nou gen "modifye," nou gen "efase."
>> Se konsa, sa a te kreye yon pakèt moun sou wout ki disponib.
Koulye a, nou pa t 'fè nou an kontwolè endèks ankò,
se konsa nou pa gen aktyèlman fè nenpòt ki valab, nou pa t 'fè aksyon sa yo ki valid.
Men koulye a, nou pa gen yo ajoute yon diferan liy nan kontwolè wout nou an
pou chak yon sèl nan sa yo aksyon, pa nan kontwolè wout nou an,
nan dosye wout nou yo.
>> Se konsa, sistèm nan jenere sa a otomatikman pou ou.
Tout sa ou dwe fè se modifye wout ou nan RB.
Deja, nou ap wè yon sèl a avantaj yo nan ray.
Li fè sa ki tout bagay sa a pou nou.
Koulye a, tout sa nou gen yo fè, tankou nou te fè anvan,
se modifye kontwolè nou an pou nou ka okipe tout nan chemen sa yo diferan
ki itilizatè a ka vle pran, ansanm ak modifye opinyon nou yo pou nou gen dosye
ki kontwolè a ka rele.
>> Oke.
Ann ale nan, Nou vle edite kontwolè nou an.
Dwa.
Sa a ekzakteman ki sa mwen jis te di.
Oswa fè yon kontwolè.
>> Se konsa, ou ap wè kounye a, mwen gen yon nouvo kontwolè rele "atik kontwolè."
Apre sa, mwen te pwodwi ki trè menm bagay ak wout la
ke mwen te pwodwi nan kontwolè anvan yo.
Se konsa, si ou ale nan nan enstriksyon nan Pati De, ak atik,
ou pral wè ke apre ou edite a wout, ou fè yon nouvo kontwolè.
Epi, si ou sonje sentaks la nan egzanp anvan-an, gwo.
Si ou pa, amann.
>> bin / ray jenere atik kontwolè.
Sa a se yon ti kras diferan, paske nou pa t 'di endèks dwa apre,
paske nou jis vle jenere yon kontwolè vid,
paske nou ap fè yon anpil nan konfigirasyon nan kontwolè sa a.
Se konsa, nou pa t 'vle prereglaj endèks metòd nan li jis sou kòmansman an,
men sa a yon bèl ti diferans.
Fondamantalman, li nan ekzakteman menm bagay la.
Nou ap fè yon kontwolè pou ke nou kapab manyen okenn demann fè fas ak atik,
ak ki pral tou fè yon dosye ki nan opinyon nou an fè fas ak contrôleur,
oswa fè fas ak atik yo.
>> Èske mwen kapab jwenn yon kalib?
Kouman yo moun ki ap fè?
Li se yon anpil nan enfòmasyon.
Èske gen yon sans jeneralman fè?
Èske gen bagay sa yo ke yo se jis absoliman fason twò konfizyon
ke mwen ta dwe ale sou?
Rezon ki fè yon bagay?
Lè w fè oke?
Oke.
Tout dwa.
Nou pral ale sou lè sa a.
Tout dwa.
Nou te fè yon kontwolè atik yo.
Nou vle fè fas ak atik yo.
Ki sa nou vle fè ak atik nou an?
Bon, nou vle yo dwe kapab fè bagay nouvo,
epi ou vle kapab kreye atik yo.
Sa yo sanble kalite menm jan an.
Ki sa ki nan diferans lan?
>> Oke, gen yon koup diferan fason ke ou ka chanèl enfòmasyon
nan yon kontwolè.
Youn, se nan JWENN demann, se konsa nan URL.
Apre sa, nou deja wè sa.
Nou te ale nan akeyi / endèks, nou te resevwa paj akeyi contrôleur endèks nou an.
Sa te enfòmasyon afèkte kontwolè a nan yon demann jwenn.
>> Gen tou afiche demann, menm si.
Epi sa a, si ou soumèt yon fòm sou entènèt, gen nan
enfòmasyon toujou ki voye tounen , yo soti nan kontwolè a,
men li fè sa pa nesesèman ale nan URL la.
Se konsa, gen yon koup diferan bagay sa yo nou kapab fè avèk bagay sa yo.
Nou bezwen yon paj yo ale nan kote nou ka tape
nan enfòmasyon an nou vle pou atik la nouvo nan lis a-fè nou an,
men nou bezwen tou yo dwe kapab okipe, yon fwa nou
klike Antre, ki sa k ap pase ak sa a enfòmasyon ke nou te tape nan.
Se konsa, sa a, se kalite jeneral la objektif nan "Nouvo" ak "kreye"
"New" gen tandans ka yon paj ke ou pral vizite.
Li nan enfòmasyon ki vin pase kontwolè a atravè yon URL.
Se konsa, lè ou ale nan / nouvo, wout ou yo mete kanpe okipe ke kòm enfòmasyon
ki pral debarase pase bay kontwolè a atik,
ak Lè sa a ou pral kalite rann yon paj ki montre yon fòm ki itilizatè a kapab
tape nan enfòmasyon.
>> Men, Lè sa a, gen nan "kreye."
Se konsa, yon fwa ou tape nan ou enfòmasyon ak laprès soumèt,
kreye gen tandans ka a aksyon ki pral aktyèlman
pran enfòmasyon ki ke ou te antre nan, ak fè yon bagay ak li.
Se konsa, sa a, se diferans ki genyen ant moun de ki kapab orijinal konfizyon.
>> Se konsa, nan tout sa nou an kreye metòd fè kounye a,
se rann, avyon, params, atik, enspekte.
Tout sa ki vle di, se pran enfòmasyon nan ou te ki gen rapò ak atik, sa a atik
ke nou tape nan enfòmasyon pou, ak nou pral
montre w kouman ki travay nan yon moman sa, ak jis montre li nan m '.
Se konsa, apre ou tape nan enfòmasyon sou nouvo paj sa a
montre m 'sa ou tape nan sou pwochen paj la.
>> Epi, nou ka wè ke nan aksyon.
Kite m 'fèmen kèk nan sa yo se konsa li vin mwens ankonbre.
Ann ale.
Oh, nou ap nan ak atik yo.
Se konsa, kite la kòmanse sèvè nou an.
Tout dwa.
Mwen te jis ale nan atik / nouvo.
Sa a ap di, paske yo te nan fason nou mete kanpe wout nou yo nan config,
se chemen sa a mete kanpe bay enfòmasyon yo kontwolè a atik yo.
Ak espesifikman, aksyon nan nouvo nan kontwolè a atik yo.
Se konsa, si ou sonje tout sa ki te di, li te "def nouvo fen."
Se konsa, sa se sèlman ale nan eseye epi jwenn new.html.erb,
paj la HTML ki gen rapò ak nan aksyon ke nou ap chèche pou.
Apre sa, mwen pral montre w paj ke nan yon moman.
Men, jan ou ka wè li jis di fè yon fòm, fondamantalman.
>> Sa a ki sa paj ki fè.
Nou ka tape nan yon lòt bagay.
Se konsa, "Nouvo atik" ak "te fè jodi a ankò."
Nou pwal pou konsève pou li, epi nou wè tout sa ki nou an kreye aksyon fè
se enprime li soti nan ekran an kounye a.
Evantyèlman, nan seksyon kap vini an, nou ap ale nan mete nan yon baz done,
men pou kounye a, nou ka wè nou te kapab pran enfòmasyon ki ak okipe li.
>> Se konsa, ankò, sa a se toujou kalite underwhelming,
men omwen kounye a nou kapab kalite a kòmanse fè fas ak done.
Se konsa, sa nouvo paj nou an sanble?
Ki sa HTML a gade tankou nan paj sa?
>> Se konsa, ankò, ou kalite espere ke yo dwe nan opinyon,
paske li nan fè fas ak enfòmasyon ki
aktyèlman vin parèt sou ekran an.
Lè nou te pwodwi atik nou an kontwolè,
ki te fè yon katab sou la men pou nou nan opinyon ki gen rapò ak atik,
ak mwen te fè paj new.html.erb sa a.
>> Se konsa, sa a se yon lòt rezon poukisa ray se pè.
Li nan reyèlman fasil yo soumèt ak done transfè fè fas ak resous
ke ou te fè nan wout.
Se konsa, tout sa nou dwe fè, nan lòd yo di app a ke sa a
se enfòmasyon sou nou an a-fè lis atik, se di form_for: atik.
Sa a li.
>> Apre sa, lè sa a, nou ap jis di li sa URL l dirije
apre nou ap fè soumèt fòm nan, epi li items_path.
Apre sa, nou ka gade nan sa ki ki se nan yon dezyèm fwa.
Men, pou kounye a, kite yo jis Ale nan fòm nan.
>> Se konsa, si ou sonje soti nan lè m ' te pale sou Ruby pou pasan,
li te array.each fè nimewo, ak Lè sa a, chak fwa nou mache ale nan tout bouk la,
li te fè yon bagay yo, oswa li enprime soti nimewo a pwochen nan lis la.
>> Sa a se menm jan sentaks fè yon bagay yon ti kras diferan.
Li nan di, fondamantalman, tout li te di se, mwen vle gen rapò fòm sa a nan,
li nan bay, dwat.
Kite m 'rformule ankò.
>> Li nan ki gen rapò fòm atik yo, se konsa bagay sa yo, nou wè nan fòm sa a,
ke nou te fè pou atik.
Se konsa, li nan jis yon fason pou kalite a mare tout bagay ansanm.
Mwen pa pwal ale nan li twòp detay.
Men, fondamantalman, ki sa nou te fè se nou ap di:
pou fòm sa a ke nou te fè pou sa a atik, nou vle gen yon jaden Tit,
ak etikèt la yo pral "Tit," epi li pral gen yon jaden tèks.
>> Lè sa a, tout sa ki sa a se sentaks fè, se kalite génération HTML.
Ou pral wè li pa gade tankou HTML, sitou paske
nan sa yo kalite senbòl etranj sou chak fen nan tèks la.
Ak sa ki ki nan li di se, nou yo ale nan vle Ruby kòd,
oswa nou ap ale nan vle HTML evantyèlman, men nou vle
sèvi ak kèk Ruby jenere ki HTML.
>> Se konsa, sa a se jis rete soude Ruby Kòd nan HTML.
Se konsa, nou ka wè sa a se plenn HTML, H1 nouvo atik fèmen H1.
Ki sanble yo konnen yo.
Sa a bagay nou te wè nan konferans.
Nou ka wè sa yo p-Tags ki tou gade bèl yo konnen yo,
men fòm nan tèt li, HTML a se sitou ki te pwodwi pa Ruby Kòd
ke ou te kole nan la.
>> Epi ou ka wè, aktyèlman poukisa pa nou fè sa.
Mwen panse ke nou ka fè sa.
Sa a pouvwa ap piti.
Yeah, sa a se pwobableman twò piti, men ki sa ou ka fè sou pwòp ou a,
se ou ka enspekte HTML a nan yon paj pa dwa-klike,
Lè sa a, klike Enspekte ak Eleman.
Epi ou ka wè aktyèl la HTML ke kòd Ruby nou an bati a.
Men, ou pral wè gen se yon fòm tag, gen yon tag mete etikèt sou,
gen nan yon pakèt moun sou, se yon tag jaden tèks, e konsa
ou pral wè nan rezilta yo nan HTML sa a ke nou kreye
lè l sèvi avèk Ruby, ki se kalite fre.
>> Tout dwa, epi, mwen kwè sa a, se li, pou jis fè yon nouvo atik
ak ki montre sou ekran an.
Nenpòt kesyon kounye a, anvan nou jwenn nan moso dènye nou an,
ki se fè fas ak baz done?
Se pa?
Oke, fre.
>> Ak jan ou te wè ankò, li aktyèlman reyèlman sèlman te pran yon etap koup.
Li te pran génération yon kontwolè, ajoute yon "Nouvo" ak "kreye" aksyon,
se konsa ke kontwolè a te kapab fas ak demann pou atik / nouvo
ak pou ke kontwolè a te kapab fè fas ak enfòmasyon
ki te vin nan apre soumèt nan done sa ki gen rapò ak atik nou yo.
Lè sa a, yo, ki fè fòm nan.
>> Se konsa, trè senp aktyèlman, menm si ankò, li sanble tankou yon anpil nan etap.
>> ODYANS 1: Èske ou deja kreye yon modèl pou atik?
>> Oratè: Se pa, se konsa, nou pa gen yon modèl ankò.
Dwa koulye a, tout sa nou genyen se sa a Ray konstwi, se yon resous,
ki reyèlman ka pran okenn fòm.
Se konsa, sa nou ap sou fè se fè yon modèl,
pou nou ka mete resous sa a, yon atik,
nan yon baz done ak yon estrikti mete.
>> Se konsa, fason nan ki kreye modèl travay nan ray,
kite m 'ale nan pwochen an, Se konsa, a-fè lis ki gen mv wè Pati 3 nan 3.
>> Se konsa, wout la ou kreye yon modèl nan ray se, ankò trè fasil,
li nan kalite yon bagay yon sèl-liy.
Ou di "ray jenere modèl," menm jan ak "ray jenere kontwolè."
Ou ba li yon non.
Nou pral rele li "Item."
Epi ankò, pa konvansyon, ou anjeneral kapitalize ak pa fè sa
pluralize non yo nan modèl.
Ou ka rele yo nenpòt lè ou vle, men jis pa konvansyon,
Se konsa, li fè kòd ou a plis lizib pa lòt moun,
jeneralman sa a se konvansyon an.
>> Apre sa, lè sa a, ou di li, fondamantalman, ki sa kolòn
ou vle nan baz done ou pou modèl sa a an patikilye.
Se konsa, nou ap di, nou vle yon kolòn Tit, e ke sa a
ale nan kenbe strings, ki, pa etonan, se menm jan ak fisèl la
kalite done ke ou te travay ak ki bibliyotèk CS50 aplike.
Se jis nan yon seri karaktè.
>> Epi nou ap ale nan gen yon kolòn nòt.
Se konsa, nou ap kalite atik ak Lè sa a, nòt sou atik sa yo.
Apre sa, sa se sèlman pral fè yon pakèt moun nan tèks, se konsa menm jan ak fisèl,
men jis ba ou plis espas.
>> Se konsa, ou ka panse osijè de sa a kòm mete kanpe estrikti a nan yon baz done.
Sa a pa gen aktyèlman te fè yon tab ankò.
Tout sa a se di, mwen se pral fè yon dosye sa a, se
ale nan fondamantalman pral kapab yo dwe te fè nan yon baz done
yon fwa ou kalite konfime ke tout bagay nan oke.
>> Se konsa, si ou kouri sa a, li fè yon dosye ak yon non vrèman long.
Li k ap pase yo dwe nan baz done a katab, nan dosye a migrasyon,
epi li k ap pase yo gen yon pakèt moun sou nimewo,
ak Lè sa a di sa a se create-- yon Typo, li ta dwe items--
men, li pral fè yon gade yon bagay tankou sa a.
Sa a se fòma a ke li pral sanble.
Se konsa, li yon pakèt moun sou nimewo, ak Lè sa a kreye, ak Lè sa a
tou sa Non modèl ou se.
>> Men, si nou ale nan ki ranpli, li pa pral dwe nan yon sèl sa a, li pral nan mv yon sèl.
Si nou ale ak sa yo ki dosye, emigre, nou ka wè
ki sa a ranpli kounye a mete kanpe yo kreye yon tab ak yon kolòn fisèl rele
"title" ak yon tèks kolòn ki rele "nòt."
Se konsa, nou ap tout mete kanpe fè baz done nou an.
Nou pa gen ankò, men nou ap mete kanpe fè li.
Lè sa a,, nan lòd yo fè l ', Chans pou, sa a se tout mete kanpe pou ou sou id yo,
men fondamantalman, ray pa default sèvi ak yon baz done sklit rele.
Anpil fwa, lè ou pouse pwodiksyon mòd ou pral
vle chanje nan baz done diferan, men pou dedomajman pou la nan pwojè final sa a,
e franchman, pou ti entènèt apps an jeneral, sklit se amann.
>> Apre sa, li gen mo a nan SQL li, se konsa, pa etonan, li nan
kalite menm jan ak miskl nan baz done w ap itilize.
Li nan kalite yon vèsyon pi lejè nan li.
>> Yon lòt bote nan Ruby se ke ou pa fè sa aktyèlman
gen fè fas ak nenpòt ki SQL tou.
Ruby kontra ak tout moun ki.
Mwen panse ke ou te wè nan sa a pwen "INSERT tab nan"
epi ou gen yon pakèt moun nan tan SQL kòmande.
Ruby fè sa pou ou ki se dwòl.
Ou regrèt, pa Ruby.
Ray fè ke pou ou, ki se pè.
Se konsa, ou pa gen fè fas ak nenpòt SQL lè w ap fè fas ak Ruby.
>> Se konsa, nou gen sa a ranpli, ki nou pa bezwen edite,
paske nou deja mete l 'kanpe lè nou te di "ray jenere kontwolè"
epi nou te bay li kalite yo.
Epi, koulye a, nou ka kreye baz done sa a.
Apre sa, wout la ou fè sa, se pa kouri lòd "rato db la: emigre."
Apre sa, ki di, aktyèlman fè tablo sa a, ak kolòn sa yo,
sa a mete kanpe, pou m 'kapab kounye a Insert done nan.
Nan pwen sa a, ou te te fè tab ou, epi li
pare yo dwe kontexte nan nenpòt fason ou vle.
Se konsa, pa etonan, nou gen yon baz done,
men nou pa fè sa vrèman konnen ki sa fè ak li.
Ki kote ou panse ke nou ale?
Kilès nan mv nou an di nou sa nou ap ale nan fè ak enfòmasyon?
>> ODYANS 1: regulateur?
Oratè: regulateur, yeah.
Se konsa, nou ap ale nan ale tounen nan kontwolè nou an
yo nan lòd yo mete kanpe yon fason yo aktyèlman mete done nan baz done a,
epi pran done soti nan baz done a.
Epi nou pa gen fè yon kontwolè nouvo tan sa a,
paske sa a se tout toujou fè fas ak bagay nou an, dwa?
Nou ap mete atik ki nan, nou ap pran atik soti,
se konsa li a toujou nan kontwolè atik nou yo.
>> Apre sa, nou ka wè, se pou yo ale nan app, contrôleur, atik kontwolè.
>> Oke.
Gen yon anpil nan chanjman, men yo menm ki enpòtan yo,
nou gen yon "montre," kounye a jwenn aksè ki sa a modèl Item ke nou fè fè yo.
Se konsa, sonje, nou rele nou an modèl Item ak yon kapital I.
Lè sa a se fondamantalman pran swen nan SQL yo lòd, ki pou ou.
Sa a ap di ale nan baz done a, jwenn soti yon atik ki gen ID a espesifik
ki M 'ap chache.
>> Apre sa, li konnen ki ID w ap chèche pou nan chemen
nan pase done nan atravè nan "View" ki mwen pral montre w pita.
Epi, tou kounye a, nou "kreye" sanble yon ti kras diferan.
Nou se kounye a, ankò, fè fas ak yon lòd SQL.
Nou ap di: "Mete sa a nouvo atik nan baz done a. "
>> Epi, sa a se fondamantalman jis pou rezon sekirite.
Nou gen yon metòd prive ki jis kalite pran
swen nan fè si inséré ak pran bagay sa yo soti nan baz done a
se fè san danje.
Se konsa, ou pa vrèman gen konnen twòp sou sa,
men li la jis yon bagay sekirite.
>> Epi, nou ap ale pou konsève pou yon atik nan baz done a,
ak Lè sa a redireksyon nan paj an montre.
>> Se konsa, sa a se yon anpil yo pran nan.
Mwen panse ke mwen pral yo sispann isit la, ak pran yon poz, pale yon ti jan ti kras pi plis
sou, jeneralman, estrikti nan ki nou te wè, ak yon koup takeaways kle.
Epi, mwen panse ke ou pral jwenn, si w swiv
a enstriksyon yo sou paj la GitHub,
sa a te yon anpil nan enfòmasyon jete nan ou.
Li se yon tout nouvo fondasyon, men mwen panse ke li vrèman
klou desann nan yon koup etap kle.
>> Tankou mwen mansyone anvan, mete moute app wèb la se kat etap.
Nou te ale sou yo anvan, yo ap mete deyò bèl klèman
nan paj la te kòmanse resevwa.
Ak fondamantalman, nenpòt aksyon vle aplike
se kalite, max, twa oswa kat etap.
>> Ou toujou gen ajoute kèk atik nan kontwolè a
yo nan lòd yo di app a ki jan okipe yon seri sèten nan enfòmasyon ki
vin pase bay li, epi ou gen edite yon View yo nan lòd
di app entènèt ou ki sa fè ak enfòmasyon ki
ke li vin pase nan kontwolè a.
>> Lè sa a,, fè fas ak nan modèl, mwen panse, ankò, gen
yon koup nan sentaks kle bagay sa yo.
Fondamantalman,items yo se kalite de tankou yon varyab mondyal la.
Ou ka pase l 'nan ou wè, ki se trè fre.
Se konsa, si m 'ale nan opinyon mwen pou sa yo things--
"pou bagay sa yo," ki te trè specific-- si mwen ale nan gade m 'pou,
kite a di, "atik endèks," ou ka wè ke mwen kapab jwenn aksè nan sa a atik
varyab si mwen sèvi ak Ruby kòd.
Se konsa, sa ki te fè nan an kontwolè se, li di,
Mwen vle fè yon bagay varyab mondyal.
>> Ak sa ki mwen pral fè ak li, se sa a lòd SQL.
Mwen pral ale nan m ' tab, jwenn tout atik yo,
li mete yo tout nan sa a atik varyab.
Lè sa a, nan gade m 'yo, mwen pral itilize atik sa yo varyab, ki
jis gen yon lis gwo nan tout nan nan atik, ak sa a se an pou riban sentaks
nou te pale de pi bonè.
Pou chak nan yo, mwen pral ekri ak lèt ​​detache soti tit la, ak nòt yo sou yo.
Se konsa, sa a se super pratik.
Si ou pral avi, yon lòd SQL, de mo, olye pou yo, sepandan anpil, 15.
Epi, yon varyab mondyal, tout sa ou dwe fè se di,items.
>> Se konsa, sa a se yon fason reyèlman fasil nan pase enfòmasyon retounen ak lide
soti nan modèl, vi, ak kontwolè a.
Ou ap remake, tout twa nan tout sa yo, tout pati twa,
yo jwenn aksè nan sa yo trè senp twa liy yo.
Sa a ap di ale nan modèl la, oswa ale nan baz done a, jwenn soti done.
Sa a ap di, pase l 'nan gade nan.
>> Se konsa, mwen panse ke egzanp se aktyèlman yon fason trè bèl
a demontre poukisa ray se konsa fre.
Twa liy, nou te kapab jwenn aksè nan baz done nou an,
jwenn enfòmasyon nan kontwolè nou an, ak Lè sa a pase li tounen nan gade nan.
Epi ankò, ou pral wè yon tèm trè menm jan
pou tout moun nan rès la nan la metòd ou ta ka vle fè.
>> Ou pral wè nan kèk referans nan baz done a,
ak wout la nan pase l 'nan gade nan.
Epi, lè sa a opinyon yo yo se responsab pou manyen
ke done nan tou sa fason ou vle.
>> Se konsa, nan vèsyon final, ankò, Mwen te ajoute yon koup plis jaden yo
kontwolè sa a, ki pèmèt ou efase, ak pèmèt ou modifye.
Modifye an sanble trè menm jan ak kreye, paske li fè sans,
ou pral vle tou yo dwe mete done tounen nan baz done a,
tankou ou fè lè ou sove yon nouvo atik.
>> Debarase m de se yon ti kras diferan, paske tankou mwen
mansyone anvan, li pa gen paj lakay li yo ke ou vizite yo nan lòd
yo efase yon atik.
Sa ta dwe kalite anmèdan, si ou te gen pou yo ale nan atik / efase / ak lè sa a ou
yo dwe di li ki atik espesifik nan efase.
Se konsa, pwosedi a Delete se yon ti kras diferan,
men yo toujou sa a nan menm konvansyon jeneral.
>> Li pral gen kèk referans a baz done a, kote li ale,
nan lòd yo jwenn repons ki kòrèk la enfòmasyon ak efase li,
epi li pral gen kèk referans tounen nan gade nan,
se konsa ke gade nan konnen sa yo dwe fè.
>> Se konsa, sa a se Ruby sou ray.
Mwen ta pran yon gade nan nan GitHub, si w ap enterese.
Genyen yon anpil nan vrèman fre dokiman mete kanpe
itilizatè se reyèlman fasil nan ray, konpare ak prèske nenpòt lòt bagay.
Genyen yon GEM pou li rele "elabore" ki
pran swen de yon anpil nan pwoblèm otantifikasyon,
fè yon pakèt moun sou paj ak contrôleur nan background nan
ke ou jis gen yo mete kanpe lyen ki mennen nan, ak siy-an fonctionnalités siy-soti ou
se bèl anpil pran swen nan.
>> Li te gen karakteristik vizyalizasyon fre, li gen vrèman fre, fondamantalman tout bagay.
Se konsa, mwen ta trè rekòmande lè l sèvi avèk li.
Li nan super popilè jou sa yo, tou.
Yeah.
Si w gen nenpòt kesyon, santi lib yo voye yon imèl ba m ', oswa bwa alantou li,
Mwen pral dwe isit la.
Apre sa, di ou mèsi anpil pou vini yo.