Database iyi yayaka moto ...

Database iyi yayaka moto ...

Ndiroleni ndifotokoze nkhani yaukadaulo.

Zaka zambiri zapitazo, ndinali kupanga pulogalamu yokhala ndi zinthu zolumikizana zomwe zimapangidwiramo. Zinali zoyeserera zosavuta kugwiritsa ntchito zomwe zidagwiritsa ntchito mwayi wonse wa React ndi CouchDB. Idagwirizanitsa deta mu nthawi yeniyeni kudzera pa JSON OT. Zinagwiritsidwa ntchito mkati mwa kampani, koma kugwiritsidwa ntchito kwake ndi kuthekera kwake m'madera ena kunali koonekeratu.

Pamene tikuyesera kugulitsa lusoli kwa makasitomala omwe angakhale makasitomala, tinakumana ndi chopinga chosayembekezereka. Mu kanema wachiwonetsero, ukadaulo wathu umawoneka ndikugwira ntchito bwino, palibe vuto pamenepo. Kanemayo adawonetsa momwe amagwirira ntchito ndipo sanatsanzire kalikonse. Tinapanga ndikulemba zochitika zenizeni zogwiritsira ntchito pulogalamuyi.

Database iyi yayaka moto ...
Ndipotu zimenezi zinakhala vuto. Chiwonetsero chathu chinagwira ndendende momwe wina aliyense amatengera kugwiritsa ntchito kwawo. Mwachindunji, zambiri zidasamutsidwa nthawi yomweyo kuchokera ku A kupita ku B, ngakhale zinali mafayilo akulu atolankhani. Pambuyo polowa, wogwiritsa ntchito aliyense adawona zolemba zatsopano. Pogwiritsa ntchito pulogalamuyi, ogwiritsa ntchito osiyanasiyana amatha kugwirira ntchito limodzi momveka bwino pamapulojekiti omwewo, ngakhale intaneti itasokonezedwa kwinakwake m'mudzimo. Izi zimatanthauzidwa mwatsatanetsatane muvidiyo iliyonse yodulidwa mu After Effects.

Ngakhale aliyense ankadziwa kuti batani la Refresh ndi chiyani, palibe amene amamvetsetsa kuti mapulogalamu omwe amatipempha kuti tipange nthawi zambiri amakhala ndi malire awo. Ndipo kuti ngati sakufunikanso, zomwe zimachitikira wogwiritsa ntchito zidzakhala zosiyana kwambiri. Amawona makamaka kuti "amacheza" posiya zolemba kwa anthu omwe amalankhula nawo, kotero adadabwa kuti izi zidasiyana bwanji, mwachitsanzo, Slack. Phew!

Mapangidwe a masinthidwe atsiku ndi tsiku

Ngati muli ndi chidziwitso pakupanga mapulogalamu, ziyenera kukhala zosokoneza kukumbukira kuti anthu ambiri sangangoyang'ana chithunzi cha mawonekedwe ndikumvetsetsa zomwe angachite polumikizana nawo. Osatchula zomwe zimachitika mkati mwa pulogalamuyo. Kudziwa zimenezo mungathe zimachitika makamaka chifukwa chodziwa zomwe sizingachitike ndi zomwe siziyenera kuchitika. Izi zimafuna maganizo chitsanzo osati zomwe pulogalamuyo imachita, komanso momwe magawo ake amagwirizanirana ndikulumikizana wina ndi mnzake.

Chitsanzo chodziwika bwino cha izi ndi wogwiritsa ntchito a spinner.gif, akudabwa kuti ntchitoyo idzamalizidwa liti. Wopangayo akadazindikira kuti njirayo mwina idakakamira komanso kuti gif sidzasowa pazenera. Makanema awa amatsanzira kuchitidwa kwa ntchito, koma sizigwirizana ndi momwe zimakhalira. Zikatero, ma techies ena amakonda kutembenuza maso, kudabwa ndi kuchuluka kwa chisokonezo cha ogwiritsa ntchito. Komabe, taonani kuti ndi angati a iwo amene amaloza ku wotchi yozungulira n’kunena kuti ilidi?

