principles desing in functional perspective

16
Leonardo Amarilho

Upload: leopoa

Post on 02-Jul-2015

121 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Principles Desing in functional perspective

Leonardo Amarilho

Page 2: Principles Desing in functional perspective
Page 3: Principles Desing in functional perspective

Design Functional

Page 4: Principles Desing in functional perspective

Fail...

Page 5: Principles Desing in functional perspective

Difficult to find material

Page 6: Principles Desing in functional perspective
Page 7: Principles Desing in functional perspective

Design Principles from Functional Perspective

Page 8: Principles Desing in functional perspective

SOLID Principles

Page 9: Principles Desing in functional perspective

Single-responsablity Principle

A class should have one, and

only one, reason to

change. The

fundamental unit

of abstraction is the function

Page 10: Principles Desing in functional perspective

Open/closed Principle

You should be able to extend

a classes bahavior,

without modify

it

The

functions can

be substituted at will.

Don’t need to thinking about it

Page 11: Principles Desing in functional perspective

Liskov substituiton Principle

Derived clases must be

substitutable for their

base classes

Most

ambitions of the

Liskov substitution are

effectively trivial in FP

Page 12: Principles Desing in functional perspective

Interface Segregation Principle

Make fine grained interfaces

that are client

specific Functions

are segregated

by default definition

Page 13: Principles Desing in functional perspective

Dependency Inversion Principle

Depend on abstractions,

not on concretions The

side-effect free

nature of FP provide for

dependency inversion

Page 14: Principles Desing in functional perspective

Conclusion

The principles are absorved by functional

language in a natural way. The OO Patterns

still exists in the function paradigm,

but the implementation details differ.

Page 15: Principles Desing in functional perspective

Functional programming is more a mindset than a particular set of tools or language.

“Functional Thinking” Neal Ford - IBM Developer Work Series

Page 16: Principles Desing in functional perspective