Le database iyavutha...

Le database iyavutha...

Ake ngixoxe indaba yobuchwepheshe.

Eminyakeni eminingi edlule, bengithuthukisa uhlelo lokusebenza olunezici zokusebenzisana ezakhelwe kulo. Bekuyisitaki sokuhlola esisebenziseka kalula esisebenzise amandla aphelele e-React yangaphambi kwesikhathi ne-CouchDB. Ivumelanise idatha ngesikhathi sangempela nge-JSON OT. Yayisetshenziswa ngaphakathi enkampanini, kodwa ukusetshenziswa kwayo okubanzi namandla kwezinye izindawo kwakucacile.

Ngenkathi sizama ukudayisela lobu buchwepheshe kumakhasimende angaba khona, sihlangabezane nesithiyo esingalindelekile. Kuvidiyo yedemo, ubuchwepheshe bethu bubukeke futhi busebenza kahle, azikho izinkinga lapho. Ividiyo ikhombise kahle ukuthi isebenza kanjani futhi ayizange ilingise lutho. Siqhamuke futhi sabhala ngekhodi isimo esingokoqobo sokusebenzisa uhlelo.

Le database iyavutha...
Eqinisweni, lokhu kwaba inkinga. Idemo yethu isebenze ncamashi ngendlela wonke umuntu alingisa ngayo izinhlelo zabo zokusebenza. Ngokucacile, ulwazi lwadluliswa ngokushesha lusuka ku-A luye ku-B, ngisho noma bekungamafayela emidiya amakhulu. Ngemva kokungena ngemvume, umsebenzisi ngamunye ubone okufakiwe okusha. Ngokusebenzisa uhlelo lokusebenza, abasebenzisi abahlukene bangasebenza ndawonye ngokucacile kumaphrojekthi afanayo, ngisho noma uxhumano lwe-inthanethi luphazanyiswe ndawana thize esigodini. Lokhu kushiwo ngokungaguquki kunoma yimuphi umkhiqizo wevidiyo osikiwe ku-After Effects.

Noma wonke umuntu wayazi ukuthi inkinobho ethi Vuselela ngeyani, akekho noyedwa owaqonda ukuthi izinhlelo zokusebenza zewebhu abasicele ukuthi sizakhe ngokuvamile zazingaphansi kwemikhawulo yabo. Futhi nokuthi uma zingasadingeki, ukuzizwisa komsebenzisi kuzohluka ngokuphelele. Baqaphele kakhulu ukuthi “bangaxoxa” ngokushiya amanothi kubantu ababekhuluma nabo, ngakho bazibuza ukuthi lokhu kwehluke kanjani, ngokwesibonelo, uSlack. Phew!

Idizayini yokuvumelanisa kwansuku zonke

Uma unanoma isiphi isipiliyoni ekuthuthukisweni kwesoftware, kufanele kukuphazamise ukukhumbula ukuthi abantu abaningi abakwazi ukuvele babheke isithombe sesixhumi esibonakalayo futhi baqonde ukuthi sizokwenzani lapho bexhumana naso. Ingasaphathwa eyenzeke ngaphakathi kohlelo ngokwalo. Ulwazi lokho unga ukwenzeka ikakhulukazi kuwumphumela wokwazi ukuthi yini engeke yenzeke nokungafanele yenzeke. Lokhu kudinga imodeli yengqondo hhayi kuphela lokho okwenziwa isofthiwe, kodwa nokuthi izingxenye zayo ngazinye zihlanganiswa kanjani futhi zixhumana kanjani.

Isibonelo sakudala salokhu umsebenzisi ogqolozele a isipina.gif, bezibuza ukuthi umsebenzi uzophela nini. Umthuthukisi ngabe ubonile ukuthi inqubo ibibambekile nokuthi i-gif ayisoze yanyamalala esikrinini. Lokhu kugqwayiza kulingisa ukwenziwa komsebenzi, kodwa akuhlobene nesimo sawo. Ezimweni ezinjalo, amanye ama-techies athanda ukukhipha amehlo, emangala ngezinga lokudideka kwabasebenzisi. Nokho, phawula ukuthi bangaki abakhomba iwashi elijikelezayo futhi bathi alimile ngempela?