Database iyi yayaka moto ...
Ichi ndiye gwero la mtengo wanthawi yeniyeni. Masiku ano, nkhokwe zenizeni sizikugwiritsidwa ntchito kwambiri ndipo anthu ambiri amazikayikira. Zambiri mwazidazi zimatsamira kwambiri kumayendedwe a NoSQL, ndichifukwa chake nthawi zambiri amagwiritsa ntchito mayankho a Mongo, omwe amaiwala bwino. Komabe, kwa ine izi zikutanthauza kukhala omasuka kugwira ntchito ndi CouchDB, komanso kuphunzira kupanga zomanga zomwe zambiri kuposa mabungwe ena amatha kudzaza ndi data. Ndikuganiza kuti ndikugwiritsa ntchito nthawi yanga bwino.

Koma mutu weniweni wa positiyi ndi womwe ndikugwiritsa ntchito lero. Osati mwa kusankha, koma chifukwa cha ndondomeko zamabizinesi mosasamala komanso mwakhungu. Chifukwa chake ndipereka kufananitsa Kwabwino Kwambiri komanso kosakondera kwa zinthu ziwiri zofananira za Google zenizeni zenizeni zenizeni.

Database iyi yayaka moto ...
Onse awiri ali ndi mawu akuti Moto m'maina awo. Chinthu chimodzi chimene ndimakumbukira kwambiri. Chinthu chachiwiri kwa ine ndi mtundu wina wamoto. Sindikufulumira kunena mayina awo, chifukwa ndikangotero, tidzakumana ndi vuto lalikulu loyamba: mayina.

Woyamba akutchedwa Firebase Real-Time Database, ndi wachiwiri - Firebase Cloud Firestore. Onse a iwo ndi mankhwala kuchokera Firebase suite Google. Ma API awo amatchedwa motsatana firebase.database(…) и firebase.firestore(…).

Izi zidachitika chifukwa Real-Time Database - ndi chiyambi chabe Kutentha isanagulidwe ndi Google mu 2014. Kenako Google idaganiza zopanga ngati chinthu chofananira kutengera Firebase yotengera kampani yayikulu ya data, ndikuyitcha Firestore yokhala ndi mtambo. Ndikukhulupirira kuti simunasokonezekebe. Ngati mudakali osokonezeka, musadandaule, ndinalembanso gawo ili la nkhaniyi nthawi khumi.

Chifukwa muyenera kuzindikira Kutentha mu funso la Firebase, ndi Firestore mu funso lokhudza Firebase, osachepera kuti mumvetse zaka zingapo zapitazo pa Stack Overflow.

Ngati pakadakhala mphotho ya pulogalamu yoyipa kwambiri yotchulira dzina, izi zikadakhala m'modzi mwa omwe akupikisana nawo. Mtunda wa Hamming pakati pa mayinawa ndi wochepa kwambiri moti umasokoneza ngakhale akatswiri odziwa zambiri omwe zala zawo zimalemba dzina limodzi pamene mitu yawo ikuganiza za lina. Awa ndi zolinga zabwino zomwe zimalephera momvetsa chisoni; adakwaniritsa ulosi woti database idzayaka moto. Ndipo sindikuseka konse. Munthu amene adabwera ndi dongosolo lopatsa mayina adayambitsa magazi, thukuta komanso misozi.

Database iyi yayaka moto ...

Kupambana kwa Pyrrhic

Wina angaganize kuti Firestore ndi m'malo Firebase, mbadwa yake yotsatira, koma izi zingakhale zosocheretsa. Firestore siyikutsimikiziridwa kukhala malo oyenera a Firebase. Zikuwoneka ngati wina adadula chilichonse chosangalatsa kuchokera pamenepo, ndikusokoneza ena onse m'njira zosiyanasiyana.

Komabe, kuyang'ana mwachangu pazinthu ziwirizi kungakusokonezeni: zikuwoneka kuti zikuchita zomwezo, kudzera mu ma API omwewo komanso ngakhale gawo limodzi la database. Kusiyanaku kuli kosaoneka bwino ndipo kumawululidwa kokha mwa kufufuza mosamalitsa kwa zolemba zambiri. Kapena pamene mukuyesera kuyika khodi yomwe imagwira ntchito bwino pa Firebase kuti igwire ntchito ndi Firestore. Ngakhale ndiye mumapeza kuti mawonekedwe a database amawunikira mukangoyesa kukokera ndikugwetsa ndi mbewa munthawi yeniyeni. Ndikubwereza, sindikuchita nthabwala.

