>> Pou kòmanse pon sa ki ta ka eksperyans sèlman ou
ak pwogram entènèt, ki sa mwen te panse mwen ta fè se vòlè yon koup
nan egzanp ke ou ka wè nan 50
si ou pran l 'sot pase a ane oswa de oswa ka pa gen
si ou pran l 'kèk ane de sa
ki se etap ti bebe nan direksyon yon piridin konnen kòm mb,
Ki gen konpòtman egzanplè View kontwolè, ak sa sa vle di?
Sa a se nou pral wè ankò petèt se jis yon fason pou kòmanse
nan pwòp moute desen an nan kèk moso ki baze sou wèb nan lojisyèl,
oswa li ka bò kliyan ki baze kòm byen, men nou pwal sèvi ak li
nan yon kontèks PHP, pou nou ka kòmanse
fè pi konplèks pwojè ak sòt
nan separe diferan kalite Kòd ki nan aplikasyon an;
patikilyèman pou ke lè nou gen plizyè moun k ap travay
sou yon pwojè li a yon anpil pi fasil trase liy.
Se konsa, premye kite a pran yon gade nan yon fason optimal
nan mete ann aplikasyon yon bagay.
Sipoze mwen te vle fè yon super sou sit wèb kou senp pou 50
oswa nenpòt ki lòt klas, ak ki klas la gen bagay sa yo
tankou konferans ak yon progranm.
Mwen te kapab fè yon bagay tankou yon H1 tag nan tèt yo nan paj mwen an
ak yon lis unordered ak lis Li atik yo nan lòd
jis gen yon lis pus nan opsyon meni, se konsa super senp.
Se konsa, kouman ta ka nou fè sa?
Oke, kite m 'ale nan m' fenèt tèminal isit la,
ak avi ke mwen te gen yon Li m 'epi n ap mennen nan Kòd sa a
sou sit entènèt kou a nan nan yon ti jan,
ak avi ke mwen te gen endèks dot m - endèks dot php.
Se konsa, kite m 'ale pi devan epi louvri sa a, epi asire w ke ase li nan kalite
nan komik ke sa a menm yo rele php
paske tout mwen gen se yon kòmantè php
ak Lè sa a tout lòt bagay se jis anvan tout koreksyon Kòd html.
Men, ankò sa a se vèsyon zewo,
Se konsa, yon etap nan direksyon pou yon bagay ki pi enteresan,
Men, remake mwen te di kode CS50 kòm tit la, CS50 nan H1 a,
e kounye a, mwen gen nan konferans genyen lyen,
koulye a, mwen gen lyen ki progranm.
Tout dwa, se konsa ke pa fè sa sanble tout sa ki rezonab
jiskaske ou swiv yon lyen tankou konferans, epi ou reyalize
ke tout dwa li nan diferan kontni men li la kalite
nan menm bagay la; li nan yon tit nan paj la ak lis unordered.
Mwen klike sou semèn zewo soti nan ane pase a, epi li kalite
nan menm bagay la, yon H1 tag ak yon lis unordered
ak Lè sa a, finalman mwen klike sou sa a, epi mwen jwenn nan kèk fèy,
ki se glisad yo soti nan ki konferans an patikilye.
Se konsa, yon bagay di m ' Mwen se sou yo sumilye.
Si m 'louvri moute konferans dot avi php
ke li nan bèl anpil kopi ak kole nan dosye a anvan;
Mwen jis chanje tit la nan H1, ak sa ki sa yo lyen yo.
Vin pi mal ankò, lè m 'ale nan semèn zewo dot php,
li nan menm travay la keratin kopi
ak jis yon ti jan nan kontni tweaked.
Se konsa, siman gen nan yon opòtinite isit la yo amelyore,
ak siman sa a ta dwe gen yon règ bon nan gwo pous;
nenpòt lè ou santi ou tèt ou kopye
e kole yon bagay plis pase petèt yon fwa,
drapo wouj ta dwe èspere ke kòmanse ale la.
Men, ki jan n 'al jwenn sou amelyore sa a?
Oke, gen nan yon fason kèk, ak teknik yo ou ka sèvi ak
nan php te evolye sou tan, men kite a eseye yon sèl sa a.
Kite m 'ale nan Version yon sèl, Se konsa, iterasyon nan pwochen nan sa a,
ak kite m 'eseye netwaye li moute yon ti jan.
Dwa, youn nan php a mekanism ki pi senp lan
pou rezoud pwoblèm sa a se nan lekòl fin vye granmoun mande pou fonksyon,
ki bèl anpil fè yon kopi ak keratin de sa ki
nan kèk dosye dwa isit la, tankou c se byen file enkli ladan yo,
ak lòt lang gen konstwi trè sanblab.
Se konsa, li sanble yon ti kras etranj kounye a,
li nan definitivman pa yon ranpli kap paj entènèt,
Men, prezimableman sa ki nan andedan nan header dot php.
Tout moun nan bagay la lòt, dwat, tag nan html, tag nan tèt,
tag nan tit yo, tout bagay la sa ki te pi wo a sans nan prensipal
nan paj la, ki se joui jis lis la unordered,
ak nan footer a se pwobableman tankou tag nan kò fèmen,
tag html a fèmen a; trè entérésan
men se yon bagay repete.
Tout dwa, ak asire w ke ase lè m 'ale
nan header dot php li nan jis kalite fragman nan on òfelen
soti nan tèt la, epi si mwen ale nan footer dot php,
li nan òfelen nan fragman anba nan fon an,
ak mwen lè l sèvi avèk sa yo menm fragman nan lòt dosye mwen,
tankou konferans dot php.
Tout dwa, se konsa sa ki nan pi bon sou sa a ou ta di nou fè?
Yeah?
>> Senplisite.
>> Senplisite?
Mwen pa konnen sa a kalite sanble yon anpil scarier m 'koulye a, dwa?
>> Si m 'te vle chanje ou header, ou pa ta gen
mande chanje li nan nan tout anvan yo tankou dosye.
Ou jis chanje li nan header ou.
>> Egzakteman, se konsa petèt nan sans sa li a ki pi senp,
petèt mwen ta ankadreman li kòm li a jis li pi fasil mete li.
Li nan petèt yon ti kras pi pwòp
paske ou mete li nan jis yon sèl kote.
Se konsa, sa a, se bèl konvenkan; sa ki nan yon enkonvenyans
nan apwòch sa a oswa ki pwoblèm rete
ke nou pa te reyèlman te rezoud?
Yeah?
[Off Mic Comment]
Yeah, egzakteman, mwen vle di, mwen se toujou w kopye e kole;
li nan yon ti kras mwens, men mwen sèlman rale moute de nan dosye sa yo,
epi yo bèl anpil toujou gade idantik.
Te gen yon mande pou la tèt, yon mande pou nan pati anba a,
ak yon unordered lis nan mitan an
ki li menm te toujou struktural menm bagay la.
Anplis, avi sa a, si mwen aktyèlman wè egzanp sa a,
kite m 'ale nan Version Yon kounye a,
ak remake mwen te gen CS50 Lecture progranm.
Uh oh, CS50 Semèn zewo Semèn Yon sèl ak CS50 Mèkredi Vandredi,
Mwen te kalite koupe yon kwen.
Ki sa ki te - sa ki te sa yo tit deja?
[Off Mic Comment]
Yo te tankou konferans nan Semèn Zero, tankou li te gen pitye
nan sexier, epi li aktyèlman te gen kèk dinamik nan li,
ak sa a se kalite - Mwen jis kalite punting kounye a
ak jis an konsideran ke sit entènèt la antye se CS50
ak oke li ap travay, men li la sètènman pa kòm elegant
oswa kòm sòt de dwat voye kòm li te yon fwa,
men ki fè sans, paske si ou gade nan endèks dot php
ak konferans dot php ak semèn zewo dot php,
yo ap tout ki gen ladan dosye a menm,
Se konsa, ki jan nou ka amelyore sa a?
Ki sa ki nan iterasyon nan pwochen nan Kòd sa a pwobableman pral fè?
[Off Mic Comment]
Yeah, egzakteman, kidonk si - ak kite m 'rezime
ak nou esansyèlman vle Paramètres ki header
se konsa ke repons lan se wi gen nan toujou yon difisil kode tag H1, men bagay la
nan ant, louvri nan ak tag a fèmen,
se prezimableman dinamik, ak vini soti nan yon lòt bagay.
Petèt "jwenn nan fil" oswa nan bagay apre make la kesyon
nan URL la te yon kote lòt moun, kidonk kite a pran yon gade.
Se konsa, si m 'antre nan Version De,
kounye a remake ke mwen te te resevwa yon dosye adisyonèl,
li sanble moun k'ap ede dot php.
Mwen pa vrèman konnen ki kote yo kòmanse se konsa mwen pral kòmanse jis
nan endèks tankou tankou toujou, e kounye a, remake li nan yon ti kras diferan,
Se konsa, mwen te gen yon liy mande pou
nan tèt la ki mande moun k'ap ede dot php,
Men, mwen ka rele li tou sa mwen vle,
Men, koulye a remake liy twa gen yon apèl nan fonksyon
rann header, ki se enteresan sèlman nan byen lwen tèlman
kòm sa k ap pase nan aparamman, tit la koutim
pou paj sa a an patikilye.
Pandan se tan gen nan rann footer nan pati anba a,
ak Mwen pa bezwen nenpòt parametrizasyon gen jis li yo
yon footer, men kounye a gen sanble
yo dwe yon etap nan direksyon yon pi bon solisyon, rann header pran,
ak sa ki fè kare a parantèz endike pou moun ki
ki moun ki pa gen pou wè php tout tan tout tan oswa nan yon ti tan?
[Off Mic Comment]
Yeah, li nan yon etalaj.
Li nan yon etalaj asosyatif oswa yon hash ki asosye kle
ak valè; li a tankou Java Scripts, notasyon objeksyon,
oswa lòt lang yo, syntaxs menm jan an.
Tout dwa, se konsa sa ki nan moun k'ap ede dot php?
Nan moun k'ap ede dot php li nan jis yon koup la fonksyon,
rann header ak rann footer.
Se konsa, yon koup la detay si mwens yo konnen yo,
Se konsa, premye nan tout reyalite a
ki rann header pran yon agiman done sa a, se aparamman
plase vid la etalaj gen vle di ki sa?
Kisa sa vle di fè egal louvri bracket fèmen bracket
kòm yon paramèt nan php?
Li nan valè a default.
Se konsa, si mwen pa pase nan etalaj oswa nenpòt ki diskisyon sa
header a rann oswa rann fonksyon footer, nan
Mwen kapab omwen mete konfyans nou kòm la otè a moun ki fonksyon
ke done yo pral minim gen yon etalaj vid;
li pa pral endefini oswa fo, oswa yon bagay tankou sa,
li pral ekzakteman ki sa Mwen te bay li kòm yon defo.
Koulye a, sa a se yon ti jan nan yon sòt de yon fason hackish nan senbòl loading
nan espas non ou se konsa pale,
men li ap travay trè byen nan direksyon sa a nan fen
nan mete ann aplikasyon sòt pwòp nou nan gabari motè pòv nonm lan.
Tout dwa, gen nan yon anpil nan zouti yo deyò pou Piton Ruby
ak php ki ba ou kapasite gabari
e ke sa a ekzakteman ki sa nou vle.
Nou vle yon modèl ki gen yon H1 tag louvri, yon H1 fèmen tag,
ak sòt de yon kote ki detantè nan mitan an,
e nou vle ranpli sa yo kote moun ki gen pa fason pou fonksyon sa a,
Se konsa, fonksyon sa a ekstrè jis konsa k ap pase
l 'ban nou sa ki annapre yo kapasite.
Si ou te gen yon asosyatif nan etalaj ak valè kle pè
tankou foo egal ba, ekstrè yo ap kreye yon varyab lokal
rele efektivman dola siy foo ak ba li yon valè de ba
se konsa li te eksploze asosyatif ou etalaj soti nan valè kle pè
nan nouvo varyab ak valè yo ki koresponn.
Lè sa a, mande pou dot header dot php se menm bagay la tankou anvan,
Se konsa, sa yo nou pwobableman pral yo wè andedan nan header dot php?
Li pwobableman te resevwa ke tag H1 ak tag a fèmen; sa k ap pase
yo dwe andedan nan li pwobableman nan ant li?
[Off Mic Comment]
Egzakteman, gen nan pwobableman kèk mansyone nan dola tit siy
ak asire w ke ase si mwen rale nan sou sa a gen nan tag tit mwen an,
gen nan tag H1 m 'yo, ak andedan nan li se yon ensèsyon dinamik
nan tit siy dola, men jis pou yon bon mezi,
M ap fè html sa a espesyal chaje atrociously yo te rele
fonksyon, men li la itil; ki sa li fè
oswa ki sa li pwoteje tèt ou kont?
Sa a se aktyèlman yon solisyon nan yon menas w ap Sa anpeche;
ou ta yo te mennen nou nan.
[Off Mic Comment]
Egzakteman, kidonk si yon move itilizatè oswa yon viktim mefyan
nan yon atak èskrokri klike sou yon lyen
ke nan pwòp tèt ou te gen yon pwen entèwogasyon ak yon bagay tankou foo egal,
ak Lè sa a, valè a nan foo te aktyèlman
tankou louvri bracket script, fèmen bracket,
ak Lè sa a, kèk kòd JavaScript;
si ou pa t 'rele sa fonksyon prensipal long,
ou ta aktyèlman ap enfekte html anvan tout koreksyon nan paj entènèt ou an,
rezilta a nan ki se ke ou ta ka twonpe.
Ou ka tricking itilizatè a nan egzekite JavaScript Kòd
ke li te fè pa aktyèlman gen entansyon.
Apre sa, menm si anjeneral w ap sèlman blese tèt ou,
tankou sèlman ou konnen yon moun sòt ki pral tape
nan ouvè script bracket, fèmen bracket, epi w'a di alèt
oswa yon bagay tankou sa ak fè l 'oswa tèt li
nan ak kèk rezilta etranj, si ou jwenn twonpe
nan klike yon lyen ki gen JavaScript anvan tout koreksyon entegre nan li
kòm valè a nan ki atribi,
ou kapab pami lòt bagay vòlè bonbon yon moun nan
paske gen yon pwopriyete rele dokiman dot bonbon
nan JavaScript ki pèmèt ou gen tan pwan bonbon sesyon yon itilizatè a,
epi si ou sonje ki sa yon sesyon atak eskanmòte se,
lontan istwa kout, ki nan yon sèl fason pou aktyèlman tricking yon moun
nan ban nou ki vityèl koupon pou achte men ak Lè sa a, w ap pran
sou kont Facebook yo oswa kèk lòt kalite kont.
Tout dwa, kidonk sa a se yon ti kras tan,
men li jis lè l sèvi avèk anvan tout koreksyon Kòd html.
Sa a se ekivalan a pou rezidan yo rele eko
oswa ekri ak lèt ​​detache byen, ak nou ap esansyèlman yo mete
ki dynamique.
Se konsa, sa plis rete isit la?
Oke, kite m 'ale nan Version Twa isit la,
epi n ap wè yon yon ti jan diferan -
menm egzak Layout dosye men avi
tan sa a sa a nou ap ale nan jeneralizasyon header la ak footer
kòm modèl, Se konsa, sa Mwen vle di pa sa?
Ki sa ki nan bagay la yon sèl sa a, se diferan isit la?
Kisa ki chanje depi dènye vèsyon an?
Sibtil, men li la joui jis yon konsepsyon pi bon cleaner.
Yeah?
[Off Mic Comment]
Yeah, gen nan jis yon sèl estanda rann fonksyon m;
Mwen pa t 'ka espesyal rann header oswa pran footer,
tou de kote si ou sonje soti nan moun k'ap ede dot php,
nou ap bèl anpil ki idantik eksepte pou non yo
ak modèl yo enkli ladan li.
Poukisa nou pa jis paramètres fonksyon an rann
epi pran yon sèl agiman, ki nan non an nan modèl la,
ak yon dezyèm agiman si ou vle ki valè kle pè yo
ke ou vle ploge pous
Se konsa, si mwen kounye a gade nan moun k'ap ede dot avi php
ke mwen te yon ti kras amateur kounye a.
Mwen aktyèlman tcheke fè a dosye ki egziste e si se konsa ale pi devan
epi mande pou li; jis nan ka itilizatè a aksidantèlman kalite
nan kèk Non modèl fos ou pa vle voye jete yon erè
nan pwogram nan pou nou kapab minim fè yo sa a
favorize isit la.
Tout dwa, men nou ka pran sa a yon etap pi lwen?
Nan vèsyon sa a isit la remake sa ki annapre yo.
Mwen te jis tape ls, ak sa imedyatman sote
soti se yon ti jan diferan.
Se konsa, gen nan de repèrtwar, dwat,
yo ak pou sa a se kounye a yon etap nan direksyon ki sa ki pral evantyèlman gen yon plis
bon fondasyon.
Sa a se kalite débordan nan men m 'yo dwe voye tout
nan kontni m 'andedan nan yon anyè piblikman aksesib
ki literalman yo rele piblik la.
Apre sa, menm si malerezman, yon anpil nan cadres,
ki pi gran yo menm sitou, e menm kèk posts entènèt,
Rèv Akèy nan mitan yo, fòs ou mete tout nan dosye ou
nan ekivalan a nan yon anyè piblik menm
si dosye ou ta ka gen ladan modpas baz done
ak non itilizatè oswa lòt kalifikasyon sa yo,
sa a, se pa nan tout bon konsepsyon.
Pi bon se sèlman mete
nan anyè a piblik sa absoliman gen
yo dwe itilizatè aksesib, ak tout lòt bagay
ke w ap ki gen ladan tankou moun k'ap ede dot php,
gen nan pa gen rezon ki fè ke yo ta dwe sit entènèt aksesib atravè yon
navigatè ak yon url.
Li ta ka dwe konplètman inofansif si itilizatè a vle wè petèt
ki moun ki pè, men li jis prensip la nan li,
ak Bondye padon li aktyèlman fè gen yon non itilizatè oswa modpas;
ou pa vle a itilizatè aksidantèlman
oubyen entansyonèlman ke yo te kapab jwenn aksè nan li.
Se konsa, nou pa ap byen nan yon pafè apwòch isit la,
Men, remake sa ki annapre yo kounye a.
Nan endèks dot php, remake ke Mwen toujou mande moun k'ap ede,
men m ap fè l 'nan yon fason ke mwen sòt de òganize tout
nan dosye yo ke pral enkli
nan yon repèrtwar rele konvansyonèl gen ladan,
ak Lè sa a, mwen rele rann pou header ak Footer tankou anvan.
Se konsa, bagay la sèlman Mwen te fè se sòt
nan reòganize repèrtwar mwen yo dwe yon ti kras pi plis nan dèyè
sou estrikti a dosye.
Men, si nou kounye a ale nan sa a senkyèm egzanp,
remake isit la ke nou kounye a gen yon Trio nan dosye,
ak sa a se yon ti jan bay manti nan moman sa a
paske pou senplisite pou dedomajman pou la nan klas,
Mwen te jis jete tout bagay
nan Jan Harvard la Anyè Montre granmoun ki jis
pou nou ka navige li via yon navigatè, men avi -
inyore pati sa a pou jis yon moman,
lefèt ke mwen se nan la.
Remake mwen gen twa subdirectories: piblik,
modèl, e li gen ladan.
Lide a kounye a se ke nan yon byen configuré sèvè wèb mwen
ta di Apache ke sa a sit entènèt gen piblikman aksesib
depoze isit la, ak okenn kote lòt bagay.
Se konsa, sa dosye ou panse Mwen pral wè andedan
nan piblik si mwen tape ls?
Ki sa ki nan omwen youn nan dosye sa a, se pwobableman nan genyen?
[Off Mic Comment]
Oke endèks dot php, ak sa dosye se evidamman pa
nan gen nan mitan lòt moun?
Menm jan ak moun k'ap ede dot php, header dot php, footer dot php;
tout moso yo, tout fonksyonalite a
ki pa reyèlman bezwen yo dwe piblikman aksesib,
li bezwen yo dwe ka itilize pa dosye yo
ki piblikman aksesib, Men, yo menm,
pa gen okenn itilizatè bezwen wè oswa egzije yon URL pou moun k'ap ede dot php.
Remake olye pou lè m 'ale
nan gen ladan gen nan moun k'ap ede dot php,
epi si m 'antre nan modèl,
gen nan footer ak header dot php.
Franchman, mwen te kapab ou te mete yo nan anyè a menm,
men mwen ap eseye yo dwe menm plis nan dèyè sou kenbe dosye
ki se jis sòt de modèl estatik diferan
soti nan dosye fonksyonèl tankou moun k'ap ede dot php,
ak mwen jis konfòme yo avèk kèk konvansyon san patipri komen
rele repèrtwar yo gen ladan yo ak modèl.
Se konsa, bagay la sèlman ki chanje Lè sa a, se ankò chemen an.
Si nou moute isit la remake ke mwen kounye a jis gen
genyen ladan yo yon anyè fanmi,
dot dot koupe gen ladan moun k'ap ede dot php,
oswa mwen ka gen yon ti kras pi plis apwopriye ak aktyèlman fè yon bagay
tankou sa a, php ak yon anpil
nan lang gen senbòl espesyal sa yo
ki reprezante nan anyè dosye aktyèl la,
Se konsa, souliye souliye dir souliye souliye reprezante
tou sa anyè se sa a ranpli,
ak Se konsa, si ou jis anchene ak operatè a dot, sa a,
ki ta reyalize rezilta a menm,
ak gen tandans ka yon ti kras plis gaya paske ou ka jwenn
nan sitiyasyon ki gen manm fanmi repèrtwar yo te jis di dot
oswa dot dot ka aktyèlman mennen nou tounen nan plas la sa ki mal,
kidonk sa a gen tandans ka yon ti kras plis gaya.
Tout dwa, Se konsa, sa menm si rete?
Ki sa ki fè ou toujou pa renmen sou sa a?
Ki sa ki ta dwe amelyore epi ou kòmante sou li pi bonè Mwen panse ke
ki di ke gen la toujou kèk pwoblèm?
[Off Mic Comment]
Dwa, koulye nou pa jwenn okenn yo kòmanse ekri tankou sit
ki sanble sa a, dwa?
Sa a pa santi tout sa ki pi bon,
gen nan toujou kopi keratin.
Mwen toujou gen nan mande pou liy nan tèt la.
Mwen toujou gen rann header rann footer.
Genyen yon anpil nan repetisyon.
Yeah?
[Off Mic Comment]
Yeah, egzakteman, se konsa nou te pran yon etap nan direksyon pou sòt de divize
moute "c a" ki soti nan "v la," se konsa Mv se ki gen konpòtman egzanplè View Kontwolè;
kontwolè se sòt de la sèvo ki nan aplikasyon an.
Ki gen konpòtman egzanplè gen tandans ka done yo oswa kèk fonctionnalités pataje,
ak wè gen tandans ka a estetik, modèl la,
se konsa nou te pran yon etap nan direksyon pou separe "c a" ki soti nan "v la"
paske nou kounye a nan pi piti gen anyè modèl sa a,
men menm gen nou esansyèlman gen yon sèl kontwolè pou chak dosye.
Li pa sanble gen nan anpil lojik ale sou isit la,
men endèks dot php se efektivman yon kontwolè.
Lè w ap vizite yon URL ak mete fen nan endèks dot php,
tout lojik sa a ki aplike ke paj ki dwat
nan endèks dot php, ak menm pou konferans dot php.
Menm bagay la tou pou semèn zewo dot php.
Se konsa, nou te kalite strone nou lojik sou tout plas la,
epi li santi l tankou sa a pa pral
selon echèl la trè byen yon fwa nou pa gen kat men karant paj
si chak paj kòmanse ak m 'kopye yon vèsyon ki pi gran
nan dosye a ak jis tweaking kèk
nan kontni an andedan nan li.
Se konsa, nou te sèlman pran yon etap nan direksyon sa a,
ak youn nan zouti yo nou pral prezante
nan Mèkredi se yon framer yo rele "Laravel"
ak sa a se yon bagay ki fondasyon php popilè yo,
lòt moun gen ladan "Fuelphp."
Genyen yon yon sèl ki pi gran yo rele "Codeigniter."
Genyen yon rele "gato."
Genyen yon rele "Symphony."
Mwen vle di si ou Google cadres php,
gen nan yon atròs kantite tankou estrikti
ki moun ki aplike.
Laravel se youn nan la plis leve, li kwen;
li nan youn nan cleaner a yo menm, epi ou ap jwenn
ki finalman li te ede sove ou byen yon ti jan
nan tan menm si gen yon ti jan nan yon koub aprann,
men ke nou ap gide ou chèf pou gouvènen nan Mèkredi.
Anplis, nou pral prezante sa ki rele yon "ORM."
Nan ka sa a, nou pral sèvi ak yon bagay ki vini
ak kad sa a rele Laravel.
Yo rele li "pale fasil" ak sa a se jis yon kouch nan kòd
ki pèmèt ou nan mitan lòt bagay sa yo pale ak baz done.
Ak isit la tou, kite m 'vòlè yon egzanp ki se swa dènye
oswa yon throwback pou kèk nan nou ki soti nan 50.
Si ou t 'pran 50, ak ou te fè "CS50 Finans,"
ou ta ka sonje dosye ki ou ekri oswa reekri ki gade
tankou sa a, sa a te login dot php, ak nan moman an,
espesyalman depi nou pa t 'pase anpil tan
sou fondamantal php bonè nan,
sa a ta ka tèt li gen te san patipri difisil,
yo ak pou nou te fè sa, an reyalite, eseye senplifye konsepsyon an.
Nou pa t 'reyèlman separe «M» ki soti nan "V" ki soti nan "C" tout sa ki pi
pou pwoblèm ki "Pandan sèt CS50 Finans,"
Men, remake bagay nan yon sèl ki ta dwe èspere ke kòmanse
byento fwote ou mal nan fason sa a, se yon bagay tankou sa a.
Mwen vle di, se pa sèlman sa a te ouvri sesyon an dot php yon kontwolè.
Li te tou pale dirèkteman
nan yon baz done espesyalman lè l sèvi avèk fen, ki se pa pral
selon echèl la trè byen lè ou kòmanse travay ak yon sèl
oswa de oswa twa patnè.
Pou egzanp, si youn nan patnè yo ki responsab
pou kreye ou tab baz done ak ap vini
moute ak endis ou ak lè n ap kalkile
konnen ki sa ki kle nan yo ta dwe, nan kle prensipal, kle yo etranje yo,
ak tout de sa, n ap deside sou non yo tab ak nan tout sa.
Koulye a, ou lòt moun nan nan gwoup la bezwen konnen tout
nan desizyon yo konsepsyon li oswa li te fè, epi ou koulye a bezwen
nan kòd difisil desizyon sila yo nan dosye ou, se konsa koulye a, li
oswa li te se trè anpil contrainte
pa janm ankò chanje non tab sa yo.
Pa janm ankò nan chanje sa yo non depoze
san yo pa enfòme ou.
Anplis, ou pa ka vrèman fasil travay sou dosye a menm
san yo pa fè kolizyon youn ak lòt si li
oswa li se toujou ap chanje non,
epi ou gen fin vye granmoun lan vèsyon ak pou fè,
Se konsa, sa a se jis envite anpil ak anpil tèt fè mal.
Anplis, kòm nou pral wè anvan lontan,
menm si ou pa t 'bezwen
fè patikilyèman demann sofistike isit la,
yon fwa ou kòmanse gen plizyè tab, de ròch plat, twa, senk,
dis tab nan yon miskl oswa jeneralman yon baz done relasyon,
ou gen yo rantre nan sa yo tab souvan si yo konnen yo, epi ou gen
nan konbine done ki sòti nan yon sèl ak lòt la,
ak franchman demann fen ou kòmanse ap vini pi long, ak pi long,
ak ankò, ak plis ankò konplèks, epi li jis kòmanse
yo ka resevwa yon anpil pi fasil fè erè
ak yon anpil pi rèd jwenn bagay ki dwat.
Se konsa, zouti tankou Pale fasil ak ORM ki pral
ede nou modle done nou an ak li nan tou efektivman pral
jenere kòd la ke nou bezwen kòmanse rekèt baz done
nan fason pi plis sofistike.
Se konsa, si ou te gen yon kle prensipal sou isit la ak yon kle etranje
sou isit la, tout sa ou bezwen fè se anseye ke ORM,
Objeksyon Relasyon mapeur, ki sa sa relasyon se
epi li pral konnen sa ki demann al touye pou ou.
Epi sèlman nan ra ka ou bezwen
nesesèman ekri Kòd fen tèt ou.
Si ou reyèlman vle amann melodi yon bagay,
men pou pati ki pi, ou ka jis kòmanse trete antite
nan baz done ou tankou ou vre objè epi yo pa ranje sa yo plat
ke ou yon jan kanmenm bezwen rekonstwi ak de nòmalize.