Le database iyavutha...

Le database iyavutha...

Makhe ndibalise ibali lobugcisa.

Kwiminyaka emininzi eyadlulayo, bendisenza isicelo esineempawu zentsebenziswano ezakhelwe kuyo. Yayisisitaki sovavanyo esisebenzisekayo esithathe ithuba lokukwazi ngokupheleleyo kweReact kunye neCouchDB. Yangqamanisa idatha ngexesha langempela nge-JSON OT. Yayisetyenziswe ngaphakathi kwinkampani, kodwa ukusetyenziswa kwayo ngokubanzi kunye nokubanakho kwezinye iindawo kwakucacile.

Ngelixa sizama ukuthengisa obu buchwepheshe kubathengi abanokubakho, siye sadibana nomqobo ebesingalindelekanga. Kwividiyo yedemo, itekhnoloji yethu ijonge kwaye yasebenza kakuhle, akukho ngxaki apho. Ividiyo ibonise ngokuthe ngqo indlela esebenza ngayo kwaye ayizange ixelise nantoni na. Siye saza saza sabhala ikhowudi yemeko eyinyani yokusebenzisa inkqubo.

Le database iyavutha...
Enyanisweni, oku kwaba yingxaki. Idemo yethu isebenze kanye ngendlela wonke umntu alinganise ngayo izicelo zabo. Ngokukodwa, ulwazi lwathunyelwa ngokukhawuleza ukusuka ku-A ukuya ku-B, nokuba ziifayile ezinkulu zeendaba. Emva kokungena, umsebenzisi ngamnye ubone amangeniso amatsha. Ukusebenzisa isicelo, abasebenzisi abohlukeneyo banokusebenzisana ngokucacileyo kwiiprojekthi ezifanayo, nokuba unxibelelwano lwe-Intanethi luphazamisekile kwindawo ethile elalini. Oku kuthethwa ngokungafihlisiyo kuyo nayiphi na ividiyo yemveliso esikiweyo emva kweziphumo.

Nangona wonke umntu wayesazi ukuba iqhosha lokuhlaziya lenzelwe ntoni, akukho mntu wayeqonda ngokwenene ukuba izicelo zewebhu abasicela ukuba sizakhe zazihlala zixhomekeke kwimida yazo. Kwaye ukuba azisafuneki, amava omsebenzisi aya kwahluka ngokupheleleyo. Baye baqaphela kakhulu ukuba bayakwazi "ukuncokola" ngokushiya amanqaku kubantu abathetha nabo, ngoko bazibuza ukuba yahluke njani le, umzekelo, uSlack. Phew!

Uyilo longqamaniso lwemihla ngemihla

Ukuba unamava kuphuhliso lwesoftware, kufuneka kube yimithambo-luvo ukukhumbula ukuba uninzi lwabantu alukwazi ukujonga nje umfanekiso wojongano kwaye baqonde ukuba luya kwenza ntoni xa lunxibelelana nalo. Singasathethi ke ngokwenzekayo ngaphakathi kwenkqubo ngokwayo. Yazi loo nto kungaba Ukwenzeka ubukhulu becala kusisiphumo sokwazi into engenzekiyo nengafanele yenzeke. Oku kufuna imodeli yengqondo ayisiyiyo kuphela into eyenziwa yisoftware, kodwa nendlela amalungu ayo alungelelaniswa ngayo kunye nokunxibelelana omnye komnye.

Umzekelo oqhelekileyo woku ngumsebenzisi ojonge a spinner.gif, ezibuza ukuba uya kugqitywa nini na umsebenzi. Umphuhlisi ebeya kuqonda ukuba inkqubo ibibambekile kwaye i-gif ayisoze yanyamalala kwiscreen. Lo mfanekiso ulinganisa ukwenziwa komsebenzi, kodwa awunxulumananga nemeko yawo. Kwiimeko ezinjalo, ezinye ii-techies ziyathanda ukukhupha amehlo, zimangaliswe kubungakanani bokudideka kwabasebenzisi. Noko ke, phawula ukuba bangaphi abalatha kwiwotshi ejikelezayo baze bathi ngenene imile?