Makasitomala a Firebase ndi aulemu chifukwa amasunga zosintha ndikuyesanso zosintha zomwe zimayika patsogolo ntchito yomaliza yolemba. Komabe, Firestore ili ndi malire a 1 kulemba ntchito pa chikalata pa wosuta pa sekondi iliyonse, ndipo malirewa amakakamizidwa ndi seva. Mukamagwira nawo ntchito, zili ndi inu kuti mupeze njira yozungulira ndikukhazikitsa zochepetsera zosintha, ngakhale mukungoyesa kupanga pulogalamu yanu. Ndiye kuti, Firestore ndi nkhokwe yanthawi yeniyeni yopanda kasitomala wanthawi yeniyeni, yomwe imadzipangitsa kukhala yogwiritsa ntchito API.

Apa tikuyamba kuwona zizindikiro zoyamba za Firestore's raison d'être. Ndikhoza kukhala ndikulakwitsa, koma ndikukayikira kuti wina yemwe ali pamwamba pa utsogoleri wa Google adayang'ana Firebase atagula ndikungoti, "Ayi, Mulungu wanga, ayi. Izi ndizosavomerezeka. Osati pansi pa utsogoleri wanga. "

Database iyi yayaka moto ...
Iye adawonekera kuchokera m'zipinda zake nati:

"Chikalata chimodzi chachikulu cha JSON? Ayi. Mugawa zikalatazo m'zikalata zosiyana, zomwe sizikhala ndi kukula kwa megabyte imodzi. "

Zikuwoneka kuti kuletsa koteroko sikudzatha kukumana koyamba ndi ogwiritsa ntchito omwe ali ndi chidwi chokwanira. Inu mukudziwa izo ziri. Kuntchito, mwachitsanzo, tili ndi maulaliki opitilira chikwi chimodzi ndi theka, ndipo izi ndizabwinobwino.

Ndi malire awa, mudzakakamizika kuvomereza kuti "chikalata" chimodzi mumndandanda sichingafanane ndi chilichonse chomwe wogwiritsa ntchito angatchule chikalata.

"Mindandanda yamagulu omwe amatha kukhala ndi zinthu zina mobwerezabwereza? Ayi. Mipikisano idzakhala ndi zinthu kapena manambala aatali okha, monga momwe Mulungu anafunira."

Chifukwa chake ngati mukuyembekeza kuyika GeoJSON mu Firestore yanu, mupeza kuti izi sizingatheke. Palibe chinthu chopanda mbali imodzi chovomerezeka. Ndikukhulupirira kuti mumakonda Base64 ndi/kapena JSON mkati mwa JSON.

"JSON kulowetsa ndikutumiza kunja kudzera pa HTTP, zida zama mzere kapena gulu la admin? Ayi. Mudzatha kutumiza ndi kutumiza deta ku Google Cloud Storage. Ndi chimene chimatchedwa tsopano, ine ndikuganiza. Ndipo ndikanena kuti "inu," ndikungolankhula ndi omwe ali ndi ziyeneretso za Omwe ali ndi Pulojekiti. Aliyense akhoza kupita kukapanga matikiti. "

Monga mukuwonera, mtundu wa data wa FireBase ndiwosavuta kufotokoza. Ili ndi chikalata chimodzi chachikulu cha JSON chomwe chimagwirizanitsa makiyi a JSON ndi njira za URL. Ngati mulemba ndi HTTP PUT в / FireBase ndi awa:

{
  "hello": "world"
}

The GET /hello adzabwerera "world". Kwenikweni zimagwira ntchito monga momwe mungayembekezere. Kusonkhanitsa zinthu za FireBase /my-collection/:id zofanana ndi mtanthauzira mawu wa JSON {"my-collection": {...}} muzu, zomwe zili mkati mwake zilipo /my-collection:

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

