May ity angona ity...

May ity angona ity...

Avelao aho hilaza tantara ara-teknika.

Taona maro lasa izay, namolavola rindranasa iray aho miaraka amin'ireo endri-piaraha-miasa napetraka ao anatiny. Izy io dia tsangam-panandramana mora ampiasaina izay nanararaotra ny fahafahan'ny React sy CouchDB tany am-boalohany. Nampifanaraka ny angona amin'ny fotoana tena izy amin'ny alàlan'ny JSON OT. Nampiasaina tamin'ny asa anatiny ao amin'ny orinasa izy io, saingy hita mazava ny fampiharana sy ny mety ho an'ny faritra hafa.

Raha nanandrana nivarotra ity teknolojia ity tamin'ireo mpanjifa mety ho azonay izahay, dia nisy sakana tsy nampoizina. Ao amin'ny horonan-tsarimihetsika demo, ny teknolojianay dia nijery sy niasa tsara, tsy nisy olana teo. Nasehon'ilay lahatsary tsara ny fomba fiasan'izy io ary tsy naka tahaka na inona na inona. Namorona sy nanamboatra scenario tena misy izahay amin'ny fampiasana ny programa.

May ity angona ity...
Raha ny marina, izany no lasa olana. Ny demonay dia niasa toy ny nataon'ny olon-kafa rehetra ny fampiharana azy. Amin'ny ankapobeny, nafindra avy hatrany avy any A mankany B ny fampahalalana, na dia rakitra media lehibe aza. Taorian'ny nidirany dia nahita fidirana vaovao ny mpampiasa tsirairay. Amin'ny fampiasana ny fampiharana, ireo mpampiasa samihafa dia afaka miara-miasa mazava tsara amin'ny tetikasa mitovy, na dia misy fifandraisana Internet miato any amin'ny toerana iray ao an-tanàna. Izany dia mibaribary amin'ny horonan-tsarimihetsika vokatra rehetra ao amin'ny After Effects.

Na dia fantatry ny rehetra aza hoe inona ny bokotra Refresh, dia tsy nisy olona tena nahatakatra fa ny rindranasa an-tranonkala nangatahin'izy ireo hamboarinay dia matetika miankina amin'ny fetrany. Ary raha tsy ilaina intsony izy ireo dia ho hafa tanteraka ny traikefan'ny mpampiasa. Tsikaritr'izy ireo matetika fa afaka "miresaka" izy ireo amin'ny fametrahana naoty ho an'ny olona iresahany, ka nanontany tena izy ireo hoe inona no maha samy hafa azy amin'i Slack, ohatra. Fih!

Famolavolana synchronization isan'andro

Raha manana traikefa amin'ny fampivoarana rindrambaiko ianao, dia tsy maintsy mahasosotra ny mitadidy fa ny ankamaroan'ny olona dia tsy afaka mijery fotsiny ny sarin'ny interface iray ary mahatakatra ny zavatra hataony rehefa mifandray aminy. Tsy lazaina intsony izay mitranga ao anatin'ny programa. Fahalalana izany afaka Ny zava-mitranga dia vokatry ny fahafantarana ny tsy mety hitranga sy ny tsy tokony hitranga. Mitaky izany modely ara-tsaina tsy izay ataon'ilay logiciel ihany, fa koa ny fomba fandrindrana sy fifampiresahana amin'ny ampahany tsirairay ao aminy.

Ohatra mahazatra amin'izany ny mpampiasa iray mibanjina a spinner.gif, manontany tena hoe rahoviana no ho vita ny asa. Ny mpamorona dia ho tonga saina fa mety nijanona ilay dingana ary tsy hanjavona eo amin'ny efijery mihitsy ny gif. Ity sarimiaina ity dia manao simulate ny fanatanterahana asa iray, saingy tsy mifandray amin'ny toerany. Amin'ny toe-javatra toy izany, ny teknisiana sasany dia tia manodikodina ny masony, talanjona amin'ny halehiben'ny fikorontanan'ny mpampiasa. Mariho anefa hoe firy amin’izy ireo no manondro ny famantaranandro mihodinkodina ary milaza fa tsy misy intsony izy io?