Le database iyavutha...
Lo ngundoqo wexabiso lexesha lokwenyani. Kwezi ntsuku, oovimba beenkcukacha bexesha lokwenyani zisasetyenziswa kancinci kwaye abantu abaninzi bazijonga ngokukrokra. Uninzi lwezi nkcukacha zolwazi zithembele kakhulu kwisitayile se-NoSQL, yiyo loo nto behlala besebenzisa izisombululo eziseMongo, ezilibalekayo. Nangona kunjalo, kum oku kuthetha ukukhululeka ukusebenza kunye ne-CouchDB, kunye nokufunda ukuyila izakhiwo ezingaphezulu nje kwe-bureaucrat ethile iya kukwazi ukuzalisa ngedatha. Ndicinga ukuba ixesha lam ndilisebenzisa ngcono.

Kodwa esona sihloko sale post yile ndiyisebenzisayo namhlanje. Akunjalo ngokuthanda, kodwa ngenxa yemigaqo-nkqubo yoshishino ngokungenamdla nangokumfameka. Ke ndiza kubonelela ngokuFanelekileyo ngokugqibeleleyo kunye nothelekiso olungakhethi cala lweemveliso ezimbini ezisondeleleneyo zexesha lokwenyani likaGoogle.

Le database iyavutha...
Bobabini banegama elithi uMlilo emagameni abo. Inye into endiyikhumbula kakuhle. Into yesibini kum luhlobo olwahlukileyo lomlilo. Andingxamanga ukubiza amagama abo, kuba xa ndithe ndawabiza, siza kujongana nengxaki yokuqala enkulu: amagama.

Eyokuqala ibizwa I-Firebase yeXesha lokwenyani Database, kunye neyesibini - Firebase Cloud Firestore. Zombini iimveliso ezivela I-Firebase suite Uphando. Ii-APIs zabo zibizwa ngokulandelelana firebase.database(…) ΠΈ firebase.firestore(…).

Oku kwenzeka ngenxa Ugcino-lwazi lwexesha lokwenyani - yinto nje yokuqala Firebase phambi kokuthengwa kwayo nguGoogle ngo-2014. Emva koko uGoogle wagqiba ekubeni enze njengemveliso efanayo ikopi UFirebase usekwe kwinkampani enkulu yedatha, kwaye wayibiza ngokuba yiFirestore ngelifu. Ndiyathemba ukuba awukabhideki. Ukuba usadidekile, ungakhathazeki, ndibhale kwakhona le nxalenye yenqaku izihlandlo ezilishumi.

Ngenxa yokuba kufuneka ubonise Firebase kumbuzo weFirebase, kwaye Firestore kumbuzo malunga ne-Firebase, ubuncinci ukwenza ukuba uqonde kwiminyaka embalwa edlulileyo kwi-Stack Overflow.

Ukuba bekukho ibhaso lolona lwazi lubi lwesoftware yokubiza amagama, ngokuqinisekileyo oku kuya kuba ngomnye wabakhuphisanayo. Umgama weHaming phakathi kwala magama mncinane kangangokuba ubhida neenjineli ezinamava ezineminwe echwetheza igama elinye ngelixa iintloko zabo zicinga ngelinye. Ezi zizicwangciso ezineenjongo ezintle ezisilela ngokulusizi; bazalisekisa isiprofeto sokuba i-database iya kutsha. Kwaye andidlali tu. Umntu oze neli qhinga lamagama ubangele igazi, ukubila neenyembezi.

Le database iyavutha...

Uloyiso lwePyrrhic

Omnye unokucinga ukuba iFirestore ukumisela I-Firebase, isizukulwana sayo esilandelayo, kodwa oko kuya kulahlekisa. IFirestore ayiqinisekiswanga ukuba iyindawo efanelekileyo yeFirebase. Kubonakala ngathi umntu unqumle yonke into enomdla kuyo, kwaye ubhideke uninzi lwezinye ngeendlela ezahlukeneyo.

Nangona kunjalo, ukujonga ngokukhawuleza kwezi mveliso zimbini kunokukubhidanisa: zibonakala zenza into efanayo, ngokusisiseko ii-APIs ezifanayo kunye nakwiseshini yedatha efanayo. Iiyantlukwano zinobuqili kwaye zityhilwa kuphela ngokuthelekisa ngononophelo kumaxwebhu abanzi. Okanye xa uzama ukufaka ikhowudi esebenza ngokugqibeleleyo kwiFirebase ukuze isebenze neFirestore. Nalapho ufumanisa ukuba ujongano lwedatabase lukhanyisa kamsinya nje xa uzama ukutsala kunye nokulahla ngemouse ngexesha lokwenyani. Ndiyaphinda, andidlali.

