Wannan ma'ajin bayanai yana cin wuta...

Wannan ma'ajin bayanai yana cin wuta...

Bari in ba da labarin fasaha.

Shekaru da yawa da suka gabata, ina haɓaka aikace-aikacen tare da fasalin haɗin gwiwar da aka gina a ciki. Tarin gwajin abokantaka ne na mai amfani wanda ya yi amfani da cikakkiyar damar farkon React da CouchDB. Ya daidaita bayanai a ainihin lokacin ta hanyar JSON OT. An yi amfani da shi a cikin gida a cikin kamfanin, amma faffadar amfaninsa da yuwuwar sa a wasu yankuna ya bayyana.

Yayin ƙoƙarin sayar da wannan fasaha ga abokan ciniki, mun ci karo da cikas da ba zato ba tsammani. A cikin bidiyon demo, fasaharmu ta duba kuma tayi aiki mai girma, babu matsala a can. Bidiyon ya nuna daidai yadda yake aiki kuma bai yi koyi da komai ba. Mun fito da kuma sanya lamba ta zahiri don amfani da shirin.

Wannan ma'ajin bayanai yana cin wuta...
A gaskiya, wannan ya zama matsala. Mu demo yayi aiki daidai yadda kowa ya kwaikwayi aikace-aikacen su. Musamman, ana canja wurin bayanai nan take daga A zuwa B, koda manyan fayilolin mai jarida ne. Bayan shiga, kowane mai amfani ya ga sabbin shigarwar. Yin amfani da aikace-aikacen, masu amfani daban-daban zasu iya aiki tare a fili akan ayyukan iri ɗaya, koda an katse haɗin Intanet a wani wuri a ƙauyen. Wannan yana fitowa a fakaice a kowane yanke bidiyon samfurin a Bayan Tasirin.

Ko da yake kowa ya san abin da maɓallin Refresh yake don, babu wanda ya fahimci cewa aikace-aikacen yanar gizon da suka nemi mu gina yawanci suna ƙarƙashin iyakokin kansu. Kuma cewa idan ba a buƙatar su, ƙwarewar mai amfani za ta bambanta gaba ɗaya. Yawancin sun lura cewa za su iya "tattaunawa" ta hanyar barin bayanin kula ga mutanen da suke magana da su, don haka suna mamakin yadda wannan ya bambanta da, misali, Slack. Phew!

Zane na syncs na yau da kullun

Idan kuna da gogewa a cikin haɓaka software, dole ne ya zama abin ban tsoro don tunawa cewa yawancin mutane ba za su iya kallon hoton abin mu'amala kawai da fahimtar abin da zai yi yayin mu'amala da shi ba. Ba a ma maganar abin da ke faruwa a cikin shirin kansa ba. Sanin haka iya faruwa mafi yawa sakamakon sanin abin da ba zai iya faruwa da abin da bai kamata ya faru ba. Wannan yana bukata shafi tunanin mutum model ba kawai abin da software ke yi ba, har ma da yadda ake haɗa sassanta guda ɗaya da sadarwa tare da juna.

Misalin al'ada na wannan shine mai amfani yana kallon a gizo-gizo.gif, yana mamakin lokacin da aikin zai ƙare. Mai haɓakawa zai gane cewa ƙila tsarin ya makale kuma gif ɗin ba zai taɓa ɓacewa daga allon ba. Wannan raye-rayen yana kwaikwayon aiwatar da aikin, amma ba shi da alaƙa da yanayinsa. A irin waɗannan lokuta, wasu techies suna son murɗa idanu, suna mamakin girman ruɗin mai amfani. Duk da haka, ka lura da yawa daga cikinsu suna nuna agogon da ke jujjuya kuma sun ce a zahiri a tsaye yake?