May ity angona ity...
Izany no fototry ny sanda ara-potoana. Amin'izao andro izao, ny angon-drakitra amin'ny fotoana tena izy dia mbola kely ampiasaina ary maro ny olona no miahiahy azy ireo. Ny ankamaroan'ireo angona ireo dia mirona mafy amin'ny fomba NoSQL, ka izany no mahatonga azy ireo matetika mampiasa vahaolana mifototra amin'ny Mongo, izay adino indrindra. Na izany aza, ho ahy izany dia midika hoe mahazo aina amin'ny fiaraha-miasa amin'ny CouchDB, ary koa mianatra mamolavola rafitra izay azon'ny biraom-panjakana sasany hofenoina amin'ny angon-drakitra. Heveriko fa mampiasa tsara kokoa ny fotoanako aho.

Fa ny tena lohahevitr'ity lahatsoratra ity no ampiasaiko androany. Tsy noho ny safidy, fa noho ny politikan'ny orinasa tsy miraharaha sy an-jambany. Noho izany dia hanome fampitahana ara-drariny sy tsy mitongilana tanteraka amin'ireo vokatra roa mifandray akaiky amin'ny angon-drakitra Google tena izy aho.

May ity angona ity...
Samy manana ny teny hoe Afo ny anarany. Zavatra iray no tadidiko tsara. Ny zavatra faharoa amiko dia karazana afo hafa. Tsy maika ny hilaza ny anaran'izy ireo aho, satria raha vao manao izany aho dia ho tojo olana lehibe voalohany isika: anarana.

Ny voalohany dia antsoina hoe Firebase Real-Time Database, ary faharoa - Firebase Cloud Firestore. Samy vokatra avy amin'izy ireo Firebase suite Google. Ny API-n'izy ireo dia antsoina tsirairay firebase.database(…) и firebase.firestore(…).

Nitranga izany satria angon-drakitra ara-potoana - ny original ihany Firebase talohan'ny nividianany an'i Google tamin'ny 2014. Avy eo Google dia nanapa-kevitra ny hamorona ho toy ny vokatra mitovy dika mitovy Firebase miorina amin'ny orinasa data lehibe, ary nantsoiny hoe Firestore miaraka amin'ny rahona. Manantena aho fa tsy mbola very hevitra ianao. Raha mbola sahiran-tsaina ianao, aza manahy, ny tenako dia namerina nanoratra ity ampahany amin'ny lahatsoratra ity im-polo.

Satria mila manondro ianao Firebase ao amin'ny fanontaniana Firebase, ary Firestore amin'ny fanontaniana momba ny Firebase, farafaharatsiny mba ho takatra taona vitsivitsy lasa izay amin'ny Stack Overflow.

Raha nisy loka ho an'ny traikefa amin'ny anarana rindrambaiko ratsy indrindra, dia azo antoka fa iray amin'ireo mpifaninana izany. Kely loatra ny elanelan'ny Hamming eo amin'ireo anarana ireo ka mampisavoritaka na dia ireo injeniera efa za-draharaha izay manoratra anarana iray ny rantsan-tànany nefa mieritreritra hafa ny lohany. Ireo dia drafitra tsara natao izay tsy nahomby; nahatanteraka ny faminaniana fa ho may ny angon-drakitra. Ary tsy mananihany mihitsy aho. Nahatonga rà sy hatsembohana ary ranomaso ilay olona namorona io tetika nomena io.

May ity angona ity...

Fandresena pyrrhique

Misy mihevitra fa Firestore fanoloana Firebase, taranany manaraka, saingy mety hamitaka izany. Tena tsy fanoloana mety amin'ny Firebase ny Firestore. Toa nisy nanala ny zava-drehetra mahaliana tao, ary nanakorontana ny ankamaroan'ny ambiny tamin'ny fomba samihafa.

Na izany aza, ny fijerena haingana ireo vokatra roa dia mety hampisavoritaka anao: toa manao zavatra mitovy ihany izy ireo, amin'ny alàlan'ny API mitovy amin'ny ankapobeny ary na dia ao anatin'ny session database iray ihany aza. Ny fahasamihafana dia an-kolaka ary tsy hita afa-tsy amin'ny fandalinana fampitahana amim-pitandremana momba ny antontan-taratasy mivelatra. Na rehefa manandrana mandefa code izay miasa tsara amin'ny Firebase ianao mba hiasa amin'ny Firestore. Na izany aza dia hitanao fa mirehitra ny interface database raha vao miezaka misintona sy milatsaka amin'ny totozy amin'ny fotoana tena izy. Averiko indray fa tsy mivazivazy aho.

