SlideShare a Scribd company logo
Ivan Vavilov "Persistency, Dao"
RedMadRobot
Агенда
- Persistence
- Идеология DAO
- Demo
- Недостатки
01
Персистентность
- Сохранить данные
- Обновить данные
- Считать сохранённые данные
- Удалить сохранённые данные
- Синхронизировать данные с сервером
02
ЗАДАЧИ
Персистентность
- Каждый раз запрашиваем все
- Запрашиваем то, чего не хватает
- Сложная БЛ хранения и запросов
03
Подходы к хранению
Синхронизация данных с сервером
- GET /entities -> { headers } { body }
- HEAD /entities -> { headers } Etag
- GET /entities If-Modified-Since: 1454590970 ->304 Not Modified
04
ПРИМИТИВНЫЙ СЛУЧАЙ
Основные термины
- DAO
- Entity
- Entry
- Translator
05
06
http://bit.ly/2nXspsh
DAO
- Взаимодействие с DAO посредством легковесных
объектов (структур)
- Инжектируемость
- “Соединение” с БД
- Потокобезопасность
- Транзакционность
07
ИДЕОЛОГИЯ
DAO
- persist(Entity) -> Bool
- persist([Entity]) -> Bool
- read(ID) -> Entity
- read() -> [Entity]
- erase(ID) -> Bool
- erase() -> Bool
08
ИНТЕРФЕЙС
Tranlator
- toEntry(Entity) -> Entry
- toEntries([Entity]) -> [Entry]
- toEntity(Entry) -> Entity
- toEntities([Entry]) -> [Entity]
09
ПРИМЕР ИНТЕРФЕЙСА.
DAO
10
DAO
ConcreteDAO
Translator
ConcreteTranslator
ConcreteService
Demo
http://bit.ly/2oDXroN
Android
http://bit.ly/2naxAI2
Недостатки
- Невозможность использовать особенности
конкретной БД
- Производительность на большом количестве
объектов
- Дублирование кода
- Несколько соединений к БД
13
Итоги
- Вход/выход из фонового потока координируется
сервисами
- Изолированная база данных = безопасная база
данных
- Может не подойти под конкретный проект
14
Иван Вавилов

iv@redmadrobot.com

More Related Content

PDF
Android осень 2013 лекция 6
PDF
CloudDisk
PPTX
PDF
Open stack в 2ГИС
PPTX
Oracle NoSQL Database
PDF
Новые возможности распределенной обработки данных в памяти (Coherence)
PDF
Сергей Чистович "Подходы к кешированию на UGC-сервисе"
PDF
Информационные технологии в эру Больших данных
Android осень 2013 лекция 6
CloudDisk
Open stack в 2ГИС
Oracle NoSQL Database
Новые возможности распределенной обработки данных в памяти (Coherence)
Сергей Чистович "Подходы к кешированию на UGC-сервисе"
Информационные технологии в эру Больших данных

Similar to Ivan Vavilov "Persistency, Dao" (20)

PPTX
Информационные технологии в эру Больших данных
PDF
История успеха Яндекс.Почты
PPTX
Реляционные базы данных
PDF
Евгения Курмачева (Oracle): Oracle Database 12c
PPTX
Druid - Interactive Analytics At Scale
PDF
Java Persistence API (JPA) Basics
PDF
Oracle Big Data. Обзор технологий
PDF
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
PPTX
Oracle Big Data proposition
PPTX
Новые возможности платформы Oracle 12c для хранилищ данных
PPTX
Oracle Database 12c. Консолидация и Мультиарендность
PDF
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
PPTX
Short enterprise data hub on apache hadoop ru
PDF
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
PDF
Подход Oracle к управлению метаданными для аналитических систем
PPTX
Управление данными (хранилища данных и OLAP)
PPTX
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
PDF
Создание географически-распределенных датацентров на базе инженерных систем
PDF
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
PPT
14 расширенные возможности корпоративных субд
Информационные технологии в эру Больших данных
История успеха Яндекс.Почты
Реляционные базы данных
Евгения Курмачева (Oracle): Oracle Database 12c
Druid - Interactive Analytics At Scale
Java Persistence API (JPA) Basics
Oracle Big Data. Обзор технологий
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
Oracle Big Data proposition
Новые возможности платформы Oracle 12c для хранилищ данных
Oracle Database 12c. Консолидация и Мультиарендность
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Short enterprise data hub on apache hadoop ru
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Подход Oracle к управлению метаданными для аналитических систем
Управление данными (хранилища данных и OLAP)
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Создание географически-распределенных датацентров на базе инженерных систем
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
14 расширенные возможности корпоративных субд
Ad

More from IT Event (20)

PDF
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
PDF
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
PDF
Max Voloshin - "Organization of frontend development for products with micros...
PDF
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
PDF
Konstantin Krivlenia - "Continuous integration for frontend"
PPTX
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
PDF
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
PDF
Vladimir Grinenko - "Dependencies in component web done right"
PDF
Dmitry Bartalevich - "How to train your WebVR"
PDF
Aleksey Bogachuk - "Offline Second"
PDF
James Allardice - "Building a better login with the credential management API"
PDF
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
PPTX
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
PPTX
Алексей Рагозин "Java и linux борьба за микросекунды"
PPTX
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
PDF
Наш ответ Uber’у
PDF
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
PDF
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
PDF
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
PDF
Mete Atamel "Resilient microservices with kubernetes"
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Max Voloshin - "Organization of frontend development for products with micros...
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Konstantin Krivlenia - "Continuous integration for frontend"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Vladimir Grinenko - "Dependencies in component web done right"
Dmitry Bartalevich - "How to train your WebVR"
Aleksey Bogachuk - "Offline Second"
James Allardice - "Building a better login with the credential management API"
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Алексей Рагозин "Java и linux борьба за микросекунды"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Наш ответ Uber’у
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Mete Atamel "Resilient microservices with kubernetes"
Ad

Ivan Vavilov "Persistency, Dao"