Wannan ma'ajin bayanai yana cin wuta...
Wannan shine ainihin ƙimar ainihin lokacin. A kwanakin nan, har yanzu ba a yi amfani da bayanan ainihin-lokaci ba kuma mutane da yawa suna kallon su da zato. Yawancin waɗannan ma'ajin bayanai sun dogara sosai ga salon NoSQL, wanda shine dalilin da ya sa sukan yi amfani da mafita na tushen Mongo, wanda aka fi mantawa da su. Koyaya, a gare ni wannan yana nufin samun kwanciyar hankali tare da aiki tare da CouchDB, da kuma koyon ƙirar ƙirar da fiye da kawai wasu bureaucrat na iya cika da bayanai. Ina tsammanin ina amfani da lokacina da kyau.

Amma ainihin batun wannan sakon shine abin da nake amfani da shi a yau. Ba ta zaɓi ba, amma saboda rashin ko in kula da manufofin kamfanoni masu makanta. Don haka zan samar da kwatankwacin adalci da rashin son kai na samfuran bayanai na ainihin lokacin Google guda biyu masu alaƙa.

Wannan ma'ajin bayanai yana cin wuta...
Dukansu suna da kalmar Wuta. Abu daya nake tunawa da dadi. Abu na biyu a gare ni shi ne nau'in wuta daban. Ba na gaggawar fadi sunayensu, domin da zarar na yi, za mu ci karo da babbar matsala ta farko: suna.

Ana kiran na farko Database na Real-Time Firebase, da na biyu - Firebase Cloud Firestore. Dukansu samfurori ne daga Firebase suite Google. APIs ɗin su ana kiran su bi da bi firebase.database(…) и firebase.firestore(…).

Wannan ya faru ne saboda Real-Time Database - asali ne kawai Firebase kafin siyan sa ta Google a cikin 2014. Sannan Google ya yanke shawarar ƙirƙira a matsayin samfur mai daidaitacce kwafi Firebase bisa babban kamfanin bayanai, kuma ya kira shi Firestore tare da gajimare. Ina fata har yanzu ba ku ruɗe ba. Idan har yanzu kuna cikin ruɗani, kada ku damu, ni kaina na sake rubuta wannan ɓangaren labarin sau goma.

Domin kana bukatar ka nuna Firebase a cikin tambayar Firebase, kuma Wuta a cikin tambaya game da Firebase, aƙalla don fahimtar da ku ƴan shekaru da suka gabata akan Stack Overflow.

Idan akwai lambar yabo don mafi munin ƙwarewar suna, wannan tabbas zai zama ɗaya daga cikin masu fafatawa. Tazarar Hamming tsakanin wadannan sunaye kadan ne wanda hakan ke rudar hatta gogaggun injiniyoyi wadanda yatsunsu ke rubuta suna daya yayin da kawunansu ke tunanin wani. Waɗannan tsare-tsare ne na ingantacciyar niyya waɗanda suka gaza sosai; sun cika annabcin cewa rumbun adana bayanai za su ci wuta. Kuma ko kadan ba wasa nake yi ba. Wanda ya zo da wannan makircin suna ya haifar da jini, gumi da hawaye.

Wannan ma'ajin bayanai yana cin wuta...

Nasarar Pyrrhic

Mutum zai yi tunanin cewa Firestore ne canji Firebase, zuriyarsa na gaba, amma hakan zai zama yaudara. Firestore bashi da garantin zama madaidaicin maye gurbin Firebase. Ga alama wani ya yanke duk wani abu mai ban sha'awa daga gare ta, kuma ya rikitar da yawancin sauran ta hanyoyi daban-daban.

Koyaya, kallo mai sauri akan samfuran biyu na iya rikitar da ku: suna da alama suna yin abu ɗaya ne, ta asali iri ɗaya APIs har ma a cikin zaman bayanai iri ɗaya. Bambance-bambancen suna da dabara kuma ana bayyana su ne kawai ta hanyar nazarin kwatancen bayanai masu yawa. Ko kuma lokacin da kake ƙoƙarin shigar da lambar tashar jiragen ruwa wanda ke aiki daidai akan Firebase don ya yi aiki tare da Firestore. Ko da a lokacin za ka gano cewa rumbun adana bayanai yana haskakawa da zarar ka yi ƙoƙarin ja da sauke da linzamin kwamfuta a ainihin lokacin. Ina maimaita, ba wasa nake ba.

