Cov ntaub ntawv no yog hluav taws kub ...

Cov ntaub ntawv no yog hluav taws kub ...

Cia kuv qhia ib zaj dab neeg.

Ntau xyoo dhau los, kuv tab tom tsim ib daim ntawv thov nrog kev sib koom ua ke ua rau nws. Nws yog ib pawg neeg siv khoom siv sim ua kom zoo dua ntawm tag nrho cov peev xwm ntawm React thaum ntxov thiab CouchDB. Nws synchronized cov ntaub ntawv hauv lub sijhawm ntawm JSON OT. Nws tau siv sab hauv hauv lub tuam txhab, tab sis nws txoj kev siv dav dav thiab muaj peev xwm hauv lwm qhov chaw tau pom tseeb.

Thaum sim muag cov thev naus laus zis no rau cov neeg siv khoom muaj peev xwm, peb tau ntsib qhov teeb meem tsis txaus ntseeg. Hauv cov yeeb yaj kiab demo, peb cov thev naus laus zis tau saib thiab ua haujlwm zoo, tsis muaj teeb meem nyob ntawd. Cov vis dis aus tau qhia meej tias nws ua haujlwm li cas thiab tsis tau ua dab tsi. Peb tuaj nrog thiab coded qhov tseeb scenario rau siv qhov kev pab cuam.

Cov ntaub ntawv no yog hluav taws kub ...
Qhov tseeb, qhov no tau los ua qhov teeb meem. Peb demo ua haujlwm raws nraim li txhua tus neeg simulated lawv daim ntawv thov. Tshwj xeeb, cov ntaub ntawv tau hloov pauv tam sim ntawm A mus rau B, txawm tias nws yog cov ntaub ntawv xov xwm loj. Tom qab nkag rau hauv, txhua tus neeg siv pom cov ntawv nkag tshiab. Siv daim ntawv thov, cov neeg siv sib txawv tuaj yeem ua haujlwm ua ke kom pom tseeb ntawm tib txoj haujlwm, txawm tias kev sib txuas hauv Is Taws Nem cuam tshuam rau qee qhov hauv lub zos. Qhov no yog implicitly implied nyob rau hauv tej yam khoom video txiav nyob rau hauv After Effects.

Txawm hais tias txhua tus paub tias lub pob Refresh yog dab tsi, tsis muaj leej twg nkag siab tias lub vev xaib lawv thov kom peb tsim yog feem ntau raug rau lawv tus kheej cov kev txwv. Thiab yog tias lawv tsis xav tau lawm, cov neeg siv kev paub yuav txawv kiag li. Lawv feem ntau pom tias lawv tuaj yeem "sib tham" los ntawm kev sau ntawv rau cov neeg uas lawv tham nrog, yog li lawv xav tias qhov no txawv li cas, piv txwv li, Slack. Pheej!

Tsim cov syncs txhua hnub

Yog tias koj muaj kev paub dhau los hauv kev txhim kho software, nws yuav tsum ua rau muaj kev ntxhov siab kom nco ntsoov tias cov neeg feem coob tsis tuaj yeem saib daim duab ntawm lub interface thiab nkag siab tias nws yuav ua li cas thaum cuam tshuam nrog nws. Tsis txhob hais dab tsi tshwm sim hauv qhov program nws tus kheej. Paub tias tau Qhov tshwm sim feem ntau yog qhov tshwm sim ntawm kev paub txog dab tsi tshwm sim tsis tuaj yeem tshwm sim thiab dab tsi yuav tsum tsis tshwm sim. Qhov no yuav tsum tau kev xav qauv tsis tsuas yog qhov software ua li cas, tab sis kuj yuav ua li cas nws cov khoom sib koom ua ke thiab sib txuas lus nrog ib leeg.