Ny mpanjifa Firebase dia mahalala fomba amin'ny heviny fa mamindra ny fanovana ary mamerina ho azy ireo fanavaozana izay manome laharam-pahamehana ny asa fanoratana farany. Na izany aza, ny Firestore dia manana fetran'ny asa fanoratana 1 isaky ny antontan-taratasy isaky ny mpampiasa isan-tsegondra, ary io fetra io dia ampiharin'ny mpizara. Rehefa miasa miaraka amin'izany ianao dia anjaranao ny mikaroka fomba manodidina azy ary mametraka fetran'ny taham-panavaozana, na dia vao miezaka manangana ny fampiharana anao aza ianao. Izany hoe, Firestore dia angon-drakitra tena izy tsy misy mpanjifa tena izy, izay masquerade ho toy ny iray mampiasa API.

Eto isika dia manomboka mahita ny famantarana voalohany ny raison d'être an'ny Firestore. Mety ho diso aho, saingy miahiahy aho fa nisy olona ambony tao amin'ny fitantanan'i Google nijery ny Firebase taorian'ny fividianana ary niteny tsotra hoe: “Tsia, ry Andriamanitro ô, tsia. Tsy azo ekena izany. Tsy eo ambany fitarihana fotsiny aho. "

May ity angona ity...
Nipoitra avy tao an-efi-tranony izy ka nanao hoe:

“Taratasy JSON lehibe iray? Tsia. Hozarainao ho antontan-taratasy misaraka ny angon-drakitra, izay tsy hihoatra ny 1 megabyte ny haben'ny tsirairay.”

Toa tsy ho tafavoaka velona amin'ny fihaonana voalohany amin'ny tobin'ny mpampiasa ampy antony ny famerana toy izany. Fantatrao izany. Any am-piasana, ohatra, dia manana famelabelarana mihoatra ny iray arivo sy sasany, ary Normale tanteraka izany.

Miaraka amin'io famerana io, dia ho voatery hanaiky ianao fa ny "document" iray ao amin'ny angon-drakitra dia tsy hitovy amin'izay zavatra mety hiantsoan'ny mpampiasa azy ho antontan-taratasy.

"Arrays amin'ny array izay mety ahitana singa hafa? Tsia. Ny laharan-kira dia tsy ahitana afa-tsy zavatra na isa raikitra, araka ny fikasan'Andriamanitra."

Ka raha nanantena ny hametraka GeoJSON ao amin'ny Firestore-nao ianao dia ho hitanao fa tsy azo atao izany. Tsy misy zavatra tsy amin'ny lafiny iray azo ekena. Manantena aho fa tianao ny Base64 sy/na JSON ao anatin'ny JSON.

"Manafatra sy manondrana JSON amin'ny alàlan'ny HTTP, fitaovana andalana baiko na tontonana admin? Tsia. Tsy afaka manondrana sy manafatra angona ao amin'ny Google Cloud Storage ihany ianao. Izay no iantsoana azy ankehitriny, hoy aho. Ary rehefa miteny aho hoe "ianao", dia ireo izay manana fahazoan-dàlana ho an'ny tompon'ny tetikasa ihany no resahiko. Afaka mandeha mamorona tapakila ny olon-drehetra."

Araka ny hitanao dia mora ny mamaritra ny maodely data FireBase. Izy io dia misy antontan-taratasy JSON lehibe iray izay mampifandray ny fanalahidy JSON amin'ny lalan'ny URL. Raha manoratra miaraka amin'ny HTTP PUT в / FireBase dia ireto manaraka ireto:

{
  "hello": "world"
}

ny GET /hello hiverina "world". Amin'ny ankapobeny dia miasa araka ny nantenainao izany. Fanangonana zavatra FireBase /my-collection/:id mitovy amin'ny rakibolana JSON {"my-collection": {...}} ao amin'ny fakany, izay misy ao anatiny ao /my-collection:

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

Mandeha tsara izany raha toa ka manana ID tsy misy fifandonana ny fampidirana tsirairay, izay manana vahaolana mahazatra ny rafitra.

