“Object Oriented Ruby” by Michał Papis.

34
OORuby @mpapis

Transcript of “Object Oriented Ruby” by Michał Papis.

Page 1: “Object Oriented Ruby” by Michał Papis.

OORuby

@mpapis

Page 2: “Object Oriented Ruby” by Michał Papis.

Why?

Page 3: “Object Oriented Ruby” by Michał Papis.

1. Breaking encapsulation

Page 4: “Object Oriented Ruby” by Michał Papis.

1. Breaking encapsulation2. Lack of inheritance

Page 5: “Object Oriented Ruby” by Michał Papis.

1. Breaking encapsulation2. Lack of inheritance3. Forcing immutability

Page 6: “Object Oriented Ruby” by Michał Papis.

Encapsulation

Page 7: “Object Oriented Ruby” by Michał Papis.
Page 8: “Object Oriented Ruby” by Michał Papis.

INPUT

Page 9: “Object Oriented Ruby” by Michał Papis.

OUTPUT

Page 10: “Object Oriented Ruby” by Michał Papis.

DOCUMENTATION

Page 11: “Object Oriented Ruby” by Michał Papis.
Page 12: “Object Oriented Ruby” by Michał Papis.
Page 13: “Object Oriented Ruby” by Michał Papis.
Page 14: “Object Oriented Ruby” by Michał Papis.

Mixins

Page 15: “Object Oriented Ruby” by Michał Papis.

Patterns

Page 16: “Object Oriented Ruby” by Michał Papis.

Example 1.

Page 17: “Object Oriented Ruby” by Michał Papis.

Example 2.

Page 18: “Object Oriented Ruby” by Michał Papis.

Example 3.

Page 19: “Object Oriented Ruby” by Michał Papis.

Composition

Page 20: “Object Oriented Ruby” by Michał Papis.
Page 21: “Object Oriented Ruby” by Michał Papis.
Page 22: “Object Oriented Ruby” by Michał Papis.
Page 23: “Object Oriented Ruby” by Michał Papis.
Page 24: “Object Oriented Ruby” by Michał Papis.

Exa

mp

le 4

.

Page 25: “Object Oriented Ruby” by Michał Papis.

Exa

mp

le 5

.

Page 26: “Object Oriented Ruby” by Michał Papis.

Inheritance

Page 27: “Object Oriented Ruby” by Michał Papis.

Layers

Page 28: “Object Oriented Ruby” by Michał Papis.

Example 6.

Page 29: “Object Oriented Ruby” by Michał Papis.

What’s next

Page 30: “Object Oriented Ruby” by Michał Papis.

Typed Ruby

Page 31: “Object Oriented Ruby” by Michał Papis.

Typed Ruby1. Contracts

Page 32: “Object Oriented Ruby” by Michał Papis.

Typed Ruby1. Contracts2. Interfaces

Page 33: “Object Oriented Ruby” by Michał Papis.

Summary