áááºážááá¬ááá¯ááºáᬠáá¬ááºáááºážáá
áºáá¯áẠááŒá±á¬ááŒáá«áá
á±á
ááœááºáá²á·áá±á¬ááŸá
áºáá»á¬ážá
áœá¬áá áá»áœááºá¯ááºááẠáááºážááœááºáááºáá±á¬ááºáá¬ážáá±á¬ áá°ážáá±á«ááºážáá¯ááºáá±á¬ááºááŸá¯á¡ááºá¹áá«áááºáá»á¬ážááŒáá·áº á¡ááºááºáá
áºáá¯ááᯠáá®ááœááºáá±áá«áááºá áááºážááẠá¡á
á±á¬ááá¯ááºáž React ááŸáá·áº CouchDB á á¡ááŒáá·áºá¡á á¡áá¬ážá¡áá¬ááᯠá¡ááœáá·áºáá±á¬ááºážáá°á á¡áá¯á¶ážááŒá¯áááœááºáá°áá±á¬ á
ááºážáááºááŸá¯á¡á
á¯áá
áºáá¯ááŒá
áºáááºá áááºážááẠJSON ááŸáá
áºááá·áº áá±áá¬áá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áááºáá°ááŒá¯áá«áááºá
á€áááºážááá¬ááᯠá¡áá¬ážá¡áá¬ááŸááá±á¬ áá±á¬ááºáááºáá»á¬ážáᶠáá±á¬ááºážáá»ááẠááŒáá¯ážá
á¬ážá
ááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠááá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ á¡áá¬ážá¡áá®ážáá
áºáá¯ááŸáá·áº ááŒá¯á¶ááœá±á·áá²á·ááááºá ááá¯ááºááŒáá®áá®ááá¯ááœááºá áá»áœááºá¯ááºááá¯á·ááááºážááá¬ááẠáá±á¬ááºážááœááºá
áœá¬áá¯ááºáá±á¬ááºááá¯ááºááŒá®áž ááŒá¿áá¬áááŸááá«á áá®áá®ááá¯ááẠáááºážá¡áá¯ááºáá¯ááºáá¯á¶ááᯠá¡ááá¡áá»ááŒááá²á·ááŒá®áž áááºááá·áºá¡áá¬ááá¯áá»áŸ áá¯áááŒááºážáááŸááá±á áá»áœááºá¯ááºááá¯á·ááẠáááá¯ááááºááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáááºááœá±á·áá»áá±á¬ ááŒááºááœááºážáá
áºáá¯ááᯠáááºáá®ážááŒá®áž áá¯ááºáá¯ááºáá¬ážáááºá
ááááºáá±á¬á· áá«á ááŒá¿áá¬ááŒá
áºáá¬áááºá áá»áœááºá¯ááºááá¯á·á áá®ááá¯ááẠá¡ááŒá¬ážáá°áá»á¬ážá á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá¡áá¯áá°ááá·áºáá¯á¶á
á¶á¡ááá¯ááºáž áá¯ááºáá±á¬ááºáá²á·áááºá á¡ááá¡áá»á¡á¬ážááŒáá·áºá áááºážááẠááŒá®ážáá¬ážáá±á¬ áá®áá®áá¬ááá¯ááºáá»á¬ážááŒá
áºáá»áŸááºááẠá¡áá»ááºá¡ááẠA á០B ááá¯á· áá»ááºááŒááºáž ááœáŸá²ááŒá±á¬ááºážáá²á·áááºá áá±á¬á·ááºá¡ááºáááºááŒá®ážáá±á¬ááºá á¡áá¯á¶ážááŒá¯áá°ááá¯ááºážááẠá¡áá
áºááá·áºááœááºážááŸá¯áá»á¬ážááᯠááœá±á·áá²á·ááŒáááºá á¡ááá®áá±ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯á áá»á±ážááœá¬ááŸá á¡ááºáá¬áááºáá»áááºáááºááŸá¯ ááŒááºáá±á¬ááºááœá¬ážááá·áºááá¯áẠááá°ááœá²ááŒá¬ážáá±á¬ áá¯á¶ážá
áœá²áá°áá»á¬ážááẠáá°áá®áá±á¬ ááá±á¬áá»ááºáá»á¬ážááœáẠááŸááºážááŸááºážáááºážáááºáž áááºááœá²áá¯ááºáá±á¬ááºááá¯ááºáááºááŒá
áºáááºá áááºážááẠAfter Effects ááŸá áááºááá·áºáá¯ááºáá¯ááºáá®áá®ááá¯ááœááºáááᯠááœááºááá¯ááºáá±á¬á¡áááá¹áá¬ááºáááºáá±á¬ááºáááºá
Refresh ááá¯ááºááᯠáá°ááá¯ááºážááááŒáá±á¬áºáááºážá áááºážááá¯á·áááºáá±á¬ááºááẠáá±á¬ááºážááá¯áá¬ážáá±á¬ áááºá¡ááºááá®áá±ážááŸááºážáá»á¬ážááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áááºážááá¯á·á ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº áááºááá¯ááºááŒá±á¬ááºáž áááºáá°áá»áŸ áá¬ážááááºááŒáá±á áááºážááá¯á·ááᯠáááá¯á¡ááºáá±á¬á·áá«á á¡áá¯á¶ážááŒá¯áá°á¡ááœá±á·á¡ááŒá¯á¶ááẠáá¯á¶ážáááœá²ááŒá¬ážááœá¬ážáááºááŒá áºáááºá áá°ááá¯á·á áá¬ážááŒá±á¬áá±áá°áá»á¬ážá¡ááœáẠááŸááºá á¯áá»á¬ážáá»ááºáá¬ážááŒááºážááŒáá·áº áááºážááá¯á·ááẠâáá»ááºâ áá¯ááºááá¯ááºáááºááᯠá¡áá»á¬ážá á¯áááááŒá¯áááá±á¬ááŒá±á¬áá·áºá á¥ááá¬á Slack ááŸáá·áº áááºááá¯á·ááœá¬ááŒá¬ážáááºááᯠáááá»ááºááŒáááºá áá°áž!
áá±á·á áẠáááºáá°ááŒá¯ááŒááºáž áá®ááá¯ááºáž
á¡áááºá ááá·áºááœáẠsoftware development ááœáẠá¡ááœá±á·á¡ááŒá¯á¶áá
áºáá¯áá¯ááŸááá«áá áá°á¡áá»á¬ážá
á¯ááẠá¡ááºáá¬áá±á·á
áºáá¯á¶áá
áºáá¯á¶ááᯠááŒáá·áºáá¯á¶áá»áŸáá áááºážááŸáá·áº ááááœá±á·áááºáá¶ááá·áºá¡áá«ááœáẠáááºážáá¯ááºáá±á¬ááºáááá·áºá¡áá¬áá»á¬ážááᯠáá¬ážáááºááá¯ááºáááºááá¯áááºáž áááááááºááŸá¬ á
áááºááŸá¯ááºá
áá¬ááŒá
áºááá«áááºá áááá¯ááááºá¡ááœááºáž áá¬ááœá±ááŒá
áºááá²ááá¯áᬠáááŒá±á¬áááºáá«áá°ážá á¡á²áá«ááᯠááá¯áá¯á ááá¯áẠááŒá
áºáá»ááºááŒááºáž ááẠááŒá
áºáá»ááºááŒááºáž ááŸáá·áº áááŒá
áºááá·áºáá±á¬á¡áá¬ááᯠááááŒááºážá ááááºááŒá
áºáááºá ááá¯á¡ááºáááºá
á€á¡áá¬á ááá¹ááááºá¥ááá¬áá áºáá¯ááẠáá¯á¶ážá áœá²áá°áá áºáŠážá¡á¬áž á áá¯ááºááŒáá·áºáá±áááºá spinner.gifá¡áá¯ááºá áááºáá±á¬á· ááŒá®ážááá²ááá¯á· ááœá±ážáá±áááºá áá¯ááºáááºážá ááºááẠááááºáááá±ááá¯ááºááŒá®áž gif ááẠáááºáá¬ážááŒááºá០áááºáá±á¬á·á០áá»á±á¬ááºááœááºááœá¬ážáááºááá¯ááºááŒá±á¬ááºáž developer á០ááá±á¬áá±á«ááºáááºááŒá áºáááºá á€áá¬ááœááºážááẠá¡áá¯ááºáá áºáá¯ááá¯ááºáá±á¬ááºááŸá¯ááᯠáá¯ááá¬ážáá±á¬áºáááºáž áááºážáá¡ááŒá±á¡áá±ááŸáá·áº ááááºááá¯ááºáá«á ááá¯ááá¯á·áá±á¬ á¡ááŒá±á¡áá±áá»áá¯ážááœááºá á¡áá»áá¯á·áá±á¬ áááºážááá¬ááŸááºáá»á¬ážááẠáá¯á¶ážá áœá²áá°á á áááºááŸá¯ááºááœá±ážááŸá¯á¡ááá¯ááºážá¡áá¬ááᯠá¡á¶á·á¡á¬ážááá·áºá á±áᬠáááºážááá¯á·ááá»ááºáá¯á¶ážáá»á¬ážááᯠááŸááá·áºááŒáá·áºááá¯ááŒáááºá ááá¯á·áá±á¬áºá ááŸáá·áºáá±áá±á¬áá¬áá®ááᯠáááºáá»áŸááœáŸááºááŒáááºááᯠáááááŒá¯ááááŒá®áž áááºážááẠá¡ááŸááºááááºááẠáá¯ááºáá»áŸáá¯ážáá±ááŒá®ááŒá áºááŒá±á¬ááºáž ááŒá±á¬áá«á
á€áááºááŸá¬ á¡áá»áááºááŸáá·áºáááŒá±ážáá®áááºááá¯ážá á¡ááŸá
áºáá¬áááŒá
áºáááºá ááá±á·áá±ááºááœááºá á¡áá»áááºááŸáá·áºáá
áºááŒá±ážáá® áá±áá¬áá±á·á
áºáá»á¬ážááᯠá¡ááœááºá¡áá¯á¶ážáááºážáá±áá±ážááŒá®áž áá°á¡áá»á¬ážá áááºážááá¯á·á¡á¬áž áá¶ááááŒáá·áº ááŒáá·áºááŸá¯ááŒáááºá á€áá±áá¬áá±á·á
áºá¡áá»á¬ážá
á¯ááẠNoSQL á
ááá¯ááºáá®ááá¯á· ááŒá®ážááŒá®ážáá¬ážáá¬áž ááŸá®ááá¯á¡á¬ážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áá±á·áá»á±á¬ááºááá¯ááºáá±á¬ Mongo-based ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒáááºá ááá¯á·áá±á¬áºáááºážá áá»áœááºá¯ááºá¡ááœááºá áááºážááẠCouchDB ááŸáá·áº á¡áááºááŒá±á
áœá¬ áá¯ááºáá±á¬ááºááá¯ááºááá·áºá¡ááŒáẠáá»á°ááá¯ááááºá¡áá»áá¯á·á á¡áá»ááºá¡áááºáá»á¬ážááŒáá·áº ááŒáá·áºá
áœááºážááá¯ááºáá±á¬ áá»á°ááá¯ááááºáá»á¬ážááẠááá¯áá±á¬ ááœá²á·á
ááºážáá¯á¶áá»á¬ážááᯠáá®ááá¯ááºážááœá²ááẠáááºáá°ááŒááºážááá¯á·ááᯠááá¯ááá¯áááºá áá«á·áá²á·á¡áá»áááºááœá±ááᯠááá¯áá±á¬ááºážáááºáááºáááºá
áá«áá±ááá·áº áá®ááá¯á·á áºáá²á· áááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááá±á¬á· áá®áá±á· áá»áœááºáá±á¬áºáá¯á¶ážáá±áá²á· á¡ááŒá±á¬ááºážá¡áá¬áá«á ááœá±ážáá»ááºááŸá¯ááŒáá·áºááá¯ááºáá² áá»á áºáá»á°ááŸá¯ááŒá®áž áá»ááºá áá á¯á¶ááŸááẠáá±á¬áºááá¯ááááºáá°áá«ááá»á¬ážááᯠáá»áá·áºáá¯á¶ážááŒááºážááŒá±á¬áá·áºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááẠáááºá ááºáá±ááá·áº Google real-time database áá¯ááºáá¯ááºááŸá áºáá¯á áá¯á¶ážááá»áŸáááŒá®áž áááºáááá¯ááºáá±á¬ ááŸáá¯ááºážááŸááºááŸá¯ááᯠáá±ážáá«áááºá
ááŸá
áºáá¯á
áá¯á¶ážááœáẠFire áá°áá±á¬ á
áá¬ážáá¯á¶ážááŸááááºá ááŒááºááá¯ážá
áœá¬ áááááááá¬áá±ážáá
áºáá¯á áá«á·á¡ááœáẠáá¯áááá¡áá»ááºá áá®ážá¡áá»áá¯ážá¡á
á¬ážááá°áá°ážá áá°ááá¯á·áá¬áááºááœá±ááᯠááŒá±á¬ááá¯á· á¡áá»ááºá
ááá¯áááŒá
áºáá«áá°ážá áá¬ááŒá
áºááá¯á·áá²ááá¯áá±á¬á· áá»áœááºáá±á¬áº áá
áºáá«áááºáž ááááá¯á¶áž ááŒá¿áá¬ááŒá®ážáá
áºáá¯ááŒá
áºáá²á· áá¬áááºááœá±ááᯠáá±á¬ááºááœá¬ážáááºá
ááááá
áºáá»áá¯ážáá¯áá±á«áºáááºá Firebase ááẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá±áá¬áá±á·á
áºááŸáá·áºáá¯ááá - Firebase Cloud Firestore. áá°ááá¯á·ááŸá
áºáá±á¬ááºáá¯á¶ážá áá¯ááºáá¯ááºááœá±áá«á Firebase á¡á
á¯á¶ Google áááºážááá¯á·á API áá»á¬ážááᯠá¡áá®ážáá®áž áá±á«áºáá±á«áºááŒáááºá firebase.database(âŠ)
О firebase.firestore(âŠ)
.
áá®ááá¯ááŒá áºáᬠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá±áá¬áá±á·á Ạ- á¡á²áá«á áá°áááºážáá²áá±á Firebase 2014 áá¯ááŸá áºááœáẠGoogle ááŸááááºáá°áá®á ááá¯á·áá±á¬áẠGoogle ááẠá¡ááŒáá¯ááºáá¯ááºáá¯ááºáá áºáá¯á¡ááŒá Ạáááºáá®ážááẠáá¯á¶ážááŒááºáá²á·áááºá áá°ážáá°áá« áá±áá¬áá¯áá¹ááá®ááŒá®ážáá áºáá¯ááᯠá¡ááŒá±áá¶ááŒá®áž Firebase á áááºážááᯠFirestore áá¯áá±á«áºáááºá áááŸá¯ááºáá±ážáá°ážááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá á áááºááŸá¯ááºáá±áá±ážááẠá áááºááá°áá«áá²á·á áá«ááá¯ááºááá¯áẠáá®áá±á¬ááºážáá«ážáá²á· á¡ááá¯ááºážááᯠáááºáá«ááŒááºáá±ážáááºá
ááœáŸááºááŒááá¯áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá Firebase Firebase áá±ážááœááºážááŸáá·áº áá®ážáááºááá¯áẠFirebase ááŸáá·áº áááºáááºáá±á¬ áá±ážááœááºážáá áºáá¯ááœááºá á¡áááºážáá¯á¶áž ááœááºáá²á·áá±á¬ ááŸá áºá¡áááºážáááºá Stack Overflow á¡ááŒá±á¬ááºážááᯠáááºáá¬ážáááºá á±áááºá
á¡áááºá á¡ááá¯ážááœá¬ážáá¯á¶áž áá±á¬á·ááºáá²ááºá¡áááºáá±ážááŒááºáž á¡ááœá±á·á¡ááŒá¯á¶á¡ááœáẠáá¯áá áºáᯠááŸááá²á·áá«áá áááºážááẠááŒáá¯ááºáááºáá»á¬ážáá²á០áá áºáᯠááŒá áºáá¬áááºááŸá¬ áá±áá»á¬áá«áááºá á€á¡áááºáá»á¬ážááŒá¬ážááŸá áááºážááá·áºá¡ááœá¬á¡áá±ážááẠá¡ááœááºáá±ážáááºáá±á¬ááŒá±á¬áá·áº áá±á«ááºážáá áºááá¯ááºážá០á¡ááŒá¬ážáá áºáá¯á¡ááŒá±á¬ááºáž á ááºážá á¬ážáá±áá»áááºááœáẠáááºáá»á±á¬ááºážáá áºáá»á±á¬ááºážááá¯ááºááá·áº á¡ááœá±á·á¡ááŒá¯á¶ááŸááá±á¬ á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠá áááºááŸá¯ááºááœá±ážá á±áá«áááºá á€á¡áá¬áá»á¬ážááẠá áááºá¡á¬ážáááºáááºá áœá¬ áá»ááºááœááºáá±á¬ áááºááœááºáá»ááºáá±á¬ááºážáá»á¬áž ááŒá áºááŒáááºá áá±áá¬áá±á·á áºáá®ážáá±á¬ááºáá±á¬á·áááºáá°áá±á¬ ááá±á¬áááºááŒá¯áá»ááºááᯠááŒáá·áºáááºážáá±ážáá²á·áááºá ááŒá®ážáá±á¬á· áá»áœááºáá±á¬áº áá¯á¶ážááá±á¬ááºáá±áá¬ááá¯ááºáá°ážá á€á¡áááºáá±ážáá±ážá¡á á®á¡á á¥áºááᯠáá®ááœááºáá²á·áá°ááẠááœá±ážá áá»áœá±ážááŸáá·áº áá»ááºáááºááá¯á·ááᯠááŒá áºáá±á«áºá á±áá²á·áááºá
Pyrhic á¡á±á¬ááºááœá²
Firestore ááá¯á·áá² áááºááŒáááá·áºáááºá á¡á á¬ážááá¯áž Firebase ááẠáááºážá áá»áá¯ážáááºáá Ạáá»áá¯ážáááºáá áºáá»á¬áž ááŒá áºáá±á¬áºáááºáž áááºážááẠááŸáá·áºá á¬ážááŒááºáž ááŒá áºáááá·áºáááºá Firestore ááẠFirebase á¡ááœáẠááá·áºáá»á±á¬áºáá±á¬ á¡á á¬ážááá¯ážáá áºáá¯á¡ááŒá Ạá¡á¬ááá¶áá»ááºáááŸááá«á áá áºá á¯á¶áá áºáá±á¬ááºááẠáááºážá០á áááºáááºá á¬ážá áá¬á¡á¬ážáá¯á¶ážááᯠááŒááºáá±á¬ááºááá¯ááºáá¯á¶áááŒá®áž áá»ááºá¡áá»á¬ážá á¯ááᯠáááºážá¡áá»áá¯ážáá»áá¯ážááŒáá·áº á áááºááŸá¯ááºááœá±ážáá±áá¯á¶ááááºá
ááá¯á·áá±á¬áºá áá¯ááºáá¯ááºááŸá áºáá¯ááᯠáá áºáá»ááºááŒáá·áºááá¯ááºááŒááºážááŒáá·áº ááá·áºá¡á¬áž á áááºááŸá¯ááºááœá±ážá á±áááá·áºáááº- áááºážááá¯á·ááẠá¡ááŒá±áá¶á¡á¬ážááŒáá·áº áá°áá®áá±á¬ APIs áá»á¬ážááŸáá·áº áá°áá®áá±á¬áá±áá¬áá±á·á áºá ááºááŸááºáá»á¬ážááœááºááẠáááºážááá¯á·ááẠáá°áá®áá±á¬á¡áá¬ááᯠáá¯ááºáá±á¬ááºáá¯á¶ááááºá ááœá²ááŒá¬ážááŸá¯áá»á¬ážááẠááááºááœá±á·ááŒá®áž áá»ááºááŒá±á¬ááŸáá±á¬ á á¬ááœááºá á¬áááºážáá»á¬ážááᯠááá¯áá áá¯áẠááŸáá¯ááºážááŸááºáá±á·áá¬ááŒááºážááŒáá·áºáᬠáááºááŸá¬ážáá«áááºá áá«ááŸááá¯áẠFirestore áá²á· á¡áá¯ááºáá¯ááºááá¯ááºá¡á±á¬áẠFirebase ááŸá¬ ááŒá®ážááŒáá·áºá á¯á¶áá²á· áá¯ááºááᯠááá¯á·ááá¯á· ááŒáá¯ážá á¬ážáá±áá»áááºá áá±á¬ááºá áºááŒáá·áº á¡áá»áááºááŸáá·áºáááŒá±ážáá® ááœá²áá°áá»ááẠááŒáá¯ážá á¬ážáááºááŸáá·áºá¡áá»áŸ áá±áá¬áá±á·á áºá¡ááºáá¬áá±á·á áºááẠáá®ážáááºážáá¬áááºááá¯ááẠáááºááœá±á·ááŸáááá¯ááºáááºá áá±á¬ááºáá±áá¬ááá¯ááºáá°ážááá¯á· áááºááŒá±á¬ááẠá
Firebase áááá¯ááºážááá·áºááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá¬ážáá¶áá¯ááºáá±á¬ááºááŒá®áž áá±á¬ááºáá¯á¶ážáá±ážááá·áºáá¯ááºáá±á¬ááºáá»ááºááᯠáŠážá á¬ážáá±ážááá·áº á¡ááºááááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºááŒááºáá¯ááºáá±ážááá·áºááá±á¬ááŒáá·áº áááºáá»á±ážááááºááœá±á·áá«áááºá ááá¯á·áá±á¬áºá Firestore ááœáẠá¡áá¯á¶ážááŒá¯áá°áá áºáŠážáá»áŸáẠáá áºá áá¹ááá·áºáá»áŸáẠá á¬ááœááºá á¬áááºážáá áºáá¯áá»áŸáẠáá±ážááẠ1 ááá·áºáááºáá»ááºááŸáááŒá®áž á€ááá·áºáááºáá»ááºááᯠáá¬áá¬á០ááŒáá¬ááºážáá¬ážáááºá áááºážááŸáá·áºá¡áá¯ááºáá¯ááºáá±á¬á¡áá«á ááá·áºá¡ááá®áá±ážááŸááºážááá¯áááºáá±á¬ááºáááºááŒáá¯ážá á¬ážáá±áá»áááºáááẠáááºážááá¯áááºáááºážááŸá¬ááœá±ááŒá®áž á¡ááºááááºááŸá¯ááºážááá·áºáááºáá»ááºááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááẠááá·áºááœááºáá°áááºáá«áááºá ááá¯ááá¯áááºááŸá¬ Firestore ááẠAPI ááá¯á¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºáá¬ážááá·áº real-time client ááá«áá² á¡áá»áááºááŸáá·áºáá áºááŒá±ážáá®áá±áá¬áá±á·á áºáá áºáá¯ááŒá áºáááºá
á€ááœáẠFirestore á raison d'être áááááá¯á¶ážááá¹ááá¬áá»á¬ážááá¯áá»áœááºá¯ááºááá¯á·á áááºááœá±á·ááŒááºááááºá áá»áœááºá¯ááºááŸá¬ážááá¯ááºáááºá ááá¯á·áá±á¬áº áááºáá°ááŒá®ážáá±á¬áẠGoogle á á á®áá¶ááá·áºááœá²ááŸá¯ááœáẠááŒáá·áºáá¬ážáá±á¬ áá áºá á¯á¶áá áºáá±á¬ááºááẠFirebase ááᯠááŒáá·áºááŸá¯ááŒá®áž âááá¯ááºáá°ážá á¡áᯠáá¯áá¬ážááááºá ááá¯ááºáá°ážá áá«ááᯠáááºááá¶ááá¯ááºáá«á áá«á·áá²á· áŠážáá±á¬ááºááŸá¯á¡á±á¬ááºááŸá¬ ááá¯ááºáá°áž"
á¡áááºážáá»á¬ážá០áá±á«áºáá¬ááŒá®áž áááá·áºáá±á¬áºáá°áááºáá¬ážá
"ááŒá®ážáá¬ážáá²á· JSON á á¬ááœááºá á¬áááºážáá áºáá¯áá¬ážá áááŸá áááºááẠáá±áá¬áá»á¬ážááᯠáá®ážááŒá¬ážá á¬ááœááºá á¬áááºážáá»á¬ážá¡ááŒá Ạááá¯ááºážááŒá¬ážáááºááŒá áºááŒá®ážá áá áºáá¯á á®ááẠá¡ááœááºá¡á á¬áž 1 megabyte áááºáááá¯áá«á"
ááá¯ááá¯á·áá±á¬ááá·áºáááºáá»ááºááẠáá¯á¶áá±á¬ááºáá±á¬ ááŸá¯á¶á·áá±á¬áºááŸá¯ááŸááá±á¬ á¡áá¯á¶ážááŒá¯áá°á¡ááŒá±áá¶ááŸáá·áº ááááá¯á¶ážááœá±á·áá¯á¶ááŒááºážááœáẠááŸááºáááºááá¯ááºáááºááá¯ááºáá±á á¡á²áá«ááᯠáááá¬ážá á¥ááá¬á á¡áá¯ááºááœááºá áá»áœááºá¯ááºááá¯á·ááœáẠáááºááŒáá»ááºáá±á«ááºáž áá áºáá±á¬ááºááœá²áá»á±á¬áºááŸáááŒá®áž áááºážááẠáá¯á¶ážááá¯á¶ááŸááºááŒá áºáááºá
á€ááá·áºáááºáá»ááºááŒáá·áºá áá±áá¬áá±á·á áºááŸá "á á¬ááœááºá á¬áááºáž" áá áºáá¯ááẠá¡áá¯á¶ážááŒá¯áá°áá áºáŠážááẠá á¬ááœááºá á¬áááºážáá¯áá±á«áºááá¯ááá¯ááºááá·áº áááºááá·áºá¡áá¬ááŸáá·áºáá»áŸ áááºáá°áááºááá¯ááºááŒá±á¬ááºážááᯠáááºáááºáá¶ááá±á¬á·áááºááŒá áºáááºá
"á¡ááŒá¬ážááŒááºá ááºáá»á¬áž áááºááá²áá² áá«áááºááá¯ááºáá±á¬ arrays áá»á¬ážá áááŸá á¡áááºážáá»á¬ážááœáẠáá¯áá¬ážáááẠáááºááŸááºážáá¬ážááá·áºá¡ááá¯ááºáž áá¯á¶áá± á¡áá»á¬ážááŸááá±á¬ á¡áá¬ááá¹áᯠááá¯á·ááá¯áẠáá¶áá«ááºáá»á¬ážáᬠáá«áááºáá«áááºá"
ááá¯á·ááŒá±á¬áá·áº áááºááẠGeoJSON ááᯠáááºá Firestore ááœáẠááá·áºááẠáá»áŸá±á¬áºááá·áºáá«áá áááºážááẠáááŒá áºááá¯ááºááŒá±á¬ááºáž áááºááœá±á·ááŸááááá·áºáááºá áá áºáááºáááºááá¯ááºáá±á¬ áááºááá·áºá¡áá¬ááá¯áá»áŸ áááºáá¶ááá¯ááºá áá¬áááŸááá«á JSON á¡ááœááºážááŸá Base64 ááŸáá·áº/ááá¯á·ááá¯áẠJSON ááᯠáááºááŸá áºáááºáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá
âHTTPá á¡áááá·áºáá±ážá á¬ááá¯ááºážáááááá¬áá»á¬áž ááá¯á·ááá¯áẠá á®áá¶ááá·áºááœá²áá°á¡ááá·áºááŸáá áºááá·áº JSON áááºááœááºážááŒááºážááŸáá·áº áááºááá¯á·ááŒááºážáá¬ážá áááŸá áááºááẠáá±áá¬áá»á¬ážááᯠGoogle Cloud Storage ááá¯á·áᬠáá¯ááºáá°ááá¯ááºááŒá®áž áááºááœááºážááá¯ááºáááºááŒá áºáááºá á¡á²áá«ááᯠá¡áá¯áá±á«áºáá¬ááá¯á· áááºáá«áááºá "áááºáž" ááá¯á· ááŒá±á¬áá²á·á¡áá«á Project Owner á¡áá±á¬ááºá¡áá¬ážááœá±ááŸááá²á·áá°ááœá±ááá¯áá² ááŒá±á¬ááŒáá¬áá«á áááŒá¬ážáá°ááá¯ááºáž áááºááŸááºááœá± áááºáá®ážááá¯á·ááááºá"
áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºáž FireBase áá±áá¬áá±á¬áºáááºááẠáá±á¬áºááŒáááºááœááºáá°áááºá áááºážááœáẠJSON áá®ážáá»á¬ážááᯠURL áááºážááŒá±á¬ááºážáá»á¬ážááŸáá·áº áááºá
ááºáá±ážááá·áº JSON á
á¬ááœááºá
á¬áááºážááŒá®ážáá
áºáá¯áá«ááŸááááºá á
á¬áá²á·áá±ážááẠHTTP PUT
в /
FireBase ááẠá¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááº-
{
"hello": "world"
}
á¡ááá¯áá« GET /hello
ááŒááºáá¬ááŒááááºá·ááẠ"world"
. á¡ááŒá±áá¶á¡á¬ážááŒáá·áº áááºážááẠáááºáá»áŸá±á¬áºááá·áºáá¬ážááá·áºá¡ááá¯ááºáž á¡áá¯ááºááŒá
áºáááºá FireBase á¡áá¬ááá¹áá¯áá»á¬áž á
á¯á
ááºážááŸá¯ /my-collection/:id
JSON á¡áááá¬ááºááŸáá·áº áá®áá»áŸáááºá {"my-collection": {...}}
root ááœáẠáááŸáááá¯ááºáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž /my-collection
:
{
"id1": {...object},
"id2": {...object},
"id3": {...object},
// ...
}
ááá·áºááœááºážááŸá¯áá áºáá¯á á®ááœáẠá áá áºá¡ááœáẠá á¶ááŒá±ááŸááºážáá»ááºáá áºáá¯áá«ááŸááá±á¬ ááá¯ááºááááŸá¯áááºážáá±á¬ ID ááŸááá«á áááºážááẠáá±á¬ááºážááœááºá áœá¬á¡áá¯ááºáá¯ááºáá«áááºá
áá áºáááºážááá¯ááá±á¬áº áá±áá¬áá±á·á áºááẠ100% JSON(*) áááá¬áááŒá áºááŒá®áž CouchDB áá²á·ááá¯á·áá±á¬ HTTP ááŸáá·áº áá±á¬ááºážááœááºá áœá¬á¡áá¯ááºáá¯ááºáááºá ááá¯á·áá±á¬áº á¡ááŒá±áá¶á¡á¬ážááŒáá·áº áááºááẠáááºážááᯠabstract websocketsá authorization ááŸáá·áº subscriptions áá»á¬ážááᯠáá¯ááºáá±ážááá·áº real-time API ááŸáááá·áº áááºá¡áá¯á¶ážááŒá¯áá«áááºá á á®áá¶ááá·áºááœá²áá°á¡ááá·áºááœáẠá¡áá»áááºááŸáá·áºáááŒá±ážáá®áááºážááŒááºááŒááºážááŸáá·áº JSON áááºááœááºážááŒááºáž/áá¯ááºáá°ááŒááºážááá¯á·ááᯠááœáá·áºááŒá¯áá±ážááá·áº á áœááºážáááºááŸá áºáá»áá¯ážá áá¯á¶ážááŸááááºá ááá·áºáá¯ááºááœáẠá¡áá¬ážáá°áá¯ááºáá±á¬ááºáá«áá patch ááŸáá·áº Diff JSON ááẠpersistent state ááᯠááá¯ááºááœááºááŒááºážá 90% áá¯ááºááá¯ážáá¯ááºá ááºáá»á¬ážááᯠááŒá±ááŸááºážáá±ážááŒá±á¬ááºáž áááºááá±á¬áá±á«ááºáá±á¬á¡áá« á¡áá°ážááŒá¯áá¯ááºáááºáá»áŸ ááŒá¯ááºážáá®ážáááºááᯠá¡á¶á·ááŒáááá«áááá·áºáááºá
Firestore áá±áá¬áá±á¬áºáááºááẠJSON ááŸáá·áº áááºáá°áá±á¬áºáááºáž á¡áá»áá¯á·áá±á¬áááºážáááºážáá»á¬ážááŒáá·áº ááœá²ááŒá¬ážáááºá arrays á¡ááœááºážááŸá¬ array ááœá± áááŸááá¬ááᯠáá»áœááºáá±á¬áº ááŒá±á¬áá¬ážááŒá®ážáá¬ážáá«á á á¯á ááºážááŸá¯ááœá²áá»á¬ážá¡ááœáẠáá±á¬áºáááºááẠáááºážááá¯á·áá«ááŸááá±á¬ JSON á á¬ááœááºá á¬áááºážá០ááœá²ááœááºáᬠááááááºážá á¬áž á¡áá°á¡ááá»á¬ážááŒá áºáááºá áááºážá¡ááœáẠá¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ á¡ááŸááºá ááºáá»á¬áž áááŸááá«á áá±áá¬áá»á¬ážááᯠááŒááºáááºááá°áááºááŸáá·áº áá±ážáá¬ážáááºá¡ááœáẠá¡áá°ážááŒá¯áá¯ááºáááºážááŒá±á¬ááºážáá áºáᯠááá¯á¡ááºáá«áááºá áááºáááá¯ááºááá¯ááºá á¯áá±á¬ááºážááŸá¯áá»á¬ážááá¯áá¯ááºáá±á¬ááºáááºá áááºáááºáááºáááá¯ááºááá¯áẠscript áá»á¬ážááŸáá·áºáááááá¬áá»á¬ážááá¯áá±ážáááºááá¯á¡ááºáááºá á á®áá¶ááá·áºááœá²áá°á¡ááá·áºááẠááá·áºá¡á¬áž áá áºááŒáááºáá»áŸáẠá¡ááœááºáá áºáá¯ááá¯á· áá±ážáááºáá±á¬ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááá¯áᬠááŒá¯áá¯ááºááá¯ááºá á±ááŒá®áž áááºááœááºáž/áááºááá¯á·ááá¯ááºááŸá¯ áááŸááá«á
áááºážááá¯á·ááẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® NoSQL áá±áá¬áá±á·á áºááᯠáá°áᬠá¡ááá¯á¡áá»á±á¬ááºáá»áááºáááºááŒááºážááŸáá·áº áá®ážááŒá¬ážááá¯ááºáá±á¬ JSON áá±á¬áºáá¶áá«áá±á¬ ááŸá±ážááœá±ážáá±á¬ SQL ááá¯ááºáá±á¬ SQL á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²áá²á·ááŒáááºá GraftQL áá²á·ááá¯á· áá áºáá¯áá¯.
áá±á¬á·áá»á¬áá¬áž
Firestore ááẠááá¯ááá¯áá¯á¶ááŒááºá áááºáá»áááŒá®áž á¡ááœááºá¡á á¬ážááá¯ááŒá®ážááá¯ááºáááºáᯠáá°ááá«áá áá»ááºážáá»áŸ developer ááẠFireBase ááᯠáá±á¬ááºá áºáá²á០ááœá±ážáá»ááºááŒááºážááẠáá¯á¶ááŒááºá áááºáá»áááŸá¯áááºážáá±á¬ ááŒá±ááŸááºážáá»ááºááŒáá·áº á¡áá¯á¶ážáááºááœá¬ážáááºááŒá áºáááºá Grumpy Database Administrator á០ááá¯á¡ááºáá±á¬ áá±á¬á·ááºáá²ááºáá»áá¯ážááẠáá¯ááºáá¯ááºá áááºáááºá¡ááœáẠáááºááœá±á·ááááºáá±á¬ áááºááœá±á·ááá»áá±á¬ á áœááºážáááºá¡ááá·áºáá áºáᯠááá¯á¡ááºáá«áááºá áááºážááẠHTML5 Canvas ááẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáááááá¬áá»á¬ážááŸáá·áº ááá±áá¬áááŸááá«á Flash á¡ááœáẠáá¯á¶ážáá¡á á¬ážááá¯ážáááºááá¯ááºááá·áºáá¯á¶á á¶ááŸáá·áº áááºáá°áááºá ááá¯á·á¡ááŒááºá Firestore ááẠáá»ááºážáá»áŸá á®ážááœá¬ážáá±ážá¡áá¯á¶ážááŒá¯áá°ááŸáá·áº ááá¯ážááá¯ážááŸááºážááŸááºážáááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±áá±á¬ áá±áá¬ááá·áºááŸááºážááŸá¯ááŸáá·áº ááá¯ážááœáŸá¬ážá á áºáá±ážááŒááºážá¡ááœáẠááá¹áááŸááá±áááºá á¡áá¯ááºáá¯ááºááá¬ááᯠááŸá áºáááºáááºá: áá°á·á¡ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážá á áááºááŒáá¯ááºááŒá áºáá¬ááá¯á· á¡áá¬á¡á¬ážáá¯á¶ážá á¡ááŒááºážáá«áá²á
FireBase á á¡áááá¡á¬ážáááºážáá»ááºááŸá¬ áááºáá±á¬á·ááºáá²áá±ážáá¬ážáá°á¡áá»á¬ážá
á¯ááẠáááŒá±á¬ááºážáá²ááá¯ááºááŒááºážá¡ááŒá±á¬ááºážááᯠááááá®ááœáẠáá¯á¶ážá
áœá²áá°á¡á¬áž áááºážáá¡áá»áááºáááá¯ááºáá® ááŸá
áºá¡áá±á¬áºááŒá¬á¡á±á¬áẠáááºáá®ážáá¬ážááŒááºážááŒá
áºáááºá ááá¯á·á¡ááœááºááŒá±á¬áá·áº FireBase ááẠáááºáá±áá¬ááᯠááŒá±á¬ááºážáá²áááºáᯠáá°ááá±á¬ááŒá±á¬áá·áº áá¯á¶ážá
áœá²áá°ááŸáá±ážáá±á¬ áááŒá±á¬ááºážáá²ááá¯ááºááŸá¯á¡á¬áž á¡ááœáá·áºáá±á¬ááºážááá°áá«á ááá¯á·á¡ááŒááºá áááºážááẠá¡áá¯á¶ážááŒá¯áá°áá¶ááá¯á· áá±ážááá¯á·áá±á¬ áá»áŸááºáá
áºááŒááºá¡ááœááºáž áá±áá¬ááᯠááŒááºáááºá¡áá¯á¶ážáááŒá¯áá±á¬á·áá² ááœá²ááŒá¬ážááŸá¯ááᯠááá¯ááá¯áááºáá²á
á±áááºá ááŒá®ážáá¬ážáá±á¬á
á¬ááœááºá
á¬áááºážáá»á¬ážá¡ááœááºá áááºážáááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ááœá²ááŒá¬ážááŸá¯ááá¯á¡ááŒá±áá¶ááá·áºááœá±áá±ážááœá±áá°ááá¹ááá¬ážáááºááá¯ážááŸááºážá
áœá¬ááá¯á¶áá±á¬ááºáá«á áá±á¬ááºá»á¬ážááœá± áá«ááá¯á·ááŸá¬ ááŸáááŒá®ážáá¬áž WeakMap
JavaScript ááœáẠá¡áááºááŒá±áááºá
áá±áá¬ááᯠááá¯áá»ááºáá±á¬áá¯á¶ááá¹áá¬ááºáá±ážá áá áºáááºáá»á¬ážááᯠáá±á¬ááºáááœááºážá¡á±á¬áẠááá¯ááºáá«áá á€ááŒá¿áá¬ááᯠáá»á±á¬áºááœáŸá¬ážááá¯ááºáááºá áá«áá±ááá·áº áá±áá¬áá±á·á áºáá®ááá¯ááºážááá¯ááºáᬠáá±ážáááºáá²á· áááºááœá±á·áá»áá²á· á¡ááŒá¶áá¬ááºá¡áá»áá¯á·áá²á· áá±á«ááºážá ááºáá¬ážáá²á· áááŒá±á¬ááºážáá²ááá¯ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáá²á· developer ááœá±á ááááºáá±á¬ááºážáá²á· client API ááᯠáá¯ááºááŒááºáá²á·áááºááá¯ááẠFireBase á ááá¯ááŒá®áž á áááºáááºá á¬ážááá¯á·áá±á¬ááºážáá¬ááá¬ážááá¯áᬠáá»áœááºáá±á¬áº áááá»ááºáá±áá«áááºá áááºážá¡á á¬ážá áááºážááá¯á·ááẠááá»ááºá á®ážáá±ážáá±á¬á¡áá¬ááᯠááŒá¯ááŒááºááẠááŒáá¯ážá á¬ážáá¯á¶áááŒá®áž ááá¯ááá¯ážááœá¬ážá á±áááºá
Firestore áááºáá®ážááŒááºážáá²á·áá±á¬ááºááœááºá áá¯áá¹ááá¡á¬ážáá¯á¶ážááᯠáá»áœááºáá±á¬áºááááá°ážá á¡áááºáá±á¬ááºáá±áá¹áá¬á¡ááœááºáž ááŒá áºáá±á«áºáá¬ááá·áº á á±á·áá±á¬áºáá»ááºáá»á¬ážááᯠááá·áºááŸááºážááŒááºážáááºáááºáž áá»á±á¬áºááœáŸááºááŸá¯á áá áºá áááºáá áºááá¯ááºážááŒá áºáááºá á¡ááœááºáááºáá°áá±á¬áºáááºáž ááŸáá¯ááºážááŸááºáááááá¯ááºáá±á¬ áá±áá¬áá±á·á áºááŸá áºáá¯á áááºá ááºááŸá¯ááŸá¬ á¡ááœááºááŸá¬ážáá«áááºá áá áºá á¯á¶áá áºáá±á¬ááºáááºáááá¯áá»áá¯ážá "Firebase ááẠGoogle Cloud ááœáẠáá»áœááºá¯ááºááá¯á· á¡áá¯áá°ááá¯ááºáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯áá¬ááŒá áºáááº"ááá¯á·áá±á¬áº áááºááœá±á·ááá¹áá¬ááá¯á¡ááºáá»ááºáá»á¬ážááᯠááœá²ááŒá¬ážáááºááŸááºááŒááºáž ááá¯á·ááá¯áẠááá¯ááá¯á¡ááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº ááá¯ááºáá®áá±á¬ á¡áá¯á¶ážáááºáá±á¬ááŒá±ááŸááºážáááºážáá»á¬áž áááºáá®ážááŒááºážááá¯ááºáᬠááá±á¬ááá¬ážááᯠáááœá±á·ááŸááá±ážáá«á â developer ááœá± á ááºážá á¬ážááŒáá·áºáá¡á±á¬ááºá UI ááᯠááŸáá¡á±á¬ááºáá¯ááºáá«... áá®ážáááºááá·áºááá¯á·áááá¬áž"
áá±áá¬áááºáá±á¬ááºáá¯á¶áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá¬á¡áá»áá¯á·ááᯠáá»áœááºá¯ááºáá¬ážáááºáá«áááºá áá±áá¬áá±á·á
áºá០á¡ááŒá®ážá
á¬ážááœá²á·á
ááºážáá¯á¶á á¡á¬áá¯á¶áá¶á
á¬ážááŸá¯ááŸááºááá»áŸááᯠá
áááºáá°ážáááºááŒáá·áºááẠ"JSON áá
áºáááºááŒá®ážáá
áºáááºááŸá á¡áá¬á¡á¬ážáá¯á¶áž" á¡áá°á¡áááᯠáá»áœááºá¯ááºáá±áá»á¬áá±á«ááºááŒááºáááºá áá¶ááááŸááá±á¬áá±áá¬ááœá²á·á
ááºážáá¯á¶ Fractal ááá¯ááá¯ážááŸááºážá
áœá¬ááŒá±ááŸááºážáááºáá±á¬á·ááºáá²ááá¯áá»áŸá±á¬áºááá·áºááŒááºážáááºááá¯ážááŸááºážáá«áááºá ááá¯ážááœá¬ážáá²á· áá¯ááºááœá±ááᯠá
á
áºáá±ážááŸá¯ááœá± ááŒá¯áá¯ááºááŒá®ážááŒá® ááá¯áá¬ááᯠááœá±ážááŒáá·áºááá¯á·áá±á¬áẠáááá¯áá«áá°ážá áááºážáá°ááœá± á¡áááºáááºááááºáá°ážáá²á· á¡áá¬ááœá±ááᯠáá«ááŒááºáá°ážáááºá. áá«áá±ááá·áº áááºááá¯áá¯á¶á
á¶áá±á¬ááºážáá²ááá¯áá¬ááá¯áááºáž áááá«áááºá
FireBase ááá±ážááŒááºážáá»ááºáá¶á·ááá¯ážááŸá¯ááẠáááºááá·áºá á¶ááŸá¯ááºážááŒáá·áºáááᯠáá¶á·áá»ááºážááŒá®áž áááºááœá±á·ááœáẠáááŸááá«á ááá¯ážáááºááŸá¯ ááá¯á·ááá¯áẠá¡áááºážáá¯á¶áž ááŒááºáááºááŒááºáááºááŸá¯ ááá¯á¡ááºáááºááŸá¬ áá±áá»á¬áá«áááºá ááá¯á·áá±á¬áº Firestore ááẠááá¯ážááŸááºážáá±á¬ SQL ááœááºááœá±á·ááá±á¬ áá°áá®áá±á¬áá áºáááºááŒááºá¡ááœáŸááºážááááºážáá»á¬ážááᯠááá·áºáááºáá¬ážáá±á¬ááŒá±á¬áá·áº ááá¯áá±á¬ááºážáááºááá¯ááºáá±á ááŸá¯ááºááŸááºáááºáá±áá±á¬ áá±áá¬áá»á¬ážáá±á«áºááœáẠáá°áá»á¬ážáá¯ááºáá±á¬ááºááá·áº á á¯á¶á ááºážáá±ážááŒááºážááŸá¯áá»á¬ážááᯠááá¯á¡ááºáá«áá áááºááẠá á¬áá¬ážá¡ááŒáá·áºá¡á á¯á¶ááŸá¬ááœá±ááŸá¯á á¡áá»áá¯ážá¡á á¬ážáá±á«ááºážá á¯á¶ á á áºáá¯ááºááŸá¯áá»á¬ážááŸáá·áº á áááºááŒáá¯ááºá¡áá¯á¶ážááŒá¯áá°áááºááŸááºáá¬ážáá±á¬ ááŸá¬áá°ááŸá¯ ááá¯á¡ááºáá«áááºá ááá¯ááá¯áá®ážáááºá áœá¬á á áºáá±ážáá±á¬á¡áá«ááœáẠááá¯ážááá¯áž SQL ááá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠáááºážááá¯á·áá¬áá¬á¡ááœáẠá¡ááá·áºá¡áááºáá»á¬ážááŸááááºá ááá¯á·á¡ááŒááºá áá¯ááºáá¯ááºááŸá¯ááœááºáá°áá»á¬ážáá¯ááºáá±á¬ááºááá¯ááºááá·áºáá áºáá¯áááºážáá±á¬ SQL queries áá»á¬ážáááºááŒááºáááºáá±á¬áá±ážááœááºážáá»á¬ážááŒá áºáááºá ááœá±ážáá±á«áºááŒá±á¬áºááŒááºááá¯ááºáá±á¬ áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááŸáá·áºá¡áá° á áááºááŒáá¯áẠá¡ááœáŸááºážáá±ážááŒááºážááá¯ááºáᬠááŒá±ááŸááºážáá»ááºáá áºáᯠááá¯á¡ááºáá«áááºá á¡ááŒá¬ážá¡áá¬á¡á¬ážáá¯á¶ážá¡ááœááºá á¡áááºážáá¯á¶áž ááá¯ážááŒáá·áºááŒá±áá¯á¶-áá»áŸá±á¬á·áá»ááŒááºáž ááá¯á·ááá¯áẠá¡áá¬ážáá°á¡áá¬áá áºáᯠááŸáááá·áºáááºá
áááºážááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºá¡ááœáẠGoogle Docs ááᯠáááºááŸá¬ááœá±áá«áá áááºááẠBigTable ááŸáá·áº BigQuery áá²á·ááá¯á·áá±á¬ á¡áá¬áá»á¬ážá áŠážáááºáá¬ááá¯á· ááœáŸááºááŒáááá·áºáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá ááá¯á·áá±á¬áºá á€ááŒá±ááŸááºážáá»ááºá¡á¬ážáá¯á¶ážááẠá¡ááœááºááááºáááºážáá±á¬ áá±á¬áºááá¯ááááºá¡áá±á¬ááºážááá¯ááºáᬠáááºážá áá¬ážáá»á¬ážááŒáá·áº ááá¯ááºáá«ááœá¬ážáááŒáá·áº áááºááẠáá»ááºááŒááºá áœá¬ áá±á¬ááºááŒá±á¬ááºážááŒááºááŸáá·áºáᬠá¡ááŒá¬ážá¡áá¬áá áºáá¯ááᯠá áááºááŸá¬áá±á¬á·áááºááŒá áºáááºá
á¡áá»áááºááŸáá·áºáá áºááŒá±ážáá® áá±áá¬áá±á·á áºáá áºáá¯ááŒáá·áº áááºááá¯áá»ááºááá·áº áá±á¬ááºáá¯á¶ážá¡áá¬ááŸá¬ á á®áá¶ááá·áºááœá²ááŸá¯ áá á¬á áá±ážááŸá áá°áá»á¬ážá¡ááœáẠáááºáá®ážáá¬ážááá·áº á¡áá¬ááŒá áºáááºá
(*) áá«áá¬ááááºááá¯á·áá±á¬á· áááŸááá«áá°ážá
ááŒá±á¬áºááŒá¬á¡ááŒá áº
ááá¯ááá¯ááºááŸá¬áááº
source: www.habr.com