Umxhasi weFirebase unembeko ngengqiqo yokuba ukhusela utshintsho kwaye ngokuzenzekelayo uzama uhlaziyo olunika kuqala umsebenzi wokugqibela wokubhala. Nangona kunjalo, i-Firestore inomda wokusebenza kokubhala kwe-1 ngomsebenzisi ngamnye ngomzuzwana, kwaye lo mda unyanzeliswa ngumncedisi. Xa usebenza nayo, kukuwe ukufumana indlela yokuyijikeleza kwaye uphumeze isithinteli sohlaziyo, nokuba uzama nje ukwakha isicelo sakho. Oko kukuthi, i-Firestore yidatabase yexesha lokwenyani ngaphandle komxhasi wexesha lokwenyani, ozenza umntu osebenzisa i-API.

Apha siqala ukubona iimpawu zokuqala ze-Firestore's raison d'Γͺtre. Ndisenokuba andilunganga, kodwa ndiyakrokrela ukuba umntu othile ophezulu kulawulo lukaGoogle wajonga iFirebase emva kokuthenga wathi, β€œHayi, owu Thixo wam, hayi. Oku akwamkelekanga. Hayi nje phantsi kobunkokeli bam. "

Le database iyavutha...
Wavela egumbini lakhe waza wathi:

β€œOlunye uxwebhu olukhulu lweJSON? Hayi. Uya kwahlula idatha ibe ngamaxwebhu ahlukeneyo, ngalinye lingayi kuba ngaphezu kwe-megabyte enye ngobukhulu.

Kubonakala ngathi uthintelo olunjalo aluyi kusinda kukudibana kokuqala kunye naso nasiphi na isiseko sabasebenzisi esikhuthazwa ngokwaneleyo. Uyazi ukuba kunjalo. Emsebenzini, umzekelo, sineenkcazo-ntetho ezingaphezu kwewaka elinesiqingatha, kwaye le yinto eqhelekileyo.

Ngalo mda, uya kunyanzeliswa ukuba wamkele into yokuba "uxwebhu" olunye olukwisiseko sedatha aluyi kufana nayo nayiphi na into umsebenzisi anokuyibiza ngokuba luxwebhu.

"Uluhlu lwee-arrays ezinokuphinda ziqulathe ezinye izinto? Hayi. I-Arrays iya kuqulatha kuphela izinto ezinobude obusisigxina okanye amanani, njengoko uThixo wayenenjongo.

Ke ukuba ubunethemba lokubeka iGeoJSON kwiFirestore yakho, uya kufumanisa ukuba oku akunakwenzeka. Akukho nto i-non-dimensional eyodwa eyamkelekileyo. Ndiyathemba ukuba uyayithanda i-Base64 kunye / okanye i-JSON ngaphakathi kwe-JSON.

"I-JSON yokungenisa kunye nokuthumela ngaphandle nge-HTTP, izixhobo zomgca womyalelo okanye ipaneli yokulawula? Hayi. Uya kukwazi kuphela ukuthumela ngaphandle kwaye ungenise idatha kwi-Google Cloud Storage. Yiloo nto ebizwa ngoku, ndiyacinga. Kwaye xa ndisithi "wena," ndithetha kuphela nabo baneziqinisekiso zabanini beProjekthi. Wonke umntu unokuya enze amatikiti. "

Njengoko ubona, imodeli yedatha ye-FireBase kulula ukuyichaza. Iqulethe uxwebhu olukhulu lwe-JSON olunxulumanisa izitshixo ze-JSON kunye neendlela ze-URL. Ukuba ubhala nge HTTP PUT Π² / I-FireBase yile ilandelayo:

{
  "hello": "world"
}

Oko GET /hello uya kubuya "world". Ngokwenene isebenza kanye njengoko unokulindela. Ukuqokelelwa kwezinto zeFireBase /my-collection/:id ilingana nesichazi-magama se-JSON {"my-collection": {...}} kwingcambu, imixholo ekhoyo kwi /my-collection:

{
  "id1": {...object},
  "id2": {...object},
  "id3": {...object},
  // ...
}

Oku kusebenza kakuhle ukuba ufakelo ngalunye lune-ID engangqubaniyo, leyo inkqubo inesisombululo esisemgangathweni.

