Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,987 views

Published on

Published in: Internet
  • Be the first to comment

"Без Бэкенда" — Андрей Саломатин — доклад на 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

×