Ib qho piv txwv classic ntawm qhov no yog tus neeg siv ntsia ntawm a spinner.gif, xav tias thaum kawg txoj haujlwm yuav ua tiav. Tus tsim tawm yuav pom tau hais tias cov txheej txheem yog zaum daig thiab tias gif yuav tsis ploj ntawm qhov screen. Qhov kev ua yeeb yam no simulates qhov ua tiav ntawm txoj haujlwm, tab sis tsis cuam tshuam nrog nws lub xeev. Hauv cov xwm txheej zoo li no, qee cov techies nyiam dov lawv ob lub qhov muag, xav tsis thoob ntawm cov neeg siv tsis meej pem. Txawm li cas los xij, pom pes tsawg ntawm lawv taw tes rau lub moos tig thiab hais tias nws nyob ruaj khov?

Cov ntaub ntawv no yog hluav taws kub ...
Qhov no yog qhov tseem ceeb ntawm tus nqi tiag tiag. Niaj hnub no, cov ntaub ntawv ntawm lub sijhawm tiag tiag tseem siv tsawg heev thiab ntau tus neeg saib lawv nrog kev ua xyem xyav. Feem ntau ntawm cov databases lean hnyav rau ntawm NoSQL style, uas yog vim li cas lawv feem ntau siv Mongo-raws li kev daws teeb meem, uas yog qhov zoo tshaj plaws tsis nco qab. Txawm li cas los xij, rau kuv qhov no txhais tau tias tau txais kev ua haujlwm zoo nrog CouchDB, nrog rau kev kawm tsim cov qauv uas ntau dua li qee qhov chaw ua haujlwm tuaj yeem sau cov ntaub ntawv. Kuv xav tias kuv siv kuv lub sijhawm zoo dua.

Tab sis lub ntsiab lus tiag tiag ntawm cov ncej no yog qhov kuv tab tom siv niaj hnub no. Tsis yog los ntawm kev xaiv, tab sis vim yog qhov tsis txaus ntseeg thiab tsis pom kev siv cov cai tswj hwm kev lag luam. Yog li kuv mam li muab qhov Kev Ncaj Ncees Ncaj Ncees thiab Tsis Ncaj Ncees sib piv ntawm ob qhov ze ze ntawm Google cov khoom siv hauv lub sijhawm.

Cov ntaub ntawv no yog hluav taws kub ...
Ob leeg muaj lo lus Hluav Taws hauv lawv lub npe. Ib yam uas kuv nco qab fondly. Qhov thib ob rau kuv yog hom hluav taws sib txawv. Kuv tsis maj hais lawv cov npe, vim tias ib zaug kuv ua, peb yuav khiav mus rau thawj qhov teeb meem loj: npe.

Thawj tus hu ua Firebase Real-Time Database, thiab ob - Firebase Huab Firestore. Ob leeg yog cov khoom los ntawm Firebase suite Google. Lawv APIs raug hu ua feem firebase.database(…) ΠΈ firebase.firestore(…).

Qhov no tshwm sim vim Real-Time Database - nws tsuas yog qhov qub Firebase ua ntej nws yuav los ntawm Google hauv 2014. Tom qab ntawd Google txiav txim siab los tsim raws li cov khoom sib txuas daim ntawv theej Firebase raws li lub tuam txhab cov ntaub ntawv loj, thiab hu nws Firestore nrog huab. Kuv vam tias koj tseem tsis meej pem. Yog hais tias koj tseem tsis meej pem, tsis txhob txhawj, kuv tus kheej rov sau ib feem ntawm tsab xov xwm kaum zaug.

Vim koj yuav tsum qhia Firebase hauv cov lus nug Firebase, thiab Hluav taws kub nyob rau hauv ib lo lus nug txog Firebase, tsawg kawg kom koj nkag siab ob peb xyoos dhau los ntawm Stack Overflow.