Ngamanye amazwi, i-database yi-100% JSON (*) iyahambelana kwaye isebenza kakuhle nge-HTTP, njenge-CouchDB. Kodwa ngokusisiseko uyisebenzisa nge-API yexesha lokwenyani ekhupha ii-websockets, ugunyaziso, kunye nobhaliso. Iphaneli yolawulo inazo zombini izinto, ivumela ukuhlelwa kwexesha lokwenyani kunye nokungenisa/ukuthumela ngaphandle kweJSON. Ukuba wenza okufanayo kwikhowudi yakho, uya kumangaliswa ukuba ingakanani ikhowudi ekhethekileyo eya kuchithwa xa ufumanisa ukuba i-patch kunye ne-diff JSON isombulula i-90% yemisebenzi yesiqhelo yokuphatha imeko eqhubekayo.

Imodeli yedatha yeFirestore iyafana ne-JSON, kodwa iyahluka ngeendlela ezithile ezibalulekileyo. Sele ndikhankanyile ukunqongophala koluhlu ngaphakathi koluhlu. Imodeli yeengqokelela ezingaphantsi zezokuba zibe ziingqikelelo zodidi lokuqala, zahlulwe kuxwebhu lwe-JSON oluqulathe zona. Ngenxa yokuba akukho luhlu oluphuma ngaphandle kwebhokisi kule nto, indlela ekhethekileyo yekhowudi iyafuneka ukubuyisela nokubhala idatha. Ukucwangcisa ingqokelela yakho, kufuneka ubhale ezakho izikripthi kunye nezixhobo. Iphaneli yolawulo ikuvumela kuphela ukuba wenze utshintsho oluncinci intsimi enye ngexesha, kwaye ayinakho ukungenisa/ukuthumela ngaphandle.

Bathatha i-database ye-NoSQL yexesha langempela kwaye bayijika yaba yi-SQL ecothayo kunye ne-auto-join kunye nekholamu eyahlukileyo engeyiyo ye-JSON. Into efana neGraftQL.

Le database iyavutha...

IJava eshushu

Ukuba i-Firestore bekufanele ithembeke ngakumbi kwaye ihlaziywe, ngoko ke i-irony kukuba umphuhlisi oqhelekileyo uya kugqiba isisombululo esincinci kunokuba akhethe i-FireBase ngaphandle kwebhokisi. Uhlobo lwesoftware olufunwa nguMlawuli weGrumpy Database lufuna inqanaba lomgudu kunye nenqanaba letalente elingenangqiqo kwi-niche imveliso ekufuneka ilungile kuyo. Oku kufana nendlela i-HTML5 Canvas engatshintshi ngayo iFlash konke ukuba akukho zixhobo zophuhliso kunye nomdlali. Ngapha koko, i-Firestore ifakwe kumnqweno wokucoceka kwedatha kunye nokuqinisekiswa okunyumba okungahambelaniyo nendlela umsebenzisi weshishini ophakathi. uyakuthanda ukusebenza: kuye yonke into inokuzikhethela, kuba kude kube sekupheleni yonke into iyidrafti.

Eyona nto ingalunganga ye-FireBase kukuba umxhasi wenziwa iminyaka emininzi phambi kwexesha layo, ngaphambi kokuba uninzi lwabaphuhlisi bewebhu bazi malunga nokungaguquki. Ngenxa yoku, i-FireBase ithatha ukuba uya kuyitshintsha idatha kwaye ngoko ayithathi ithuba lokungaguquki okubonelelwe ngumsebenzisi. Ukongeza, ayiphindi isebenzise idatha kwi-snapshots eyidlulisela kumsebenzisi, nto leyo eyenza ukuba ukwahlukana kube nzima kakhulu. Kumaxwebhu amakhulu, indlela yetransekshini eguqukayo enokuguqulelwa kwidiff-based akwanelanga. Guys, sele sinabo WeakMap kwiJavaScript. Ikhululekile.

Ukuba unika idatha ubume obufunwayo kwaye ungenzi imithi ibe namandla kakhulu, ke le ngxaki inokuthintelwa. Kodwa ndinomdla wokwazi ukuba i-FireBase inokuba nomdla ngakumbi ukuba abaphuhlisi bakhuphe i-API yomxhasi olungileyo osebenzise ukungaguquki kudityaniswe neengcebiso ezisebenzayo kuyilo lwedatha. Kunoko, babonakala bezama ukulungisa oko kwakungophukanga, yaye loo nto yayenza yambi ngakumbi.

