టెక్నికల్ స్టోరీ చెప్తాను.
చాలా సంవత్సరాల క్రితం, నేను దానిలో అంతర్నిర్మిత సహకార లక్షణాలతో ఒక అప్లికేషన్ను అభివృద్ధి చేస్తున్నాను. ఇది ప్రారంభ రియాక్ట్ మరియు కౌచ్డిబి యొక్క పూర్తి సామర్థ్యాన్ని సద్వినియోగం చేసుకున్న వినియోగదారు-స్నేహపూర్వక ప్రయోగాత్మక స్టాక్. ఇది JSON ద్వారా నిజ సమయంలో డేటాను సమకాలీకరించింది
సంభావ్య క్లయింట్లకు ఈ సాంకేతికతను విక్రయించడానికి ప్రయత్నిస్తున్నప్పుడు, మేము ఊహించని అడ్డంకిని ఎదుర్కొన్నాము. డెమో వీడియోలో, మా సాంకేతికత అద్భుతంగా కనిపించింది మరియు పనిచేసింది, అక్కడ ఎలాంటి సమస్యలు లేవు. వీడియో సరిగ్గా ఎలా పని చేస్తుందో చూపించింది మరియు దేనినీ అనుకరించలేదు. మేము ప్రోగ్రామ్ను ఉపయోగించడం కోసం వాస్తవిక దృశ్యాన్ని రూపొందించాము మరియు కోడ్ చేసాము.
నిజానికి ఇదే సమస్యగా మారింది. ప్రతి ఒక్కరూ వారి అప్లికేషన్లను అనుకరించిన విధంగానే మా డెమో పనిచేసింది. ప్రత్యేకించి, పెద్ద మీడియా ఫైల్లు అయినప్పటికీ, సమాచారం తక్షణమే A నుండి Bకి బదిలీ చేయబడుతుంది. లాగిన్ అయిన తర్వాత, ప్రతి వినియోగదారు కొత్త ఎంట్రీలను చూశారు. అప్లికేషన్ను ఉపయోగించి, గ్రామంలో ఎక్కడైనా ఇంటర్నెట్ కనెక్షన్ అంతరాయం కలిగినా, వేర్వేరు వినియోగదారులు ఒకే ప్రాజెక్ట్లపై స్పష్టంగా కలిసి పని చేయవచ్చు. ఇది ఆఫ్టర్ ఎఫెక్ట్స్లో ఏదైనా ఉత్పత్తి వీడియో కట్లో పరోక్షంగా సూచించబడుతుంది.
రిఫ్రెష్ బటన్ ఏమిటో అందరికీ తెలిసినప్పటికీ, వారు మమ్మల్ని నిర్మించమని కోరిన వెబ్ అప్లికేషన్లు సాధారణంగా వారి స్వంత పరిమితులకు లోబడి ఉంటాయని ఎవరికీ అర్థం కాలేదు. మరియు అవి ఇకపై అవసరం లేకుంటే, వినియోగదారు అనుభవం పూర్తిగా భిన్నంగా ఉంటుంది. వారు మాట్లాడుతున్న వ్యక్తుల కోసం నోట్స్ వదిలి "చాట్" చేయగలరని వారు ఎక్కువగా గమనించారు, కాబట్టి ఇది స్లాక్ నుండి ఎలా భిన్నంగా ఉందో వారు ఆశ్చర్యపోయారు. అయ్యో!
రోజువారీ సమకాలీకరణల రూపకల్పన
మీకు సాఫ్ట్వేర్ డెవలప్మెంట్లో అనుభవం ఉన్నట్లయితే, చాలా మంది వ్యక్తులు ఇంటర్ఫేస్ చిత్రాన్ని చూడలేరు మరియు దానితో పరస్పర చర్య చేసినప్పుడు అది ఏమి చేస్తుందో అర్థం చేసుకోలేరని గుర్తుంచుకోవాలి. ప్రోగ్రామ్ లోపల ఏమి జరుగుతుందో ప్రత్యేకంగా చెప్పనక్కర్లేదు. అని జ్ఞానం చెయ్యవచ్చు ఏది జరగదు మరియు ఏది జరగకూడదు అని తెలుసుకోవడం వల్ల జరిగే ఫలితం ఎక్కువగా జరుగుతుంది. ఇది అవసరం
దీనికి ఒక క్లాసిక్ ఉదాహరణ ఒక వినియోగదారు ఒక వైపు చూస్తున్నారు స్పిన్నర్.gif, ఎట్టకేలకు పని ఎప్పుడు పూర్తవుతుందా అని ఆలోచిస్తున్నారు. డెవలపర్ ప్రక్రియ బహుశా నిలిచిపోయిందని మరియు gif స్క్రీన్ నుండి ఎప్పటికీ అదృశ్యం కాదని గ్రహించి ఉండవచ్చు. ఈ యానిమేషన్ ఉద్యోగం యొక్క అమలును అనుకరిస్తుంది, కానీ దాని స్థితికి సంబంధించినది కాదు. అలాంటి సందర్భాల్లో, కొంతమంది టెక్కీలు తమ కళ్ళు తిప్పడానికి ఇష్టపడతారు, వినియోగదారు గందరగోళం యొక్క పరిధిని చూసి ఆశ్చర్యపోతారు. అయితే, వాటిలో ఎన్ని తిరిగే గడియారాన్ని చూపి, అది వాస్తవంగా స్థిరంగా ఉందని చెప్పడాన్ని గమనించండి?
ఇది నిజ-సమయ విలువ యొక్క సారాంశం. ఈ రోజుల్లో, రియల్ టైమ్ డేటాబేస్లు ఇప్పటికీ చాలా తక్కువగా ఉపయోగించబడుతున్నాయి మరియు చాలా మంది వాటిని అనుమానంతో చూస్తారు. ఈ డేటాబేస్లలో చాలా వరకు NoSQL స్టైల్ వైపు మొగ్గు చూపుతాయి, అందుకే అవి సాధారణంగా మొంగో ఆధారిత సొల్యూషన్స్ని ఉపయోగిస్తాయి, వీటిని బాగా మర్చిపోతారు. అయితే, నాకు దీని అర్థం CouchDBతో సౌకర్యవంతంగా పని చేయడం, అలాగే కొంతమంది బ్యూరోక్రాట్ల కంటే ఎక్కువ డేటాతో నింపగలిగే నిర్మాణాలను రూపొందించడం నేర్చుకోవడం. నేను నా సమయాన్ని బాగా ఉపయోగిస్తున్నానని అనుకుంటున్నాను.
కానీ ఈ పోస్ట్ యొక్క నిజమైన అంశం నేను ఈ రోజు ఉపయోగిస్తున్నాను. ఎంపిక ద్వారా కాదు, ఉదాసీనంగా మరియు గుడ్డిగా వర్తించే కార్పొరేట్ విధానాల కారణంగా. కాబట్టి నేను రెండు దగ్గరి సంబంధం ఉన్న Google నిజ-సమయ డేటాబేస్ ఉత్పత్తులకు పూర్తిగా న్యాయమైన మరియు నిష్పాక్షికమైన పోలికను అందిస్తాను.
ఇద్దరి పేర్లలో ఫైర్ అనే పదం ఉంది. ఒక విషయం నాకు బాగా గుర్తుంది. నాకు రెండవ విషయం వేరే రకం అగ్ని. నేను వారి పేర్లను చెప్పడానికి తొందరపడటం లేదు, ఎందుకంటే ఒకసారి నేను అలా చేస్తే, మేము మొదటి పెద్ద సమస్యలోకి ప్రవేశిస్తాము: పేర్లు.
మొదటిది అంటారు ఫైర్బేస్ రియల్ టైమ్ డేటాబేస్, మరియు రెండవది - ఫైర్బేస్ క్లౌడ్ ఫైర్స్టోర్. ఈ రెండూ ఉత్పత్తులే ఫైర్బేస్ సూట్ Google. వాటి APIలను వరుసగా పిలుస్తారు firebase.database(…)
и firebase.firestore(…)
.
ఎందుకంటే ఇది జరిగింది రియల్ టైమ్ డేటాబేస్ - ఇది అసలైనది మాత్రమే Firebase 2014లో Google కొనుగోలు చేసే ముందు. అప్పుడు Google ఒక సమాంతర ఉత్పత్తిగా సృష్టించాలని నిర్ణయించుకుంది కాపీ ఫైర్బేస్ పెద్ద డేటా కంపెనీపై ఆధారపడింది మరియు దానిని క్లౌడ్తో ఫైర్స్టోర్ అని పిలిచింది. మీరు ఇంకా గందరగోళానికి గురికాలేదని నేను ఆశిస్తున్నాను. మీరు ఇంకా గందరగోళంగా ఉంటే, చింతించకండి, వ్యాసంలోని ఈ భాగాన్ని నేనే పదిసార్లు తిరిగి వ్రాసాను.
ఎందుకంటే మీరు సూచించాలి Firebase ఫైర్బేస్ ప్రశ్నలో, మరియు అగ్నిమాపక దుకాణం ఫైర్బేస్ గురించిన ప్రశ్నలో, కనీసం కొన్ని సంవత్సరాల క్రితం స్టాక్ ఓవర్ఫ్లో గురించి మీకు అర్థమయ్యేలా చెప్పడానికి.
చెత్త సాఫ్ట్వేర్ నామకరణ అనుభవానికి అవార్డు ఉంటే, ఇది ఖచ్చితంగా పోటీదారులలో ఒకటి అవుతుంది. ఈ పేర్ల మధ్య హామింగ్ దూరం చాలా చిన్నది, ఇది అనుభవజ్ఞులైన ఇంజనీర్లను కూడా గందరగోళానికి గురిచేస్తుంది, వారి తలలు మరొకదాని గురించి ఆలోచిస్తున్నప్పుడు వేళ్లు ఒక పేరును టైప్ చేస్తాయి. ఇవి బాగా విఫలమయ్యే మంచి ఉద్దేశ్యంతో కూడిన ప్రణాళికలు; డేటాబేస్ అగ్నికి ఆహుతి అవుతుందనే జోస్యాన్ని వారు నెరవేర్చారు. మరియు నేను అస్సలు తమాషా చేయడం లేదు. ఈ నామకరణ పథకానికి వచ్చిన వ్యక్తికి రక్తం, చెమట, కన్నీళ్లు వచ్చాయి.
పిరిక్ విజయం
ఫైర్స్టోర్ అని ఒకరు అనుకుంటారు భర్తీ ఫైర్బేస్, దాని తర్వాతి తరం వారసుడు, కానీ అది తప్పుదారి పట్టించేది. ఫైర్స్టోర్ ఫైర్బేస్కు తగిన ప్రత్యామ్నాయంగా హామీ ఇవ్వబడలేదు. ఎవరైనా దాని నుండి ఆసక్తికరమైన ప్రతిదాన్ని కత్తిరించినట్లు కనిపిస్తోంది మరియు మిగిలిన వాటిలో చాలా వరకు వివిధ మార్గాల్లో గందరగోళం చెందుతుంది.
అయితే, రెండు ఉత్పత్తులపై శీఘ్ర చూపు మిమ్మల్ని గందరగోళానికి గురి చేస్తుంది: అవి ప్రాథమికంగా ఒకే APIల ద్వారా మరియు ఒకే డేటాబేస్ సెషన్లో కూడా అదే పనిని చేసినట్లుగా అనిపిస్తుంది. తేడాలు సూక్ష్మమైనవి మరియు విస్తృతమైన డాక్యుమెంటేషన్ యొక్క జాగ్రత్తగా తులనాత్మక అధ్యయనం ద్వారా మాత్రమే వెల్లడి చేయబడతాయి. లేదా మీరు ఫైర్బేస్లో ఖచ్చితంగా పనిచేసే కోడ్ని పోర్ట్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు అది Firestoreతో పని చేస్తుంది. మీరు నిజ సమయంలో మౌస్తో డ్రాగ్ అండ్ డ్రాప్ చేయడానికి ప్రయత్నించిన వెంటనే డేటాబేస్ ఇంటర్ఫేస్ వెలిగిపోతుందని మీరు కనుగొంటారు. నేను పునరావృతం చేస్తున్నాను, నేను జోక్ చేయడం లేదు.
Firebase క్లయింట్ మార్పులను బఫర్ చేస్తుంది మరియు చివరి వ్రాత ఆపరేషన్కు ప్రాధాన్యతనిచ్చే నవీకరణలను స్వయంచాలకంగా మళ్లీ ప్రయత్నిస్తుంది అనే కోణంలో మర్యాదపూర్వకంగా ఉంటుంది. అయినప్పటికీ, ఫైర్స్టోర్లో సెకనుకు వినియోగదారుకు ఒక్కో పత్రానికి 1 వ్రాత ఆపరేషన్ పరిమితి ఉంది మరియు ఈ పరిమితి సర్వర్ ద్వారా అమలు చేయబడుతుంది. దానితో పని చేస్తున్నప్పుడు, మీరు మీ అప్లికేషన్ను రూపొందించడానికి ప్రయత్నిస్తున్నప్పుడు కూడా దాని చుట్టూ ఒక మార్గాన్ని కనుగొనడం మరియు నవీకరణ రేటు పరిమితిని అమలు చేయడం మీ ఇష్టం. అంటే, ఫైర్స్టోర్ అనేది నిజ-సమయ క్లయింట్ లేని నిజ-సమయ డేటాబేస్, ఇది APIని ఉపయోగించి మాస్క్వెరేడ్ అవుతుంది.
ఇక్కడ మనం ఫైర్స్టోర్ యొక్క రైసన్ డి'ట్రే యొక్క మొదటి సంకేతాలను చూడటం ప్రారంభించాము. నేను తప్పు చేసి ఉండవచ్చు, కానీ Google మేనేజ్మెంట్లో ఉన్నత స్థాయి ఎవరైనా కొనుగోలు చేసిన తర్వాత Firebaseని చూసి, “లేదు, ఓహ్ మై గాడ్, లేదు. ఇది ఆమోదయోగ్యం కాదు. నా నాయకత్వంలో కాదు."
అతను తన ఛాంబర్ నుండి ప్రత్యక్షమై ఇలా ప్రకటించాడు:
“ఒక పెద్ద JSON డాక్యుమెంట్? నం. మీరు డేటాను ప్రత్యేక పత్రాలుగా విభజిస్తారు, వీటిలో ప్రతి ఒక్కటి 1 మెగాబైట్ కంటే ఎక్కువ పరిమాణంలో ఉండదు.
తగినంతగా ప్రేరేపించబడిన వినియోగదారు బేస్తో మొదటి ఎన్కౌంటర్లో అటువంటి పరిమితి మనుగడ సాగించదు. అది మీకు తెలుసు. పని వద్ద, ఉదాహరణకు, మాకు ఒకటిన్నర వేల కంటే ఎక్కువ ప్రదర్శనలు ఉన్నాయి మరియు ఇది పూర్తిగా సాధారణమైనది.
ఈ పరిమితితో, డేటాబేస్లోని ఒక "పత్రం" వినియోగదారు డాక్యుమెంట్కి కాల్ చేసే ఏ వస్తువును పోలి ఉండదనే వాస్తవాన్ని మీరు అంగీకరించవలసి వస్తుంది.
"పునరావృతంగా ఇతర మూలకాలను కలిగి ఉండే శ్రేణుల శ్రేణులు? నం. దేవుడు ఉద్దేశించినట్లుగా శ్రేణులు స్థిర-పొడవు వస్తువులు లేదా సంఖ్యలను మాత్రమే కలిగి ఉంటాయి."
కాబట్టి మీరు మీ ఫైర్స్టోర్లో GeoJSONని ఉంచాలని ఆశించినట్లయితే, ఇది సాధ్యం కాదని మీరు కనుగొంటారు. ఒక డైమెన్షనల్ కాని ఏదీ ఆమోదయోగ్యం కాదు. JSONలో మీరు Base64 మరియు/లేదా JSONని ఇష్టపడతారని నేను ఆశిస్తున్నాను.
“HTTP, కమాండ్ లైన్ టూల్స్ లేదా అడ్మిన్ ప్యానెల్ ద్వారా JSON దిగుమతి మరియు ఎగుమతి చేయాలా? నం. మీరు Google Cloud Storageకి మాత్రమే డేటాను ఎగుమతి మరియు దిగుమతి చేయగలుగుతారు. అదే ఇప్పుడు పిలవబడుతుంది, నేను అనుకుంటున్నాను. మరియు నేను "మీరు" అని చెప్పినప్పుడు, నేను ప్రాజెక్ట్ యజమాని ఆధారాలను కలిగి ఉన్నవారిని మాత్రమే సంబోధిస్తున్నాను. అందరూ వెళ్లి టిక్కెట్లు సృష్టించుకోవచ్చు."
మీరు చూడగలిగినట్లుగా, FireBase డేటా మోడల్ వివరించడం సులభం. ఇది JSON కీలను URL పాత్లతో అనుబంధించే ఒక భారీ JSON పత్రాన్ని కలిగి ఉంది. తో వ్రాస్తే HTTP PUT
в /
FireBase క్రింది విధంగా ఉంది:
{
"hello": "world"
}
ది GET /hello
తిరిగి వస్తుంది "world"
. ప్రాథమికంగా ఇది మీరు ఆశించిన విధంగానే పని చేస్తుంది. ఫైర్బేస్ వస్తువుల సేకరణ /my-collection/:id
JSON నిఘంటువుకి సమానం {"my-collection": {...}}
రూట్లో, అందులోని కంటెంట్లు అందుబాటులో ఉన్నాయి /my-collection
:
{
"id1": {...object},
"id2": {...object},
"id3": {...object},
// ...
}
ప్రతి ఇన్సర్ట్కు ఘర్షణ రహిత ID ఉంటే ఇది బాగా పని చేస్తుంది, దీనికి సిస్టమ్ ప్రామాణిక పరిష్కారాన్ని కలిగి ఉంటుంది.
మరో మాటలో చెప్పాలంటే, డేటాబేస్ 100% JSON(*) అనుకూలమైనది మరియు CouchDB వంటి HTTPతో గొప్పగా పనిచేస్తుంది. కానీ ప్రాథమికంగా మీరు దీన్ని వెబ్సాకెట్లు, అధికారాలు మరియు సభ్యత్వాలను సంగ్రహించే నిజ-సమయ API ద్వారా ఉపయోగిస్తారు. అడ్మిన్ ప్యానెల్ రెండు సామర్థ్యాలను కలిగి ఉంది, ఇది నిజ-సమయ సవరణ మరియు JSON దిగుమతి/ఎగుమతి రెండింటినీ అనుమతిస్తుంది. మీరు మీ కోడ్లో అదే పని చేస్తే, ప్యాచ్ మరియు డిఫ్ JSON 90% రొటీన్ టాస్క్లను శాశ్వత స్థితిని నిర్వహించడం ద్వారా పరిష్కరిస్తుందని మీరు గ్రహించినప్పుడు ఎంత ప్రత్యేకమైన కోడ్ వృధా అవుతుందో మీరు ఆశ్చర్యపోతారు.
Firestore డేటా మోడల్ JSON మాదిరిగానే ఉంటుంది, కానీ కొన్ని క్లిష్టమైన మార్గాల్లో భిన్నంగా ఉంటుంది. శ్రేణులలో శ్రేణుల కొరత గురించి నేను ఇప్పటికే ప్రస్తావించాను. ఉప-సేకరణల నమూనా వాటిని కలిగి ఉన్న JSON పత్రం నుండి వేరుగా, మొదటి తరగతి భావనలుగా ఉండాలి. దీని కోసం రెడీమేడ్ సీరియలైజేషన్ లేనందున, డేటాను తిరిగి పొందడానికి మరియు వ్రాయడానికి ప్రత్యేకమైన కోడ్ పాత్ అవసరం. మీ స్వంత సేకరణలను ప్రాసెస్ చేయడానికి, మీరు మీ స్వంత స్క్రిప్ట్లు మరియు సాధనాలను వ్రాయాలి. అడ్మిన్ పానెల్ ఒక సమయంలో ఒక ఫీల్డ్లో చిన్న మార్పులు చేయడానికి మాత్రమే మిమ్మల్ని అనుమతిస్తుంది మరియు దిగుమతి/ఎగుమతి సామర్థ్యాలను కలిగి ఉండదు.
వారు నిజ-సమయ NoSQL డేటాబేస్ని తీసుకున్నారు మరియు ఆటో-జాయిన్ మరియు ప్రత్యేక JSON కాని కాలమ్తో నెమ్మదిగా SQL కానిదిగా మార్చారు. GraftQL లాంటిది.
హాట్ జావా
ఫైర్స్టోర్ మరింత విశ్వసనీయమైనది మరియు స్కేలబుల్గా భావించబడితే, వ్యంగ్యం ఏమిటంటే, సగటు డెవలపర్ ఫైర్బేస్ను బాక్స్ వెలుపల ఎంచుకోవడం కంటే తక్కువ విశ్వసనీయ పరిష్కారంతో ముగుస్తుంది. క్రంపీ డేటాబేస్ అడ్మినిస్ట్రేటర్కు అవసరమైన సాఫ్ట్వేర్ రకం కోసం ఒక స్థాయి ప్రయత్నం మరియు ప్రతిభ యొక్క క్యాలిబర్ అవసరం, ఇది ఉత్పత్తి మంచిదని భావించే సముచితం కోసం అవాస్తవికమైనది. డెవలప్మెంట్ టూల్స్ మరియు ప్లేయర్ లేకపోతే HTML5 కాన్వాస్ ఫ్లాష్కి ప్రత్యామ్నాయం కాదు. అంతేకాకుండా, ఫైర్స్టోర్ డేటా స్వచ్ఛత మరియు స్టెరైల్ ధృవీకరణ కోసం కోరికతో చిక్కుకుంది, ఇది సగటు వ్యాపార వినియోగదారుని ఎలా సమలేఖనం చేయదు. పని చేయడానికి ఇష్టపడతాడు: అతనికి ప్రతిదీ ఐచ్ఛికం, ఎందుకంటే చివరి వరకు ప్రతిదీ డ్రాఫ్ట్.
ఫైర్బేస్ యొక్క ప్రధాన ప్రతికూలత ఏమిటంటే, చాలా మంది వెబ్ డెవలపర్లు మార్పులేనితనం గురించి తెలుసుకునే ముందు, క్లయింట్ దాని సమయం కంటే చాలా సంవత్సరాల ముందుగానే సృష్టించబడింది. దీని కారణంగా, మీరు డేటాను మారుస్తారని ఫైర్బేస్ ఊహిస్తుంది మరియు అందువల్ల వినియోగదారు అందించిన మార్పులేని ప్రయోజనాన్ని పొందదు. అదనంగా, ఇది వినియోగదారుకు పంపే స్నాప్షాట్లలోని డేటాను మళ్లీ ఉపయోగించదు, ఇది వ్యత్యాసాన్ని మరింత కష్టతరం చేస్తుంది. పెద్ద పత్రాల కోసం, దాని మార్చగల తేడా-ఆధారిత లావాదేవీ విధానం సరిపోదు. గైస్, మేము ఇప్పటికే కలిగి ఉన్నాము WeakMap
జావాస్క్రిప్ట్లో. ఇది సౌకర్యంగా ఉంది.
మీరు డేటాకు కావలసిన ఆకారాన్ని ఇస్తే మరియు చెట్లను చాలా పెద్దదిగా చేయకపోతే, ఈ సమస్యను అధిగమించవచ్చు. డెవలపర్లు డేటాబేస్ డిజైన్పై కొన్ని తీవ్రమైన ఆచరణాత్మక సలహాలతో కలిపి మార్పులేని ఒక మంచి క్లయింట్ APIని విడుదల చేసినట్లయితే FireBase మరింత ఆసక్తికరంగా ఉంటుందా అని నేను ఆసక్తిగా ఉన్నాను. బదులుగా, వారు విచ్ఛిన్నం కాని వాటిని పరిష్కరించడానికి ప్రయత్నించినట్లు అనిపించింది మరియు అది మరింత దిగజారింది.
ఫైర్స్టోర్ సృష్టించడం వెనుక ఉన్న లాజిక్ అంతా నాకు తెలియదు. బ్లాక్ బాక్స్ లోపల ఉత్పన్నమయ్యే ఉద్దేశ్యాల గురించి ఊహాగానాలు చేయడం కూడా సరదాలో భాగమే. చాలా సారూప్యమైన కానీ సాటిలేని రెండు డేటాబేస్ల కలయిక చాలా అరుదు. ఎవరో అనుకున్నట్లుగా ఉంది: "ఫైర్బేస్ అనేది Google క్లౌడ్లో మనం అనుకరించగల ఒక ఫంక్షన్ మాత్రమే", కానీ వాస్తవ-ప్రపంచ అవసరాలను గుర్తించడం లేదా ఆ అవసరాలన్నింటినీ తీర్చే ఉపయోగకరమైన పరిష్కారాలను రూపొందించడం అనే భావనను ఇంకా కనుగొనలేదు. “డెవలపర్లు దాని గురించి ఆలోచించనివ్వండి. UIని అందంగా మార్చండి... మీరు మరింత అగ్నిని జోడించగలరా?"
నేను డేటా స్ట్రక్చర్ల గురించి కొన్ని విషయాలు అర్థం చేసుకున్నాను. నేను ఖచ్చితంగా "ఒక పెద్ద JSON చెట్టులోని ప్రతిదీ" భావనను డేటాబేస్ నుండి పెద్ద-స్థాయి నిర్మాణం యొక్క ఏదైనా భావాన్ని సంగ్రహించే ప్రయత్నంగా చూస్తాను. సాఫ్ట్వేర్ ఏదైనా సందేహాస్పదమైన డేటా స్ట్రక్చర్ ఫ్రాక్టల్ను ఎదుర్కోవాలని ఆశించడం కేవలం పిచ్చిగా ఉంటుంది. విషయాలు ఎంత చెడ్డవిగా ఉంటాయో నేను ఊహించాల్సిన అవసరం లేదు, నేను కఠినమైన కోడ్ ఆడిట్లు చేసాను మరియు మీరు కలలో కూడా ఊహించని వాటిని నేను చూశాను. కానీ మంచి నిర్మాణాలు ఎలా ఉంటాయో కూడా నాకు తెలుసు,
FireBase యొక్క క్వెరీ సపోర్ట్ ఏ ప్రమాణానికైనా పేలవంగా ఉంది మరియు ఆచరణాత్మకంగా ఉనికిలో లేదు. దీనికి ఖచ్చితంగా మెరుగుదల లేదా కనీసం పునర్విమర్శ అవసరం. కానీ ఫైర్స్టోర్ అంత మెరుగైనది కాదు ఎందుకంటే ఇది సాదా SQLలో కనిపించే ఒకే డైమెన్షనల్ ఇండెక్స్లకు పరిమితం చేయబడింది. అస్తవ్యస్తమైన డేటాపై వ్యక్తులు అమలు చేసే ప్రశ్నలు మీకు అవసరమైతే, మీకు పూర్తి-వచన శోధన, బహుళ-శ్రేణి ఫిల్టర్లు మరియు అనుకూల వినియోగదారు నిర్వచించిన క్రమం అవసరం. నిశితంగా పరిశీలించిన తర్వాత, సాదా SQL యొక్క విధులు వాటి స్వంతంగా చాలా పరిమితం చేయబడ్డాయి. అదనంగా, వ్యక్తులు ఉత్పత్తిలో అమలు చేయగల SQL ప్రశ్నలు వేగవంతమైన ప్రశ్నలు. మీకు స్మార్ట్ డేటా స్ట్రక్చర్లతో అనుకూల ఇండెక్సింగ్ సొల్యూషన్ అవసరం. మిగతా వాటి కోసం, కనీసం ఇంక్రిమెంటల్ మ్యాప్-రిడ్యూస్ లేదా అలాంటిదే ఏదైనా ఉండాలి.
మీరు దీని గురించి సమాచారం కోసం Google డాక్స్లో శోధిస్తే, మీరు బిగ్టేబుల్ మరియు బిగ్ క్వెరీ వంటి వాటి వైపు మళ్లించబడతారు. అయినప్పటికీ, ఈ పరిష్కారాలన్నీ చాలా దట్టమైన కార్పొరేట్ అమ్మకాల పరిభాషతో కూడి ఉంటాయి, మీరు త్వరగా వెనక్కి తిరిగి వేరొకదాని కోసం వెతకడం ప్రారంభిస్తారు.
నిజ-సమయ డేటాబేస్తో మీరు కోరుకునే చివరి విషయం ఏమిటంటే, మేనేజ్మెంట్ పే స్కేల్లలోని వ్యక్తులచే రూపొందించబడినది.
(*) ఇది ఒక జోక్, అలాంటిదేమీ లేదు
ప్రకటనల హక్కులపై
వెతుకుతున్నారు
మూలం: www.habr.com