Izi zimagwira ntchito bwino ngati choyika chilichonse chili ndi ID yopanda kugunda, yomwe dongosololi lili ndi yankho lokhazikika.

Mwanjira ina, nkhokweyo ndi 100% JSON(*) yogwirizana ndipo imagwira ntchito bwino ndi HTTP, monga CouchDB. Koma kwenikweni mumaigwiritsa ntchito kudzera mu API yeniyeni yomwe imatulutsa ma websockets, chilolezo, ndi zolembetsa. Gulu loyang'anira lili ndi mphamvu zonse ziwiri, kulola kusintha kwanthawi yeniyeni ndi kulowetsa / kutumiza kwa JSON. Mukachita chimodzimodzi mu code yanu, mudzadabwitsidwa ndi kuchuluka kwa ma code omwe angawonongeke mukazindikira kuti chigamba ndi diff JSON chimathetsa 90% ya ntchito zanthawi zonse zogwira ntchito mosalekeza.

Mtundu wa data wa Firestore ndi wofanana ndi JSON, koma umasiyana m'njira zina zovuta. Ndanena kale za kusowa kwa ma arrays mkati mwamagulu. Chitsanzo cha zosonkhanitsira zing'onozing'ono ndikuti akhale malingaliro amtundu woyamba, wosiyana ndi chikalata cha JSON chomwe chili nawo. Chifukwa palibe kusanja kwa kunja kwa bokosi kwa izi, njira yapadera yamakhodi ikufunika kuti mutenge ndi kulemba deta. Kuti mukonze zosonkhanitsira zanu, muyenera kulemba zolemba zanu ndi zida zanu. Gulu loyang'anira limakulolani kuti musinthe pang'ono gawo limodzi panthawi imodzi, ndipo ilibe kuthekera kolowetsa / kutumiza kunja.

Adatenga nkhokwe yeniyeni ya NoSQL ndikuisintha kukhala yocheperako yopanda SQL yokhala ndi auto-join ndi gawo losiyana losakhala la JSON. Chinachake ngati GraftQL.

Database iyi yayaka moto ...

Hot Java

Ngati Firestore imayenera kukhala yodalirika komanso yowonjezereka, ndiye kuti chodabwitsa ndi chakuti wopanga mapulogalamuwa amatha kukhala ndi yankho lodalirika kusiyana ndi kusankha FireBase kunja kwa bokosi. Mtundu wa mapulogalamu omwe Grumpy Database Administrator amafunikira kumafuna khama komanso luso lapamwamba lomwe silingatheke pa kagawo kakang'ono komwe mankhwala akuyenera kukhala abwino. Izi ndizofanana ndi momwe HTML5 Canvas sisinthira ku Flash konse ngati palibe zida zachitukuko ndi wosewera. Kuphatikiza apo, Firestore ili ndi chikhumbo chofuna kuyeretsedwa kwa data ndi kutsimikizika kosabala komwe sikumagwirizana ndi momwe ogwiritsa ntchito amabizinesi wamba. amakonda kugwira ntchito: kwa iye zonse ndizosankha, chifukwa mpaka kumapeto zonse ndizokonzekera.

Choyipa chachikulu cha FireBase ndikuti kasitomala adapangidwa zaka zingapo isanakwane nthawi yake, opanga mawebusayiti ambiri asanadziwe za kusasinthika. Chifukwa cha izi, FireBase imaganiza kuti musintha deta ndipo chifukwa chake sichitengera mwayi wosasinthika woperekedwa ndi wogwiritsa ntchito. Kuphatikiza apo, sichigwiritsanso ntchito zomwe zili muzithunzi zomwe zimadutsa kwa wogwiritsa ntchito, zomwe zimapangitsa kusiyana kukhala kovuta kwambiri. Kwa zolemba zazikulu, makina ake osinthika otengera ma diff-based siwokwanira. Anyamata, ife tiri nazo kale WeakMap mu JavaScript. Ndi bwino.

