1. Objects in the Cloud Edizione 2014 Marco Parenzan
2. Objective Thinking about #state, #objects and how #cloud
need respect using #state and writing #objects
3. Musing about some modern #misconceptions
4. We cannot take it for granted that The network is reliable
Latency is negligible bandwidth is infinite the net is safe the
topology doesn't change The transport cost is negligible/zero the
network is homogeneous there is only one administrator Mauro
Servienti - http://www.communitydays.it/events/2014/vs06/
5. Objects in the Cloud Can we apply traditional object
oriented principles to the #cloud? Can we think #state as just
#objects value?
6. Why thinking about #state? #state does not fits so well in
the #cloud with: #network #scaling #mainteinance #performances
7. What is #state here?
8. Understanding #state and #behavior
9. What is state? Is a set of attributes (of something) that
allows you to identify and characterize it State is something that
is maintained in absence of inputs
10. State and #software Every software program have a #state
That state is what we want for the program In #traditional software
development we dont focus on #state, its just there We focus on
behavior and how to express it
11. What is a behavior? Its something you can do on a state to
change it Everything you do is to change yourself (at least!) Many
ways to express behavior Imperative Run that behavior on that
state! Functional Its a relationship between values Its a
relationship between state (of something) in two different times
(before and after)
12. Why state and behavior are important? Because
statet+1=behaviorj(inputt, st) Where t and t+1 are two consecutive
instants And there are cases where statet+1=statet
13. Where is state? In memory Variables In transient storages
(timeout): faster more than infinite Caches Sessions In persistent
storage (tinfinite - MTBF) Blobs In structured data Files
Databases
14. Choose the right representation Choosing the right
representation of the state is the most difficult part of an
application Relational Database is a choose, not a starting
point
15. State and the Cloud In the #cloud, the state is the most
important thing Define the correct state and how to represent
it
16. Just objects
17. What is an object? It is state and behavior in the same
place
18. What is an attribute? Is a characteristic (of an object)
you can measure (it has a value)
19. Some quotes Everything is an object so everything have a
state so everything have a behavior If an object have no behavior,
is still an object? Or is just state? If an object have no state,
but only behavior, is still an object?
20. What is modeling? Is the activity of shaping objects
21. What is an entity Is something you can model
22. You as programmer model entities into objects
23. What is OOP (Object Oriented Programming)? Its a way of
modeling everything as an object, with state and behavior and
classes?
24. Objects, non classes We can speak about objects without
referring to classes, ever!
25. What is a class? A #class is a model for objects A #class
is a way to define a model for objects A #class is the typical way
to define objects models in a strongly typed (not yet statically
typed) language (C#, Java, but also Python and Ruby) There are
other ways
26. Does a class-based language imply OOP? No, OOP is a way of
thinking and modeling at first Class-based languages cannot be an
excuse to avoid real principles
27. What is a prototype Is an object itself you can use as a
model to create others objects copying from it #javascript teaches
us that we can write #objects without #classes
28. Objects in the Cloud Edizione 2014 Marco Parenzan