Лев Сивашов: "Lean Architecture and DCI"

23
OOP revisited Data, Context and Interactions Lev Sivashov Dnipropetrovsk July 31, 2014

Transcript of Лев Сивашов: "Lean Architecture and DCI"

Page 1: Лев Сивашов: "Lean Architecture and DCI"

OOP revisited

Data, Context and Interactions

Lev Sivashov

Dnipropetrovsk

July 31, 2014

Page 2: Лев Сивашов: "Lean Architecture and DCI"

2

In OOP we trust

Cohesion

Polymorphism

Encapsulation

Classes

Mixins

Traits

Interfaces

Encapsulation

Objects

Packages

Aspects

Instances

DelegationAbstractions

Prototypes

Messages

Patterns

Meta-classes

Decoupling

Inheritance

Page 3: Лев Сивашов: "Lean Architecture and DCI"

3

Network of communicating objects

Page 4: Лев Сивашов: "Lean Architecture and DCI"

4

Network of communicating objectswith a common goal

Page 5: Лев Сивашов: "Lean Architecture and DCI"

5

A class

?

??

?

Page 6: Лев Сивашов: "Lean Architecture and DCI"

6

A class

?

??

?

Static classes are not capable of reflecting the dynamic objects network

Page 7: Лев Сивашов: "Lean Architecture and DCI"

7

To extend end user's mental model

Page 8: Лев Сивашов: "Lean Architecture and DCI"

8

To extend end user's mental model

which is not inside an objectbut between objects

Page 9: Лев Сивашов: "Lean Architecture and DCI"

9

Lean

Agile

DCI

Page 10: Лев Сивашов: "Lean Architecture and DCI"

10

The DCI paradigm

Trygve Reenskaug, Jim Coplien

Page 11: Лев Сивашов: "Lean Architecture and DCI"

11

Some objects

Page 12: Лев Сивашов: "Lean Architecture and DCI"

12

1

2

3

...and a use case

Page 13: Лев Сивашов: "Lean Architecture and DCI"

13

1

2

3

...or this way

Page 14: Лев Сивашов: "Lean Architecture and DCI"

14

4

1

3

1

2

3

2

...and another one

Page 15: Лев Сивашов: "Lean Architecture and DCI"

15

1 3

4

1

2

3

2

...or this way

Page 16: Лев Сивашов: "Lean Architecture and DCI"

16

1 3

4

1

2

3

2

1

2

3

Page 17: Лев Сивашов: "Lean Architecture and DCI"

17

1 3

4

1

2

3

2

1

2

3

12

3

4

Page 18: Лев Сивашов: "Lean Architecture and DCI"

18

1

2

3

1

2

3

Page 19: Лев Сивашов: "Lean Architecture and DCI"

19

1

2

3

1

2

3

Data

Page 20: Лев Сивашов: "Lean Architecture and DCI"

20

1

2

3

1

2

3

Data

Context

Page 21: Лев Сивашов: "Lean Architecture and DCI"

21

1

2

3

1

2

3

Data

Context

Interactions

Page 22: Лев Сивашов: "Lean Architecture and DCI"

22

what the system is what the system does

Objects Use case

Roles

Page 23: Лев Сивашов: "Lean Architecture and DCI"

Your QR Code

Lev Sivashov

[email protected]

https://github.com/lpld/simple-scala-dci

Simple DCI implementation in Scala:

Any questions