Le database iyavutha...
Lona ingqikithi yenani lesikhathi sangempela. Kulezi zinsuku, isizindalwazi sesikhathi sangempela sisasetshenziswa kakhulu futhi abantu abaningi bazibheka ngokusola. Iningi lalezi zingosi zolwazi zincike kakhulu kwisitayela se-NoSQL, yingakho ngokuvamile zisebenzisa izixazululo ezisekelwe ku-Mongo, ezikhohlweka kangcono. Kodwa-ke, kimina lokhu kusho ukukhululeka ukusebenza ne-CouchDB, kanye nokufunda ukuklama izakhiwo ezingagcwaliswa ngaphezu kwe-bureaucrat ethile ngedatha. Ngicabanga ukuthi ngisisebenzisa kangcono isikhathi sami.

Kodwa isihloko sangempela salokhu okuthunyelwe yilokho engikusebenzisa namuhla. Hhayi ngokuzikhethela, kodwa ngenxa yezinqubomgomo zebhizinisi ezisetshenziswa ngokunganaki futhi ngobumpumputhe. Ngakho-ke ngizohlinzeka ngokuqhathanisa Okulungile Ngokuphelele nokungachemi kwemikhiqizo emibili yesizindalwazi sesikhathi sangempela se-Google ehlobene eduze.

Le database iyavutha...
Bobabili banegama elithi Umlilo emagameni abo. Yinye into engiyikhumbula kahle. Okwesibili kimi wuhlobo oluhlukile lomlilo. Angijahile ukusho amagama abo, ngoba uma sengiwasho, sizobhekana nenkinga enkulu yokuqala: amagama.

Owokuqala ubizwa Isizindalwazi se-Firebase Real-Time, futhi okwesibili - I-Firebase Cloud Firestore. Zombili ziyimikhiqizo evela I-Firebase suite Google. Ama-API abo abizwa ngokulandelana firebase.database(…) и firebase.firestore(…).

Lokhu kwenzeka ngoba Isizindalwazi Sesikhathi Sangempela - iwuqobo nje I-Firebase ngaphambi kokuthengwa kwayo yi-Google ngo-2014. U-Google wabe esenquma ukudala njengomkhiqizo ofanayo ikhophi I-Firebase esekelwe enkampanini enkulu yedatha, futhi yayibiza nge-Firestore ngefu. Ngiyethemba awukakakhungatheki. Uma usadidekile, ungakhathazeki, mina ngokwami ​​ngibhale kabusha le ngxenye yesihloko izikhathi eziyishumi.

Ngoba udinga ukukhombisa I-Firebase embuzweni we-Firebase, futhi I-Firestore embuzweni omayelana ne-Firebase, okungenani ukuze ukwenze uqonde eminyakeni embalwa edlule Ekuchichimeni Kwesitaki.

Uma bekunomklomelo wolwazi olubi kakhulu lokuqamba isoftware, lokhu bekungaba ngomunye wabaqhudelanayo. Ibanga elithi Hamming phakathi kwala magama lincane kangangokuthi lidida ngisho onjiniyela abanolwazi ngeminwe yabo ebhala igama elilodwa kuyilapho amakhanda abo ecabanga elinye. Lezi izinhlelo ezinezinhloso ezinhle ezibhuntsha kabuhlungu; bafeza isiprofetho sokuthi i-database izovutha. Futhi angidlali nakancane. Umuntu oqhamuke nalolu hlelo lokuqanjwa kwamagama udale igazi, umjuluko nezinyembezi.

Le database iyavutha...

Ukunqoba kwe-Pyrrhic

Umuntu angacabanga ukuthi iFirestore ukumiselela I-Firebase, inzalo yayo yesizukulwane esilandelayo, kodwa lokho kungaba kudukisa. I-Firestore ayiqinisekisiwe ukuthi izongena esikhundleni esifanelekile se-Firebase. Kubukeka sengathi othile ukhiphe yonke into ethokozisayo kuyo, futhi wadida iningi labanye ngezindlela ezahlukahlukene.

Kodwa-ke, ukubuka ngokushesha le mikhiqizo emibili kungase kukudide: kubonakala sengathi yenza into efanayo, ngokusebenzisa ama-API afanayo ngisho naseseshini yedatha efanayo. Umehluko ucashile futhi wembulwa kuphela ngocwaningo lokuqhathanisa ngokucophelela lwemibhalo ebanzi. Noma uma uzama ukufaka ikhodi esebenza kahle ku-Firebase ukuze isebenze ne-Firestore. Nalapho uthola ukuthi i-database interface ikhanya ngokushesha nje lapho uzama ukuhudula bese uphonsa ngegundane ngesikhathi sangempela. Ngiyaphinda, angidlali.

