34
OORuby @mpapis

“Object Oriented Ruby” by Michał Papis

Embed Size (px)

Citation preview

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