2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend...
Transcript of 2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend...
Parse.com
MBaaS зйз пмбпрвдллыи backend?
Sergey SorokinAndroid developer
Rosberry
MBaaS?
MBaaS - Mobile Backend as a service
• Backendless• Deployd• Firebase• Parse• etc.
Продукеия Parse.com
• Core• Push notifications• Analytics
Мобильные платформы
Push notifications and Analytics
Core
Core
Бажа галлыт:
• Class - рабйзуа ({"results":[{},{},{}]})• Object - жанзпь в рабйзуд
Пмйуфдлзд галлыт:
• Query - жаномп
Core. Object
{
"objectId": "4K8Lt5MjWW“,
"createdAt": "2015-04-30T06:02:06.543Z",
"updatedAt": "2015-04-30T08:50:35.049Z",
"ACL": {}
}
Макпзкайьлыи оажкдо мбъдкра - 128 KBМакпзкайьлмд кмйзфдпрвм кйаппмв - 200
Core. Object. Типы данных
• String• Number• Boolean• Array• Object• Date• ParseObject (PFObject)• ParseFile (PFFile)• ParseUser (PFUser)• ParseRelation (PFRelation)• Null
Core. User. Аутентификаеия
• Parse.com (email + наомйь)• Facebook• Twitter• Аурдлрзсзкаузя п зпнмйьжмвалздк
прмомллзт пдппзи (Google+, VK, LinkedIn etc)
Core. User class. User object
{
"username": “”, // Уникальное имя
"bcryptPassword": “”,
"email": “”, // Уникальный email
"emailVerified": “”,
"authData": “”, // Особые данные
"sessionToken": “”
}
Core. File object
Byte array
Parse server
File storage
Parse server
URL
File
Дм 10 Mb
Core. File object
{
"objectId": "lBF18m0FqR“,
"createdAt": "2015-05-06T08:50:35.049Z",
"updatedAt": "2015-05-06T08:50:35.049Z",
"imageFile": {
"__type": "File",
"name": “file_name.jpg",
"url": "http://files.parsetfss.com/generated_dir_name/file_name.jpg"
},
"user": {
"__type": "Pointer",
"className": "_User",
"objectId": "fm8ohfD0Tv"
}
}
Core. Query
• Where (not) equal to• Where greater/less (or equal) than• Where (not) contained in• Order by ascending / descending• Count (рмйькм кмйзфдпрвм лаигдллыт мбъдкрмв)
Geo points• Where near (нм укмйфалзю 100 кзйь)• Where within kilometers/miles/geo box
Core. Query. Огранижения
• Limit (нм укмйфалзю 100)• Skip (нм укмйфалзю 0)
Огоалзфдлзя• Макпзкайьлмд жлафдлзд limit - 1000• Макпзкайьлмд жлафдлзд skip - 10000• Заномп count - 160 / кзл гйя каегмгм
нозймедлзя
Core. Cloud Code
JS
Core. Cloud Code. Функеии
Parse.Cloud.define("averageStars", function(request, response) { var query = new Parse.Query("Review");
query.equalTo("movie", request.params.movie);
query.find({ // query.each()
success: function(results) {
var sum = 0;
for (var i = 0; i < results.length; ++i) {
sum += results[i].get("stars");
}
response.success(sum / results.length);
},
error: function() {
response.error("movie lookup failed");
}
});
});
Core. Cloud Code. Функеии
• Mailgun• Mandrill• Moment• Parse Image• SendGrid• Stripe• Twilio• Underscore
Core. Cloud Code. Триггеры
• beforeSave• afterSave• beforeDelete• afterDelete
Cloud Code. Огранижения
• Нд оабмрадр limit з skip• Водкя вынмйлдлзя сулкузз – какпзкук 15
пдкулг• Водкя вынмйлдлзя розггдоа – какпзкук 3
пдкулгы• Макпзкайьлмд кмйзфдпрвм мбъдкрмв,
кмрмомд кмедр бырь мбоабмралм в мглмк query – 500.000
Core. Background job
• Дмнупрзкмд водкя оабмры – гм 15 кзлур• Нд бмйьхд мнйафдллмгм кмйзфдпрва
background job мглмводкдллм (лзкакзт мфдодгди)
Эпилог
Оглмжлафлм га, дпйз:• Тмйькм аврмозжаузя з тоалдлзд лапромдк
нмйьжмвардйя (нйюп тоалдлзд лдбмйьхмгм кмйзфдпрва галлыт)
• Пух• Алайзрзка
Снапзбм жа влзкалзд!