Iklayenti le-Firebase linesizotha ngomqondo wokuthi liphazamisa izinguquko futhi lizama kabusha ngokuzenzakalelayo izibuyekezo ezibeka kuqala umsebenzi wokugcina wokubhala. Kodwa-ke, i-Firestore inomkhawulo wokusebenza kokubhala okungu-1 ngedokhumenti ngomsebenzisi ngamunye ngomzuzwana, futhi lo mkhawulo uphoqelelwa iseva. Uma usebenza nayo, kukuwe ukuthi uthole indlela yokuyizungeza futhi usebenzise isikhawuli sezinga lokubuyekeza, noma ngabe uzama ukwakha uhlelo lwakho lokusebenza. Okusho ukuthi, i-Firestore iyisizindalwazi sesikhathi sangempela esingenayo iklayenti lesikhathi sangempela, elizenza umuntu osebenzisa i-API.

Lapha siqala ukubona izimpawu zokuqala zeRaison d'être yakwaFirestore. Kungenzeka ukuthi nginephutha, kodwa ngisola ukuthi othile ophakeme kubaphathi be-Google ubuke i-Firebase ngemva kokuthenga wavele wathi, “Cha, Nkulunkulu wami, cha. Lokhu akwamukelekile. Akukhona nje ngaphansi kobuholi bami."

Le database iyavutha...
Wavela emakamelweni akhe wathi:

“Idokhumenti eyodwa enkulu ye-JSON? Cha. Uzohlukanisa idatha ibe imibhalo ehlukene, ngayinye yawo engeke ibe ngaphezu kwe-megabyte eyodwa ngosayizi.”

Kubonakala sengathi umkhawulo onjalo ngeke uphile ekubhekaneni kokuqala nanoma yisiphi isisekelo somsebenzisi esikhuthazwe ngokwanele. Uyazi ukuthi kunjalo. Emsebenzini, ngokwesibonelo, sinezethulo ezingaphezu kwenkulungwane nengxenye, futhi lokhu Kujwayelekile Ngokuphelele.

Ngalo mkhawulo, uzophoqeleka ukuba wamukele iqiniso lokuthi "idokhumenti" eyodwa kusizindalwazi ngeke ifane nanoma iyiphi into umsebenzisi angase ayibize ngokuthi idokhumenti.

"Izinhla ezifanayo ezingaqukatha ngokuphindaphindiwe ezinye izakhi? Cha. Izinhlu zizoqukatha izinto ezinobude obumisiwe kuphela noma izinombolo, njengoba uNkulunkulu ayehlosile."

Ngakho-ke uma ubunethemba lokufaka i-GeoJSON ku-Firestore yakho, uzothola ukuthi lokhu akunakwenzeka. Akukho okungeyona ingxenye eyodwa eyamukelekile. Ngithemba ukuthi uthanda i-Base64 kanye/noma i-JSON ngaphakathi kwe-JSON.

"I-JSON ingenisa futhi ithekelise nge-HTTP, amathuluzi omugqa womyalo noma iphaneli yomqondisi? Cha. Uzokwazi kuphela ukukhipha futhi ungenise idatha ku-Google Cloud Storage. Yilokho okubizwa ngakho manje, ngiyacabanga. Futhi uma ngithi “wena,” ngikhuluma kuphela nalabo abanemininingwane yoMnikazi Wephrojekthi. Bonke abanye bangahamba bayodala amathikithi."

Njengoba ubona, imodeli yedatha ye-FireBase kulula ukuyichaza. Iqukethe idokhumenti eyodwa enkulu ye-JSON ehlobanisa okhiye be-JSON nezindlela ze-URL. Uma ubhala nge HTTP PUT в / I-FireBase yile elandelayo:

{
  "hello": "world"
}

Lokho GET /hello izobuya "world". Empeleni isebenza njengoba ubungayilindela. Ukuqoqwa kwezinto ze-FireBase /my-collection/:id kulingana nesichazamazwi se-JSON {"my-collection": {...}} empandeni, okuqukethwe kwayo kuyatholakala ku /my-collection:

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

Lokhu kusebenza kahle uma okufakiwe ngakunye kune-ID engashayisani, isistimu enesixazululo sayo esijwayelekile.