Yog tias muaj qhov khoom plig rau qhov phem tshaj plaws software npe kev paub, qhov no yuav yog ib qho ntawm cov neeg sib tw. Lub Hamming nrug ntawm cov npe no me me uas nws tsis meej pem txawm tias cov kws paub txog engineers uas tus ntiv tes ntaus ib lub npe thaum lawv lub taub hau xav txog lwm tus. Cov no yog cov phiaj xwm zoo uas ua tsis tau zoo; lawv ua tiav cov lus faj lem uas cov ntaub ntawv yuav raug hluav taws. Thiab kuv tsis kidding kiag li. Tus neeg uas tuaj nrog lub npe no ua rau ntshav, hws thiab kua muag.

Cov ntaub ntawv no yog hluav taws kub ...

Pyrrhic yeej

Ib tug yuav xav tias Firestore yog hloov Firebase, nws cov xeeb leej xeeb ntxwv tom ntej, tab sis qhov ntawd yuav yog kev dag ntxias. Firestore tsis tau lees tias yog qhov tsim nyog hloov pauv rau Firebase. Nws zoo li ib tug neeg txiav tawm txhua yam nthuav tawm ntawm nws, thiab tsis meej pem feem ntau ntawm cov so hauv ntau txoj kev.

Txawm li cas los xij, qhov nrawm nrawm ntawm ob yam khoom yuav ua rau koj tsis meej pem: lawv zoo li ua tib yam, los ntawm qhov pib ntawm tib APIs thiab txawm nyob hauv tib lub rooj sib tham. Qhov sib txawv yog hloov maj mam thiab tsuas yog qhia los ntawm kev ua tib zoo kawm sib piv ntawm cov ntaub ntawv dav dav. Los yog thaum koj tab tom sim chaw nres nkoj code uas ua haujlwm zoo kawg nkaus ntawm Firebase kom nws ua haujlwm nrog Firestore. Txawm tias tom qab ntawd koj pom tias cov ntaub ntawv sib txuas teeb pom kev sai li sai tau thaum koj sim rub thiab poob nrog tus nas hauv lub sijhawm. Kuv rov hais dua, kuv tsis tso dag.

Tus neeg siv khoom Firebase yog neeg ncaj ncees nyob rau hauv qhov kev txiav txim siab tias nws tsis hloov pauv thiab rov ua dua tshiab uas muab qhov tseem ceeb rau kev sau ntawv kawg. Txawm li cas los xij, Firestore muaj qhov txwv ntawm 1 sau ua haujlwm rau ib daim ntawv rau ib tus neeg siv ib ob, thiab qhov txwv no yog tswj hwm los ntawm tus neeg rau zaub mov. Thaum ua haujlwm nrog nws, nws yog nyob ntawm koj txhawm rau nrhiav txoj hauv kev nyob ib puag ncig nws thiab siv qhov hloov tshiab tus nqi txwv, txawm tias koj tsuas yog sim tsim koj daim ntawv thov. Ntawd yog, Firestore yog lub sijhawm tiag tiag database tsis muaj tus neeg siv khoom tiag tiag, uas ua rau ib tus siv API.

Ntawm no peb pib pom thawj cov cim ntawm Firestore raison d'Γͺtre. Tej zaum kuv yuav yuam kev, tab sis kuv xav tias ib tug neeg siab hauv Google txoj kev tswj xyuas saib Firebase tom qab kev yuav khoom thiab tsuas hais tias, β€œTsis yog, Au kuv tus Vajtswv, tsis yog. Qhov no yog qhov tsis txaus ntseeg. Tsuas yog tsis nyob hauv kuv kev coj noj coj ua. "

Cov ntaub ntawv no yog hluav taws kub ...
Nws tshwm sim los ntawm nws lub tsev thiab tshaj tawm tias:

β€œIb daim ntawv loj JSON? Tsis muaj. Koj yuav faib cov ntaub ntawv rau hauv cov ntaub ntawv sib cais, txhua qhov yuav tsis ntau tshaj 1 megabyte loj. "

Nws zoo nkaus li tias qhov kev txwv no yuav tsis muaj sia nyob rau thawj zaug ntsib nrog cov neeg siv kev txhawb siab txaus. Koj paub nws yog. Hauv kev ua haujlwm, piv txwv li, peb muaj ntau tshaj li ib thiab ib nrab txhiab qhov kev nthuav qhia, thiab qhov no yog Li Cas.

