Upload
marco-parenzan
View
285
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Some history developing applications, starting from OOP and three tier. The limitations, and some mistakes. Prepare moving to new architectures for Cloud Computing...in part 2
Citation preview
Modelli applicativiper il Cloud Compunting/#1
Edizione 2014Marco Parenzan
MANUTENIBILITÀ VS. PERFORMANCES
Cos’è una applicazione?Per l’utente un «monolito»
Soluzione Applicativa«vede una Interfaccia utente»
Un’icona da clikkareUn programma da eseguire
Un file .exe sul disco
Utente
Programmazione Orientata agli Oggetti
Modellare la realtà, ma anche no
È un paradigma, alla pari della programmazione imperativa e della programmazione funzionale
È una tecnologia, non una filosofia
Attenzione i linguaggi: Statically typed, strongly typed, class based (Java, C#)
Class-based (Ruby, Python)
Non Class-based (Javascript)
Cos’è una applicazione?Per la OOP…
È un insieme di oggetti
…tra l’altro, non si può più dire «è un insieme di classi»
Three Tier
Data Access
Business Logic
Presentation
Design Patternsper i tiers dell’applicazione
Come scrivo gli oggetti?
Alla fine li posso classificare in alcune categorie
Derivano dall’esperienza di scrive «oggetti»
Entità
Cos’è una entità?
Rapprentazione (astrazione) di qualcosa di reale
Non è detto che sia concreto neppure nel mondo reale (un metodo, una procedura, ...)
Esempi
Ordine
Bolla
Fattura
Articolo
Utente
Caratterizzate da
Stato: insieme delle sue proprietà
Interazione
Con le entità «circostanti»
Three Tier + 1
Data Access
Business Logic
Presentation
Model
Three Tier Contracts
Contratto: qualcosa per cui due si mettono d’accordo
Due layer comunicano: si accordano su come comunicare.
Tipicamente uno definisce una funzionalità e uno la consume
Data Access
Business Logic
Presentation
Model
Cos’è una interfaccia
Definisce in Object Orientation COSA fare, ma non il come
Es. Persistenza di entità
GetAll
GetSingle
Update
Delete
Modelli applicativiper il Cloud Compunting/#1
Criticità
A single model cannot solve every problem
A single model cannot be appropriate for reporting, searching, and transactional behaviors…
Anemic model
No actions on object
Only Values (and accessor methods)
A persistence-focused approach
Il databasenon è un buon punto di partenza
Non si deve scegliere a priori Come qualsiasi altra tecnologia, bisogna valutare quali funzionalità mette a disposizione
Altrimenti diventa un vincolo di progetto
Tecnologie di accesso ai dati
SQL (Specifico)
SQL (standard)
xdbc
ORM
NoSql
Web Services
REST
Modelli applicativiper il Cloud Compunting/#1
Un assaggio di futuro
A method that returns data should not change the state of the object itself
A method that change the state should not return any information
“Every method should either be a command that performs an action, or a query that returns data to the caller, but not both.”
Different models for different needs
UI
ORM
CMD
Validatio
nTransacti
onsBusin
ess Rules
Write Model
UI
Read Model
Modelli applicativiper il Cloud Compunting/#1
Edizione 2014Marco Parenzan