Ngamanye amazwi, isizindalwazi sihambisana ne-100% JSON(*) futhi isebenza kahle nge-HTTP, njenge-CouchDB. Kodwa ngokuyisisekelo uyisebenzisa nge-API yesikhathi sangempela ekhipha amasokhethi ewebhu, ukugunyazwa, nokubhaliselwe. Iphaneli yomqondisi inakho womabili amandla, evumela kokubili ukuhlela kwesikhathi sangempela kanye nokungenisa/ukuthekelisa kwe-JSON. Uma wenza okufanayo kukhodi yakho, uzomangala ukuthi ingakanani ikhodi ekhethekile ezomoshwa lapho uqaphela ukuthi i-patch ne-diff JSON ixazulula u-90% wemisebenzi evamile yokuphatha isimo esiqhubekayo.

Imodeli yedatha ye-Firestore iyafana ne-JSON, kodwa ihluka ngezindlela ezithile ezibucayi. Sengikushilo kakade ukushoda kwezinhlaka ngaphakathi kwezinhlaka. Imodeli yamaqoqo amancane ukuthi abe imiqondo yekilasi lokuqala, ehlukaniswe nedokhumenti ye-JSON ewaqukethe. Njengoba kungekho ukuhlelwa kabusha okwenziwe ngomumo kwalokhu, indlela yekhodi ekhethekile iyadingeka ukubuyisa nokubhala idatha. Ukuze ucubungule owakho amaqoqo, udinga ukubhala eyakho imibhalo namathuluzi. Iphaneli yokuphatha ikuvumela kuphela ukuthi wenze izinguquko ezincane inkambu eyodwa ngesikhathi, futhi ayinawo amandla okungenisa/ukuthumela.

Bathathe isizindalwazi sesikhathi sangempela se-NoSQL base besenza i-non-SQL enensayo ngokujoyina okuzenzakalelayo kanye nekholomu ehlukile engeyona eye-JSON. Okuthile okufana ne-GraftQL.

Le database iyavutha...

I-Java eshisayo

Uma ngabe i-Firestore bekufanele ithembeke kakhulu futhi ikhule, khona-ke okuxakayo ukuthi umthuthukisi ojwayelekile uzogcina enesixazululo esinokwethenjelwa kancane kunokukhetha i-FireBase ngaphandle kwebhokisi. Uhlobo lwesofthiwe oludingwa yi-Grumpy Database Administrator ludinga izinga lokuzikhandla kanye nenani lethalente elimane nje lingenangqondo ku-niche umkhiqizo okufanele ube muhle kuwo. Lokhu kufana nendlela i-HTML5 Canvas engamiseleli ngayo iFlash nhlobo uma kungekho amathuluzi okuthuthukisa kanye nesidlali. Ngaphezu kwalokho, i-Firestore igcwele isifiso sokuhlanzeka kwedatha nokuqinisekiswa okuyinyumba okungahambelani nendlela umsebenzisi webhizinisi ojwayelekile. uthanda ukusebenza: kuye yonke into uyazikhethela, ngoba kuze kube sekugcineni yonke into iwuhlaka.

Ububi obukhulu be-FireBase ukuthi iklayenti ladalwa eminyakeni embalwa ngaphambi kwesikhathi salo, ngaphambi kokuba abathuthukisi bewebhu abaningi bazi mayelana nokungaguquki. Ngenxa yalokhu, i-FireBase ithatha ngokuthi uzoshintsha idatha ngakho-ke ayisebenzisi ukungaguquki okunikezwa umsebenzisi. Ukwengeza, ayisebenzisi kabusha idatha kuzifinyezo ezidlulisela kumsebenzisi, okwenza umehluko ube nzima kakhulu. Emadokhumeni amakhulu, indlela yayo yokwenziwayo eguqulekayo esuselwa ku-diff ayinele. Bafo, sesinayo WeakMap ku-JavaScript. Ikhululekile.

Uma unikeza idatha ukuma okufunayo futhi ungenzi izihlahla zibe namandla kakhulu, khona-ke le nkinga ingagwemeka. Kodwa nginelukuluku lokuthi ngabe iFireBase ingathakazelisa kakhulu uma abathuthukisi bekhipha i-API yeklayenti enhle ngempela esebenzisa ukungaguquki kuhlanganiswe nezeluleko ezithile ezisebenzayo ekwakhiweni kwesizindalwazi. Kunalokho, babonakala bezama ukulungisa okwakungaphukile, futhi lokho kwakwenza kwaba kubi nakakhulu.

