27
Data processing components architecture in mobile applications Malakhovskyi Vitalii iOS Developer @

Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Embed Size (px)

Citation preview

Page 1: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Data processing components architecture

in mobile applications

Malakhovskyi Vitalii iOS Developer @

Page 2: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Why?

Page 3: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Can we talk about architecture?

Page 4: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Benefits:- you know what to do - code review - it saves your time - better code

Page 5: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

The type of application you are building:

Business Logic

CRUD

Active Record Data Mapper

Page 6: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Active Record

Page 7: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

id name surname1 Vasya Bananoshvili2 Evgen Lypan

Page 8: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Active Record Instance

- create - save - delete

- findBy - validate - work

- firstName - lastName

Page 9: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"
Page 10: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Domain

Data

Presentation

View Model

Page 11: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Advantages:- easy to use - easy to implement

Page 12: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Disadvantages:- violates SRP - hard to unit test

Page 13: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Data Mapper

Page 14: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Business Object

- firstName - lastName - middleName

Page 15: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Antenna

Antenna Adapter

Cloud Adapter

Magic Adapter

Application

How it works?

Cloud

Magic

Page 16: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Data Access Object or Data Mapper

Data Mapper Instance

Data Source

Parser

Application

< CRUD >

JSON

Serializer

JSO

N

Obj

ect

JSO

N

Obj

ect

Object

Page 17: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"
Page 18: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Database Mapper Network Mapper

Mapper with strategy

?

Strategy

Page 19: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Magic Mapper

Mapper

Repository

Parser / SerializerCloud Mapper Antenna Mapper

Parser / Serializer Parser / Serializer

Page 20: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Advantages:- separation of concerns - allows easy unit testing

Page 21: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Disadvantages:- adds another layer of abstraction

Page 22: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"
Page 23: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Conclusion

Data mapper better Active Record

Active Record better Data mapper

Page 24: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

“Architecture is about intent, not frameworks”

- Robert C. Martin

Page 25: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Thank you!

Page 26: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

Contact me:

purpleshirted crimsongf Vitaliy Malakhovskiy

Page 27: Lviv MD Day 2015 Малаховський Віталій "Архітектура компонентів обробки даних в мобільному додатку"

1. Martin Fowler - Presentation Domain Data Layering http://martinfowler.com/bliki/PresentationDomainDataLayering.html

2. Active Record vs. Data Mapper http://culttt.com/2014/06/18/whats-difference-active-record-data-mapper/

3. The Clean Architecture http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

What to read?