Raha lazaina amin'ny teny hafa, ny angon-drakitra dia 100% JSON(*) mifanaraka ary miasa tsara amin'ny HTTP, toy ny CouchDB. Saingy amin'ny ankapobeny dia mampiasa azy io amin'ny alàlan'ny API tena izy izay manala ny sockets, fanomezan-dàlana ary famandrihana. Ny tontolon'ny admin dia samy manana ny fahaiza-manaony, mamela ny fanovana amin'ny fotoana tena izy sy ny fanafarana / fanondranana JSON. Raha manao toy izany koa ianao amin'ny kaody anao, dia ho gaga ianao amin'ny habetsaky ny kaody manokana ho very maina rehefa tsapanao fa ny patch sy diff JSON dia mamaha ny 90% amin'ny asa mahazatra amin'ny fikarakarana fanjakana maharitra.

Ny maodely data Firestore dia mitovy amin'ny JSON, saingy tsy mitovy amin'ny fomba mitsikera sasany. Efa nolazaiko ny tsy fahampian'ny array ao anatin'ny arrays. Ny modely ho an'ny fanangonam-bokatra dia ho foto-kevitra kilasy voalohany izy ireo, misaraka amin'ny antontan-taratasy JSON misy azy ireo. Satria tsy misy serialization efa vonona ho an'izany, dia ilaina ny lalana code manokana mba haka sy hanoratana angona. Mba hikarakarana ny fanangonanao manokana dia mila manoratra ny script sy ny fitaovanao manokana ianao. Ny tontolon'ny admin dia mamela anao hanao fanovana kely fotsiny amin'ny sehatra iray, ary tsy manana fahafahana manafatra / manondrana.

Naka angon-drakitra NoSQL tena izy izy ireo ary nanova azy ho lasa tsy SQL miadana miaraka amin'ny auto-join sy tsanganana tsy JSON misaraka. Zavatra toy ny GraftQL.

May ity angona ity...

Java mafana

Raha toa ny Firestore dia tokony ho azo itokisana sy azo ekena kokoa, ny mahatsikaiky dia ny salan'isa mpandrindra dia hiafara amin'ny vahaolana tsy azo antoka kokoa noho ny fisafidianana FireBase ivelan'ny boaty. Ny karazana rindrambaiko izay ilain'ny Grumpy Database Administrator dia mitaky ezaka sy fahaiza-manao talenta izay tsy mitombina tsotra izao ho an'ny niche izay tokony ho tsara amin'ny vokatra. Mitovy amin'ny hoe tsy fanoloana Flash mihitsy ny HTML5 Canvas raha tsy misy fitaovana fampandrosoana sy mpilalao. Ambonin'izany, ny Firestore dia latsaka ao anatin'ny faniriana ny fahadiovan'ny angon-drakitra sy ny fanamarinana tsy misy dikany izay tsy mifanaraka amin'ny fomba mahazatra ny mpampiasa orinasa. tia miasa: ho azy dia safidy ny zava-drehetra, satria hatramin'ny farany dia drafitra ny zava-drehetra.

Ny fatiantoka lehibe amin'ny FireBase dia ny namoronana ny mpanjifa taona maromaro mialoha ny fotoanany, talohan'ny nahafantaran'ny ankamaroan'ny mpamorona tranonkala momba ny tsy fiovaovana. Noho izany, ny FireBase dia mihevitra fa hanova ny angon-drakitra ianao ary noho izany dia tsy manararaotra ny tsy fiovaovana omen'ny mpampiasa. Fanampin'izany, tsy mampiasa indray ny angon-drakitra ao amin'ny sary ampitaina amin'ny mpampiasa izy, izay mahatonga ny diff ho sarotra kokoa. Ho an'ny antontan-taratasy lehibe dia tsy ampy fotsiny ny fomba fiasa mifototra amin'ny fifampiraharahana miovaova. Ry zalahy, efa manana isika WeakMap amin'ny JavaScript. Mampahazo aina.

Raha manome ny angon-drakitra ny endrika irina ary tsy manao ny hazo voluminous loatra, dia azo circumvented io olana io. Saingy manontany tena aho raha mahaliana kokoa ny FireBase raha namoaka API mpanjifa tena tsara ny mpamorona izay nampiasa ny tsy fiovaovana miaraka amin'ny torohevitra azo ampiharina matotra momba ny famolavolana angona. Toa niezaka nanamboatra izay tsy simba kosa izy ireo, ka vao mainka niharatsy izany.