Andazi yonke ingqiqo emva kokudalwa kweFirestore. Ukuqikelela malunga neenjongo ezivela ngaphakathi kwebhokisi elimnyama likwayinxalenye yolonwabo. Oku kudityaniswa kogcino-lwazi olufana kakhulu kodwa olungenakuthelekiswa nanto lunqabile. Kufana nomntu ocingayo: "I-Firebase ngumsebenzi nje esinokuwuxelisa kwiLifu likaGoogle", kodwa awukawufumani uluvo lokuchonga iimfuno zehlabathi lokwenyani okanye ukwenza izisombululo eziluncedo ezihlangabezana nazo zonke ezo mfuno. β€œVumela abaphuhlisi bacinge ngayo. Yenza nje i-UI ibe ntle... Ungawongeza omnye umlilo?”

Ndiyaziqonda izinto ezimbalwa malunga nolwakhiwo lwedatha. Ngokuqinisekileyo ndibona "yonke into kumthi omnye omkhulu we-JSON" njengomzamo wokukhupha nayiphi na ingqiqo yesakhiwo esikhulu kwisiseko sedatha. Ukulindela isoftware ukumelana ngokulula nayo nayiphi na idatha ethandabuzekayo ubume be-fractal bubudenge nje. Andifuni nokuba ndicinge ukuba izinto zinokuba zimbi kangakanani, ndenze uphicotho olungqongqo lwekhowudi kwaye Ndibone izinto eningazange niziphuphe nina bantu. Kodwa ndiyazi ukuba izakhiwo ezilungileyo zikhangeleka njani, indlela yokuzisebenzisa ΠΈ kutheni le nto kufuneka yenziwe. Ndiyakwazi ukucinga ihlabathi apho i-Firestore ibonakala isengqiqweni kwaye abantu abayidalileyo banokucinga ukuba benze umsebenzi olungileyo. Kodwa asiphili kweli hlabathi.

Inkxaso yombuzo weFireBase ayilunganga ngawo nawuphi na umgangatho kwaye ayikho kwaphela. Ngokuqinisekileyo ifuna ukuphuculwa okanye ubuncinci uhlaziyo. Kodwa i-Firestore ayikho ngcono kakhulu kuba inqunyelwe kwizalathisi ezinomda omnye ofumaneka kwi-SQL ecacileyo. Ukuba ufuna imibuzo abantu abaqhuba ngayo kwidatha yesiphithiphithi, udinga ukukhangela okubhaliweyo okugcweleyo, izihluzi zoluhlu oluninzi, kunye nocwangco oluchaziweyo lomsebenzisi. Xa ujongisisa, imisebenzi ye-SQL ecacileyo ilinganiselwe kakhulu ngokwayo. Ukongeza, ekuphela kwemibuzo yeSQL abantu abanokuqhuba kwimveliso yimibuzo ekhawulezayo. Uyakufuna isisombululo sesalathiso sesiko kunye nezakhiwo zedatha ehlakaniphile. Kuyo yonke enye into, kufuneka okungenani kubekho ukuncitshiswa kwemephu okanye into efanayo.

Ukuba ukhangela iGoogle Docs ngolwazi malunga noku, ngethemba uya kwalathiswa kwicala lento efana neBigTable kunye neBigQuery. Nangona kunjalo, zonke ezi zisombululo zikhatshwa yijargon yokuthengisa eshinyeneyo kangangokuba uya kubuya umva ngokukhawuleza kwaye uqale ukukhangela enye into.

Into yokugqibela oyifunayo nge-database yexesha langempela yinto eyenziwe kunye nabantu abakwizinga lokuhlawula ulawulo.

(*) Yintlekisa le, akukho nto injalo 100% JSON ehambelanayo.

Njengentengiso

Ndikhangela i I-VDS kwiiprojekthi zokulungisa iimpazamo, iseva yophuhliso kunye nokubamba? Ngokuqinisekileyo ungumxhasi wethu πŸ™‚ Amaxabiso emihla ngemihla kwiiseva zolungelelwaniso olwahlukeneyo, iilayisensi ezichasene neDDoS kunye neWindows sele zibandakanyiwe kwixabiso.

Le database iyavutha...

umthombo: www.habr.com

Yongeza izimvo