Abokin ciniki na Firebase yana da ladabi ta ma'anar cewa yana ɓoye canje-canje kuma ta atomatik yana sake sabunta sabuntawa waɗanda ke ba da fifiko ga aikin rubutu na ƙarshe. Koyaya, Firestore yana da iyakacin aiki na rubutu 1 akan kowane takaddar kowane mai amfani a sakan daya, kuma uwar garken tana aiwatar da wannan iyaka. Lokacin aiki da shi, ya rage naka don nemo hanyar da ke kewaye da shi da aiwatar da iyakance ƙimar sabuntawa, koda lokacin da kawai kake ƙoƙarin gina aikace-aikacen ku. Wato, Firestore rumbun adana bayanai ne na lokaci-lokaci ba tare da abokin ciniki na lokaci-lokaci ba, wanda ke yin kama da wanda ke amfani da API.

Anan zamu fara ganin alamun farko na Firestore's raison d'être. Zan iya yin kuskure, amma ina zargin cewa wani babba a cikin gudanarwar Google ya kalli Firebase bayan siyan kuma kawai ya ce, “A’a, ya Allahna, a’a. Wannan ba abin yarda ba ne. Ba wai a karkashin jagorancina ba."

Wannan ma'ajin bayanai yana cin wuta...
Ya fito daga dakinsa ya ce:

“Babban takaddar JSON guda ɗaya? A'a. Za ku raba bayanan zuwa takardu daban-daban, kowannensu ba zai wuce megabyte 1 ba a girmansa."

Da alama irin wannan iyakancewa ba zai tsira daga karon farko tare da duk wani isasshiyar tushen mai amfani ba. Kun san haka ne. A wurin aiki, alal misali, muna da gabatarwa fiye da dubu ɗaya da rabi, kuma wannan cikakke ne na al'ada.

Tare da wannan ƙayyadaddun, za a tilasta muku yarda da gaskiyar cewa "takardun" ɗaya a cikin ma'ajin bayanai ba zai yi kama da kowane abu da mai amfani zai iya kiran takarda ba.

"Tsarin tsararraki waɗanda za su iya ƙunsar da wasu abubuwa akai-akai? A'a. Tsare-tsaren za su ƙunshi tsayayyen abubuwa ko lambobi kawai, kamar yadda Allah ya nufa."

Don haka idan kuna fatan sanya GeoJSON a cikin Firestore ku, zaku ga cewa wannan ba zai yiwu ba. Babu wani abu mara girman kai da aka yarda. Ina fatan kuna son Base64 da/ko JSON a cikin JSON.

"Shigo da fitarwa JSON ta hanyar HTTP, kayan aikin layin umarni ko kwamitin gudanarwa? A'a. Za ku iya fitarwa da shigo da bayanai kawai zuwa Google Cloud Storage. Abin da ake kira shi ke nan, ina tsammanin. Kuma lokacin da na ce "kai," Ina magana ne kawai ga waɗanda ke da takaddun shaidar Mallakin Project. Kowa zai iya zuwa ya ƙirƙiri tikiti."

Kamar yadda kake gani, samfurin bayanan FireBase yana da sauƙin kwatanta. Ya ƙunshi babbar takardar JSON guda ɗaya wacce ke haɗa maɓallan JSON tare da hanyoyin URL. Idan ka rubuta da HTTP PUT в / FireBase shine mai zuwa:

{
  "hello": "world"
}

A GET /hello zai dawo "world". Ainihin yana aiki daidai kamar yadda kuke tsammani. Tarin abubuwan FireBase /my-collection/:id daidai da ƙamus na JSON {"my-collection": {...}} a cikin tushen, abubuwan da ke ciki suna samuwa a ciki /my-collection:

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