Nrog rau qhov kev txwv no, koj yuav raug yuam kom lees txais qhov tseeb tias ib qho "cov ntaub ntawv" hauv cov ntaub ntawv yuav tsis zoo li ib yam khoom uas tus neeg siv yuav hu rau ib daim ntawv.

"Arrays ntawm arrays uas tuaj yeem recursively muaj lwm cov ntsiab lus? Tsis muaj. Arrays yuav tsuas muaj cov khoom ntev ntev lossis cov lej, raws li Vajtswv tau npaj tseg. "

Yog li yog tias koj vam tias yuav tso GeoJSON rau hauv koj lub Firestore, koj yuav pom tias qhov no tsis tuaj yeem ua tau. Tsis muaj ib yam dab tsi uas tsis yog ib-dimensional yog txais. Kuv vam tias koj nyiam Base64 thiab / lossis JSON hauv JSON.

"JSON ntshuam thiab xa tawm ntawm HTTP, cov cuab yeej kab hais kom ua lossis pawg tswj hwm? Tsis muaj. Koj tsuas tuaj yeem xa tawm thiab xa cov ntaub ntawv mus rau Google Cloud Storage. Qhov ntawd yog qhov nws hu ua tam sim no, kuv xav. Thiab thaum kuv hais "koj," Kuv tsuas yog hais rau cov uas muaj Daim Ntawv Pov Thawj Tus Tswv Cuab. Txhua tus neeg tuaj yeem mus thiab tsim daim pib. "

Raws li koj tuaj yeem pom, FireBase cov ntaub ntawv qauv yooj yim piav qhia. Nws muaj ib daim ntawv loj loj JSON uas koom nrog JSON yuam sij nrog URL kab. Yog koj sau nrog HTTP PUT Π² / FireBase yog cov hauv qab no:

{
  "hello": "world"
}

Lub GET /hello yuav rov qab los "world". Yeej nws ua haujlwm raws nraim li koj xav tau. Sau cov khoom FireBase /my-collection/:id sib npaug rau JSON phau ntawv txhais lus {"my-collection": {...}} hauv paus, cov ntsiab lus uas muaj nyob rau hauv /my-collection:

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

Qhov no ua haujlwm zoo yog tias txhua qhov ntxig muaj qhov sib tsoo-dawb ID, uas lub kaw lus muaj cov qauv kev daws teeb meem rau.

Hauv lwm lo lus, lub database yog 100% JSON(*) tau tshaj thiab ua haujlwm zoo nrog HTTP, xws li CouchDB. Tab sis qhov yooj yim koj siv nws los ntawm lub sijhawm tiag tiag API uas nthuav tawm websockets, kev tso cai, thiab kev tso npe. Lub vaj huam sib luag admin muaj ob lub peev xwm, tso cai rau ob qho tib si hloov kho lub sijhawm thiab JSON ntshuam / xa tawm. Yog tias koj ua tib yam hauv koj cov cai, koj yuav xav tsis thoob tias ntau npaum li cas cov cai tshwj xeeb yuav raug pov tseg thaum koj paub tias thaj thiab qhov sib txawv JSON daws 90% ntawm cov haujlwm niaj hnub ntawm kev tuav lub xeev tsis tu ncua.

Tus qauv Firestore cov ntaub ntawv zoo ib yam li JSON, tab sis txawv ntawm qee qhov tseem ceeb. Kuv twb hais txog qhov tsis muaj arrays hauv arrays. Tus qauv rau cov khoom sib sau ua ke yog rau lawv ua thawj chav kawm, cais los ntawm JSON cov ntaub ntawv uas muaj lawv. Txij li tsis muaj kev npaj ua serialization rau qhov no, yuav tsum muaj txoj hauv kev tshwj xeeb kom khaws thiab sau cov ntaub ntawv. Txhawm rau ua koj tus kheej cov ntawv sau, koj yuav tsum sau koj tus kheej cov ntawv sau thiab cov cuab yeej. Lub vaj huam sib luag admin tsuas yog tso cai rau koj hloov pauv me me ib daim teb ib zaug, thiab tsis muaj peev xwm ntshuam / xa tawm.

