"Без Бэкенда" — Андрей Саломатин — доклад на MoscowJS 12

1,919 views

Published on

Published in: Internet
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,919
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
6
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

"Без Бэкенда" — Андрей Саломатин — доклад на MoscowJS 12

  1. 1. Без Бэкенда Андрей Саломатин @filipovskii MoscowJS 12
  2. 2. основная работа на сервере Раньше
  3. 3. Сейчас Развитие браузеров и мобильных устройств Появление облачной инфраструктуры
  4. 4. 2004 простой клиент
  5. 5. 2014 сложный клиент
  6. 6. Сейчас wow SUCH CLOUD very frontend
  7. 7. Как не думать о сервере? 1. Использовать только локальное хранилище 2. Прикрутить готовый бэкенд 3. Гибридное решение
  8. 8. Локальные хранилища Cookie Local Storage IndexedDB
  9. 9. Local Storage
  10. 10. Local Storage API localStorage.setItem(‘key’, ‘value’); localStorage.getItem(‘key’); localStorage.removeItem(‘key’);
  11. 11. Local Storage Tricks localStorage.setItem( ‘key’, JSON.stringify(obj)); JSON.parse(localStorage.getItem(‘key’));
  12. 12. CanIUse Local Storage
  13. 13. Ограничения Local Storage 5 Mb Ключи и значения — строки Запросы не поддерживаются
  14. 14. IndexedDB
  15. 15. IndexedDB Local Storage API Размер Запросы Поддержка Сложное Не ограничен На индексах Нет в Safari, Opera Mini Простое 5Mb Не поддерживаются Нет в Opera Mini
  16. 16. Локальное хранилище
  17. 17. Локальные vs Удалённые За локальные: Работа в оффлайн, при медленном интернете За удалённые: Синхронизация между устройствами
  18. 18. Когда локального хранилица достаточно? Игры Прототипы Другие приложения, которые не требуют синхронизации
  19. 19. BaaS на примере
  20. 20. Parse инициализация Parse.initialize( “your-application-id”, “your-javascript-key”);
  21. 21. Parse регистрация Parse.User.signUp(username, password) .done(function(user) {}) .fail(function(error) {});
  22. 22. Parse авторизация Parse.User.logIn(username, password) .done(function(user) {}) .fail(function(error) {}); Parse.User.logOut();
  23. 23. Parse сохранение var todo = new Parse.Object.extend(“Todo”); todo.set(“text”, “Nothing”); todo.set(“checked”, true); todo.save() .done(function(saved) {}) .fail(function(error) {});
  24. 24. Parse запросы var Todo = Parse.Object.extend(‘Todo’); var query = new Parse.Query(Todo); query.equalTo(‘checked’, false); query.find() .done(function(array) {}) .error(function(error) {});
  25. 25. Parse Data Browser
  26. 26. Другие возможности Parse CloudCode (кастомный код, node.js) Push уведомления Работа с файлами …
  27. 27. BaaS
  28. 28. BaaS vs Свой Бэкенд За BaaS: SDK для всех платформ Затраты на разработку, поддержку За Свой Бэкенд: Хранение критичных пользовательских данных Кастомный код на сервере
  29. 29. Альтернативы Parse Apache usergrid_ (на его основе Apigee) Kinvey Built.io
  30. 30. Гибридные решения на примере
  31. 31. Hoodie инициализация var hoodie = new Hoodie( “http://localhost:6007/_api“);
  32. 32. Hoodie регистрация hoodie.account.signUp(username, password) .done(function(user) {}) .fail(function(error) {});
  33. 33. Hoodie авторизация hoodie.account.signIn(username, password) .done(function(user) {}) .fail(function(error) {}); hoodie.account.signOut();
  34. 34. Hoodie сохранение var hoodie = new hoodie(); hoodie.store.add(‘todo’, { text: ‘nothing’, checked: true }) .done(function(todo) {}) .fail(function(error) {});
  35. 35. Hoodie запросы hoodie.store.findAll(‘todo’) .done(function(results) {}) .fail(function(error) {});
  36. 36. Архитектура Hoodie
  37. 37. Фото Maddie
  38. 38. Архитектура Hoodie
  39. 39. Hoodie vs Всё Остальное За Hoodie: Offline по-умолчанию Расширения на node.js За Всё Остальное: Hoodie пока только в разработке (web + iOS) Серверный код Hoodie нужно развернуть самому
  40. 40. Альтернативы Hoodie
  41. 41. Альтернативы Hoodie PouchDB (IndexedDB <-> CouchDB)
  42. 42. Когда без бэкенда не обойтись?
  43. 43. Когда без бэкенда не обойтись? Нужна высокая произоводительность REST API недостаточно Много работы не от фронтенда
  44. 44. Думайте о пользователе. Не о сервере.
  45. 45. Материалы: http://andreysalomatin.me/ no-backend

×