Wannan yana aiki da kyau idan kowane abin da aka saka yana da ID ɗin da ba shi da karo, wanda tsarin yana da daidaitaccen bayani don.

A takaice dai, bayanan bayanan sun dace da 100% JSON(*) kuma suna aiki da kyau tare da HTTP, kamar CouchDB. Amma a zahiri kuna amfani da shi ta hanyar API na ainihin-lokaci wanda ke ɓoye shafukan yanar gizo, izini, da biyan kuɗi. Kwamitin gudanarwa yana da damar duka biyu, yana ba da damar gyarawa na lokaci-lokaci da shigo da / fitarwa JSON. Idan kuka yi haka a cikin lambar ku, za ku yi mamakin yadda lambar musamman za ta ɓata lokacin da kuka gane cewa faci da ɓata JSON yana warware kashi 90% na ayyukan yau da kullun na sarrafa halin dagewa.

Samfurin bayanan Firestore yayi kama da JSON, amma ya bambanta ta wasu hanyoyi masu mahimmanci. Na riga na ambata rashin tsararraki a cikin tsararraki. Samfurin ƙananan tarin shine a gare su su zama ra'ayoyi na aji na farko, daban da takaddun JSON da ke ɗauke da su. Tunda babu shirye-shiryen serialization don wannan, ana buƙatar hanyar lamba ta musamman don dawo da rubuta bayanai. Don aiwatar da tarin ku, kuna buƙatar rubuta rubutun ku da kayan aikin ku. Kwamitin gudanarwa kawai yana ba ku damar yin ƙananan canje-canje a wuri ɗaya a lokaci ɗaya, kuma ba shi da damar shigo da / fitarwa.

Sun ɗauki bayanan NoSQL na ainihi kuma sun mai da shi a hankali wanda ba SQL ba tare da haɗin kai da kuma keɓantaccen shafi wanda ba na JSON ba. Wani abu kamar GraftQL.

Wannan ma'ajin bayanai yana cin wuta...

Java mai zafi

Idan Firestore ya kamata ya zama mafi aminci da ƙima, to, abin mamaki shine cewa matsakaicin mai haɓakawa zai ƙare tare da mafi ƙarancin abin dogara fiye da zaɓar FireBase daga cikin akwatin. Irin software ɗin da Grumpy Database Administrator ke buƙata yana buƙatar matakin ƙoƙari da ƙima na hazaka wanda ba shi da haƙiƙa ga alkukin da samfur ɗin ya kamata ya yi kyau a kai. Wannan yayi kama da yadda HTML5 Canvas baya maye gurbin Flash kwata-kwata idan babu kayan aikin haɓakawa da mai kunnawa. Haka kuma, Firestore ya shiga cikin sha'awar tsaftar bayanai da ingantaccen inganci wanda kawai bai dace da yadda matsakaicin mai amfani da kasuwanci ba. yana son yin aiki: a gare shi komai na tilas ne, domin har zuwa karshen komai daftari ne.

Babban hasara na FireBase shine cewa an ƙirƙiri abokin ciniki shekaru da yawa kafin lokacinsa, kafin yawancin masu haɓaka gidan yanar gizon su san game da rashin iya canzawa. Saboda wannan, FireBase yana ɗauka cewa za ku canza bayanan don haka ba ya cin gajiyar rashin canzawar mai amfani. Bugu da ƙari, ba ya sake yin amfani da bayanan da ke cikin hotunan hotunan da yake kaiwa ga mai amfani, wanda ke sa bambanci ya fi wahala. Don manyan takardu, tsarin mu'amalar sa wanda zai iya canzawa bai isa ba. Jama'a, mun riga mun samu WeakMap in JavaScript. Yana da dadi.

Idan kun ba da bayanan yadda ake so kuma kada ku sanya bishiyoyi su yi girma sosai, to wannan matsala za a iya kauce masa. Amma ina sha'awar idan FireBase zai zama mafi ban sha'awa idan masu haɓakawa sun fito da API ɗin abokin ciniki na gaske wanda ya yi amfani da rashin iya canzawa tare da wasu shawarwari masu mahimmanci akan ƙirar bayanai. Maimakon haka, kamar suna ƙoƙarin gyara abin da bai lalace ba, kuma hakan ya ƙara tsananta.