Ngati mupatsa deta mawonekedwe omwe mukufuna ndipo musapangitse mitengo kukhala yochuluka kwambiri, ndiye kuti vutoli likhoza kuchepetsedwa. Koma ndili ndi chidwi ngati FireBase ingakhale yosangalatsa kwambiri ngati opanga atulutsa API yabwino kwambiri yamakasitomala yomwe idagwiritsa ntchito kusasinthika kuphatikiza ndi upangiri wothandiza pamapangidwe a database. M’malomwake, ankaoneka kuti akuyesetsa kukonza zimene sizinaphwanyike, ndipo zimenezi zinaipitsa kwambiri.

Sindikudziwa malingaliro onse omwe adapanga Firestore. Kulingalira za zolinga zomwe zimatuluka mkati mwa bokosi lakuda ndi gawo la zosangalatsa. Kuphatikizika kwa nkhokwe ziwiri zofanana kwambiri koma zosayerekezeka ndizosowa. Ngati wina anaganiza kuti: "Firebase ndi ntchito yomwe tingatsanzire mu Google Cloud", koma sanapezebe lingaliro lozindikiritsa zofunikira zenizeni padziko lapansi kapena kupanga mayankho othandiza omwe amakwaniritsa zofunikira zonsezo. “Lolani opanga aganizire za izi. Ingopangitsani UI kukhala yokongola... Kodi mungawonjezere moto wina?”

Ndikumvetsetsa zinthu zingapo zokhudzana ndi mapangidwe a data. Ndikuwona lingaliro la "chilichonse mumtengo umodzi waukulu wa JSON" ngati kuyesa kufotokoza malingaliro aliwonse amtundu waukulu kuchokera pankhokwe. Kuyembekeza mapulogalamu kuti angolimbana ndi zokayikitsa zamtundu uliwonse wa fractal ndizopenga. Sindiyeneranso kulingalira momwe zinthu zingakhalire zoipa, ndachita kafukufuku wokhwima komanso Ndinaona zinthu zimene anthu inu simunazilote. Koma ndikudziwanso momwe mapangidwe abwino amawonekera, momwe angawagwiritsire ntchito и izi zichitike chifukwa chiyani. Nditha kulingalira dziko lomwe Firestore ingawoneke ngati yomveka ndipo anthu omwe adayipanga angaganize kuti adachita ntchito yabwino. Koma sitikukhala m’dziko lino.

Thandizo la mafunso a FireBase ndilopanda muyeso uliwonse ndipo kulibe. Imafunikira kuwongolera kapena kusinthidwanso. Koma Firestore siyabwino kwambiri chifukwa imangokhala ndi ma index omwewo omwe amapezeka mu SQL yomveka. Ngati mukufuna mafunso omwe anthu amayendera pazovuta, muyenera kusaka zolemba zonse, zosefera zamitundu yambiri, ndi kuyitanitsa komwe kumatanthauzidwa ndi ogwiritsa ntchito. Mukayang'anitsitsa, ntchito za SQL zomveka ndizochepa paokha. Kuphatikiza apo, mafunso okhawo a SQL omwe anthu amatha kupanga ndi mafunso ofulumira. Mufunika njira yolondolera yomwe ili ndi zida zoganizira. Pazina zilizonse, payenera kukhala kuchulukitsidwa kwa mapu kapena zina zofananira.

Mukasaka Google Docs kuti mudziwe zambiri za izi, mwachiyembekezo mudzalozedwerako komwe mungapite ku BigTable ndi BigQuery. Komabe, mayankho onsewa amatsagana ndi zolemba zambiri zamakampani zomwe mungabwererenso ndikuyamba kuyang'ana zina.

Chinthu chomaliza chomwe mukufuna ndi nkhokwe yeniyeni ndi chinthu chopangidwa ndi anthu omwe ali pamiyeso yolipira.

(*) Ichi ndi nthabwala, palibe 100% yogwirizana ndi JSON.

Pa Ufulu Wotsatsa

Kuyang'ana VDS pakukonza ma projekiti, seva yachitukuko ndi kuchititsa? Ndinu kasitomala wathu 🙂 Mitengo yatsiku ndi tsiku ya ma seva osiyanasiyana masinthidwe, anti-DDoS ndi malayisensi a Windows akuphatikizidwa kale pamtengo.

Database iyi yayaka moto ...

Source: www.habr.com

Kuwonjezera ndemanga