Lawv tau siv lub sijhawm tiag tiag NoSQL database thiab muab nws mus rau hauv qeeb tsis yog SQL nrog nws pib koom thiab cais tsis yog-JSON kem. Ib yam li GraftQL.

Cov ntaub ntawv no yog hluav taws kub ...

Kub Java

Yog tias Firestore yuav tsum ua kom ntseeg tau ntau dua thiab ua kom muaj peev xwm, ces qhov tsis txaus ntseeg yog qhov nruab nrab tus tsim tawm yuav xaus nrog kev daws teeb meem tsawg dua li xaiv FireBase tawm ntawm lub thawv. Hom software uas Grumpy Database Administrator xav tau ib theem ntawm kev rau siab thiab caliber ntawm cov txuj ci uas tsuas yog unrealistic rau lub niche cov khoom yuav tsum tau zoo nyob rau hauv. Qhov no zoo ib yam li yuav ua li cas HTML5 Canvas tsis yog hloov rau Flash tag nrho yog tias tsis muaj cov cuab yeej tsim kho thiab cov neeg ua si. Ntxiv mus, Firestore yog mired nyob rau hauv lub siab xav rau cov ntaub ntawv purity thiab sterile validation uas tsuas yog tsis ua raws li qhov nruab nrab cov neeg siv kev lag luam. nyiam ua haujlwm: rau nws txhua yam yog xaiv tau, vim hais tias mus txog rau thaum kawg txhua yam yog ib daim qauv.

Lub ntsiab qhov tsis zoo ntawm FireBase yog tias tus neeg siv khoom tau tsim ntau xyoo ua ntej nws lub sijhawm, ua ntej cov neeg tsim tawm hauv web feem ntau paub txog kev hloov tsis tau. Vim li no, FireBase xav tias koj yuav hloov cov ntaub ntawv thiab yog li ntawd tsis siv qhov zoo ntawm cov neeg siv kev hloov pauv. Tsis tas li ntawd, nws tsis rov siv cov ntaub ntawv hauv snapshots nws kis mus rau tus neeg siv, uas ua rau muaj kev sib txawv ntau nyuaj. Rau cov ntaub ntawv loj, nws qhov kev hloov pauv hloov pauv raws li kev lag luam yog qhov tsis txaus. Cov txiv neej, peb twb muaj WeakMap hauv JavaScript. Nws yooj yim.

Yog tias koj muab cov ntaub ntawv xav tau thiab tsis ua kom cov ntoo tsis dhau voluminous, ces qhov teeb meem no tuaj yeem hla. Tab sis kuv xav paub yog tias FireBase yuav nthuav ntau dua yog tias cov neeg tsim tawm tso tawm tus neeg siv khoom zoo tiag tiag API uas siv cov kev hloov pauv tsis tau ua ke nrog qee cov lus qhia tseem ceeb ntawm kev tsim database. Hloov chaw, lawv zoo li sim kho qhov tsis tawg, thiab qhov ntawd ua rau nws tsis zoo.

Kuv tsis paub tag nrho cov logic tom qab tsim Firestore. Kev kwv yees txog cov kev xav uas tshwm sim hauv lub thawv dub kuj yog ib feem ntawm kev lom zem. Qhov kev sib txuas ntawm ob qhov zoo sib xws tab sis incomparable databases yog qhov tsawg heev. Nws zoo li ib tug neeg xav tias: "Firebase tsuas yog ib qho haujlwm uas peb tuaj yeem ua raws hauv Google Huab", tab sis tseem tsis tau pom lub tswv yim ntawm kev txheeb xyuas cov kev xav tau tiag tiag hauv ntiaj teb lossis tsim cov kev daws teeb meem muaj txiaj ntsig uas ua tau raws li tag nrho cov kev xav tau. β€œCia cov neeg tsim khoom xav txog nws. Tsuas yog ua kom UI zoo nkauj ... Koj puas tuaj yeem ntxiv hluav taws ntxiv?