Ban san duk mahangar da ke tattare da halittar Firestore ba. Hasashe game da dalilan da suka taso a cikin akwatin baƙar fata shima wani ɓangare ne na nishaɗi. Wannan juxtaposition guda biyu masu kama da juna amma mara misaltuwa yana da wuya. Kamar wani yayi tunani: "Firebase aiki ne kawai wanda zamu iya yin koyi a cikin Google Cloud", amma har yanzu bai gano manufar gano ainihin buƙatun duniya ba ko ƙirƙirar mafita masu amfani waɗanda suka dace da duk waɗannan buƙatun. "Bari masu haɓakawa suyi tunani game da shi. Kawai sanya UI yayi kyau... Za ku iya ƙara ƙarin wuta?”

Na fahimci abubuwa biyu game da tsarin bayanai. Tabbas ina ganin manufar "dukkan abin da ke cikin babban bishiyar JSON" a matsayin ƙoƙari na taƙaita duk wani ma'anar babban tsari daga bayanan bayanai. Tsammanin software don kawai jimre wa duk wani ɓoyayyen tsarin ɓoyayyen bayanai hauka ne kawai. Ba na ma yi tunanin yadda mummunan abubuwa za su iya zama, Na yi rigorous code audits da Na ga abubuwan da ku mutane ba ku yi mafarki ba. Amma na kuma san yadda kyakkyawan tsari yayi kama, yadda ake amfani da su и me zai sa a yi haka. Zan iya tunanin duniyar da Firestore zai yi kama da ma'ana kuma mutanen da suka ƙirƙira za su yi tunanin sun yi aiki mai kyau. Amma ba mu rayuwa a wannan duniyar.

Taimakon tambayar FireBase ba shi da kyau ta kowane ma'auni kuma a zahiri babu shi. Tabbas yana buƙatar haɓakawa ko aƙalla bita. Amma Firestore bai fi kyau ba saboda yana iyakance ga ma'auni guda ɗaya da aka samo a cikin SQL. Idan kuna buƙatar tambayoyin da mutane ke gudana akan bayanan hargitsi, kuna buƙatar bincika cikakken rubutu, masu tacewa da yawa, da ƙayyadaddun tsari na mai amfani na al'ada. Bayan dubawa na kusa, ayyukan SQL na fili suna da iyaka akan nasu. Bugu da ƙari, kawai tambayoyin SQL da mutane za su iya aiki a samarwa su ne tambayoyin sauri. Za ku buƙaci bayani mai ƙididdigewa na al'ada tare da tsarin bayanai masu tunani. Ga kowane abu, aƙalla ya kamata a sami ƙarin taswira-rage ko wani abu makamancin haka.

Idan ka bincika Google Docs don bayani game da wannan, za a yi maka fatan a nuna maka wani abu kamar BigTable da BigQuery. Koyaya, duk waɗannan mafita suna tare da jargon tallace-tallace na kamfanoni masu yawa wanda zaku juya da sauri ku fara neman wani abu dabam.

Abu na ƙarshe da kuke so tare da bayanan bayanan lokaci shine wani abu da aka yi ta kuma ga mutane akan ma'aunin biyan kuɗi na gudanarwa.

(*) Wannan wasa ne, babu wani abu kamar haka 100% JSON jituwa.

Hakoki na Talla

Neman VDS don ayyukan gyara kurakurai, uwar garken don haɓakawa da ɗaukar hoto? Tabbas kai abokin cinikinmu ne 🙂 farashin yau da kullun don sabobin saiti daban-daban, an riga an haɗa lasisin anti-DDoS da Windows a cikin farashin.

Wannan ma'ajin bayanai yana cin wuta...

source: www.habr.com

Add a comment