Tsy haiko ny lojika rehetra ao ambadiky ny famoronana Firestore. Ny fanombantombanana momba ny antony mipoitra ao anaty boaty mainty dia anisan'ny mahafinaritra ihany koa. Ity fampifangaroana angon-drakitra roa tena mitovy nefa tsy azo ampitahaina ity dia tsy fahita firy. Toy ny nisy nieritreritra hoe: "Firebase dia fiasa iray izay azontsika alaina amin'ny Google Cloud", saingy mbola tsy nahita ny foto-kevitra hamantarana ireo fepetra takian'ny tontolo iainana na famoronana vahaolana mahasoa mahafeno ireo fepetra rehetra ireo. “Avelao ny mpamorona hieritreritra izany. Ataovy tsara tarehy fotsiny ny UI... Afaka manampy afo bebe kokoa ve ianao?”

Azoko ny zavatra roa momba ny firafitry ny angona. Tena hitako ny foto-kevitra "ny zava-drehetra ao anaty hazo JSON lehibe" ho toy ny fikasana hanaisotra ny fahatsapana ny rafitra midadasika amin'ny angon-drakitra. Manantena ny rindrambaiko hiatrika tsotra izao izay fractal rafitra angon-drakitra mampiahiahy dia adala tsotra izao. Tsy mila maka sary an-tsaina akory aho hoe manao ahoana ny mety ho zava-dratsy, efa nanao fanamarinana kaody henjana aho ary Nahita zavatra tsy nofinofisinareo mihitsy aho. Fa fantatro koa ny endrik'ireo rafitra tsara, ny fomba fampiasana azy ireo и nahoana no tokony hatao izany. Azoko sary an-tsaina ny tontolo iray izay toa mitombina ny Firestore ary hihevitra ny olona namorona azy fa nanao asa tsara izy ireo. Tsy miaina eto amin’ity tontolo ity anefa isika.

Ny fanohanan'ny fangatahan'i FireBase dia ratsy amin'ny fenitra rehetra ary saika tsy misy. Tena mila fanatsarana na farafaharatsiny fanavaozana. Saingy tsy dia tsara kokoa ny Firestore satria voafetra amin'ireo tondro-dimensional tokana hita ao amin'ny SQL tsotra. Raha mila fanontaniana izay ataon'ny olona amin'ny angon-drakitra misavoritaka ianao dia mila fikarohana an-tsoratra feno, sivana isan-karazany ary filaharana voafaritry ny mpampiasa. Rehefa dinihina akaiky dia voafetra ho azy ireo ny asan'ny SQL tsotra. Fanampin'izany, ny hany fanontaniana SQL azon'ny olona atao amin'ny famokarana dia fanontaniana haingana. Mila vahaolana fanondroana manokana miaraka amin'ny rafitra angona marani-tsaina ianao. Ho an'ny zavatra hafa rehetra, farafaharatsiny dia tokony hisy sari-tany incremental-reduce na zavatra mitovitovy.

Raha mikaroka ao amin'ny Google Docs ianao raha mila fampahalalana momba an'io, dia antenaina fa ho voatondro amin'ny lalana toa ny BigTable sy BigQuery ianao. Na izany aza, ireo vahaolana rehetra ireo dia miaraka amin'ny jargon fivarotana orinasa be dia be ka hiverina haingana ianao ary hanomboka hitady zavatra hafa.

Ny zavatra farany tadiavinao amin'ny angon-drakitra tena izy dia zavatra nataon'ny sy ho an'ny olona amin'ny mizana karama amin'ny fitantanana.

(*) Vazivazy ity, tsy misy izany 100% JSON mifanaraka.

Momba ny zon'ny dokam-barotra

Mitady VDS ho an'ny tetikasa debugging, mpizara ho an'ny fampandrosoana sy fampiantranoana? Azo antoka fa mpanjifanay ianao 🙂 Ny vidin'ny isan'andro ho an'ny mpizara amin'ny fanamafisana isan-karazany, ny fahazoan-dàlana anti-DDoS ary Windows dia efa tafiditra ao amin'ny vidiny.

May ity angona ity...

Source: www.habr.com

Add a comment