Angiwazi wonke umqondo wokudalwa kweFirestore. Ukuqagela ngezisusa ezivela ngaphakathi kwebhokisi elimnyama nakho kuyingxenye yokuzijabulisa. Lokhu kuhlanganiswa kwemininingwane egciniwe emibili efana kakhulu kodwa engenakuqhathaniswa kuyivelakancane. Njengokungathi othile ucabange: "I-Firebase iwumsebenzi nje esingawulingisa ku-Google Cloud", kodwa akakawutholi umqondo wokuhlonza izidingo zomhlaba wangempela noma ukudala izixazululo eziwusizo ezihlangabezana nazo zonke lezo zidingo. “Vumela abathuthukisi bacabange ngakho. Vele wenze i-UI ibe yinhle... Ungakwazi ukwengeza umlilo?”

Ngiyaziqonda izinto ezimbalwa mayelana nezakhiwo zedatha. Ngibona ngempela umqondo othi "yonke into esihlahleni esisodwa esikhulu se-JSON" njengomzamo wokukhipha noma yimuphi umqondo wesakhiwo esikhulu kusizindalwazi. Ukulindela isofthiwe ukuthi imane ibhekane nanoma iyiphi i-fractal yesakhiwo sedatha esingabazisayo kuwubuhlanya nje. Angidingi ngisho nokucabanga ukuthi izinto zingaba zimbi kangakanani, ngenze ukucwaninga amakhodi okuqinile futhi Ngabona izinto eningakaze niziphuphe nina bantu. Kodwa futhi ngiyazi ukuthi izakhiwo ezinhle zibukeka kanjani, zisetshenziswa kanjani и kungani kufanele kwenziwe lokhu. Ngingawucabanga umhlaba lapho iFirestore ingabonakala inengqondo futhi abantu abayidalile bangacabanga ukuthi benze umsebenzi omuhle. Kodwa asiphili kulo mhlaba.

Usekelo lwemibuzo ye-FireBase lubi nganoma yiliphi izinga futhi alukho nhlobo. Idinga ngempela ukuthuthukiswa noma okungenani ukubuyekezwa. Kepha i-Firestore ayingcono kakhulu ngoba ikhawulelwe ezinkomba ezifanayo ezinohlangothi olulodwa ezitholakala ku-SQL esobala. Uma udinga imibuzo abantu abayisebenzisayo kudatha enesiphithiphithi, udinga ukusesha kombhalo ogcwele, izihlungi zebanga eliningi, noku-oda okuchazwe ngokwezifiso komsebenzisi. Lapho uhlolisisa, imisebenzi ye-SQL engenalutho ilinganiselwe kakhulu ngokwayo. Ukwengeza, imibuzo ye-SQL kuphela abantu abangayiqhuba ekukhiqizeni imibuzo esheshayo. Uzodinga isisombululo senkomba sangokwezifiso esinezakhiwo zedatha ezihlakaniphile. Kukho konke okunye, kufanele okungenani kube nokuncishiswa kwemephu okukhuphukayo noma okunye okufanayo.

Uma usesha i-Google Amadokhumenti ukuze uthole ulwazi mayelana nalokhu, ngethemba ukuthi uzokhonjwa indlela yento efana ne-BigTable ne-BigQuery. Kodwa-ke, zonke lezi zixazululo zihambisana ne-jargon yokuthengisa yezinkampani eziminyene kangangokuthi uzobuyela emuva ngokushesha futhi uqale ukufuna enye into.

Into yokugcina oyifunayo nge-database yesikhathi sangempela yinto eyenziwe futhi yabantu abasezikalini zokukhokha zabaphathi.

(*) Ihlaya leli, ayikho into okuthiwa 100% ehambisanayo ne-JSON.

Emalungelo Wokukhangisa

Ufuna I-VDS kumaphrojekthi okulungisa iphutha, iseva yokuthuthukisa nokubamba? Impela uyiklayenti lethu 🙂 Izintengo zansuku zonke zamaseva wokulungiselela okuhlukahlukene, amalayisensi e-anti-DDoS kanye ne-Windows asefakiwe enanini.

Le database iyavutha...

Source: www.habr.com

Engeza amazwana