Kuv nkag siab ob peb yam ntawm cov ntaub ntawv qauv. Kuv twv yuav raug hu pom "txhua yam hauv ib tsob ntoo loj JSON" lub tswv yim raws li kev sim ua kom pom qhov kev nkag siab ntawm cov qauv loj los ntawm cov ntaub ntawv. Cia siab tias software yuav yooj yim daws nrog cov ntaub ntawv tsis txaus ntseeg cov qauv fractal tsuas yog vwm. Kuv tsis tas yuav xav txog tej yam phem yuav ua li cas, kuv tau ua nruj me ntsis kev soj ntsuam thiab Kuv pom tej yam uas nej cov neeg yeej tsis npau suav txog. Tab sis kuv kuj paub tias cov qauv zoo li cas, siv lawv li cas ΠΈ vim li cas yuav tsum ua li no. Kuv tuaj yeem xav txog lub ntiaj teb uas Firestore yuav zoo li muaj laj thawj thiab cov neeg uas tsim nws yuav xav tias lawv tau ua haujlwm zoo. Tiamsis peb tsis nyob hauv ntiajteb no.

FireBase cov lus nug kev txhawb nqa tsis zoo los ntawm txhua tus qauv thiab yog xyaum tsis muaj nyob. Nws yeej xav tau kev txhim kho lossis tsawg kawg kev kho dua tshiab. Tab sis Firestore tsis zoo dua vim tias nws txwv rau tib qhov kev ntsuas ib ntus pom hauv SQL dawb. Yog tias koj xav tau cov lus nug uas tib neeg khiav ntawm cov ntaub ntawv chaotic, koj xav tau kev tshawb nrhiav cov ntawv nyeem, ntau cov ntxaij lim dej, thiab cov neeg siv kev cai txiav txim. Raws li kev soj ntsuam ze dua, cov haujlwm ntawm SQL dawb tsuas txwv rau lawv tus kheej. Tsis tas li ntawd, tib cov lus nug SQL tib neeg tuaj yeem khiav hauv kev tsim khoom yog cov lus nug ceev. Koj yuav xav tau cov kev cai indexing kev daws teeb meem nrog cov ntaub ntawv xav tau cov qauv. Rau txhua yam ntxiv, yuav tsum muaj tsawg kawg yog incremental map-txo lossis qee yam zoo sib xws.

Yog tias koj tshawb nrhiav Google Docs rau cov ntaub ntawv hais txog qhov no, koj yuav cia siab tias yuav tau taw qhia rau qee yam xws li BigTable thiab BigQuery. Txawm li cas los xij, tag nrho cov kev daws teeb meem no yog nrog los ntawm cov neeg lag luam muag khoom ntau heev uas koj yuav tig rov qab sai sai thiab pib nrhiav lwm yam.

Qhov kawg uas koj xav tau nrog lub sijhawm tiag tiag database yog ib yam dab tsi ua los ntawm thiab rau cov neeg ntawm kev tswj hwm cov nqi them.

(*) Qhov no yog lus dag, tsis muaj dab tsi li 100% JSON tau tshaj.

Rau Txoj Cai Kev Tshaj Tawm

Nrhiav Vds rau debugging tej yaam num, ib tug neeg rau zaub mov rau kev loj hlob thiab hosting? Koj yog peb cov neeg siv khoom tiag tiag πŸ™‚ Tus nqi txhua hnub rau cov servers ntawm ntau qhov kev teeb tsa, kev tiv thaiv DDoS thiab Windows cov ntawv tso cai twb suav nrog tus nqi.

Cov ntaub ntawv no yog hluav taws kub ...

Tau qhov twg los: www.hab.com

Ntxiv ib saib