This document discusses content marketing, which refers to content created for an audience such as blogs, landing pages, newsletters, etc. Content marketing can attract and retain customers, build authority, increase engagement and conversion rates. Key aspects of effective content marketing include creating valuable, believable content focused on customer needs rather than self-promotion. Common content types discussed are whitepapers, ebooks, and infographics. The document provides tips on developing a content strategy and distribution plan to build trust and grow a business through helpful, shareable content.
This document discusses content marketing, which refers to content created for an audience such as blogs, landing pages, newsletters, etc. Content marketing can attract and retain customers, build authority, increase engagement and conversion rates. Key aspects of effective content marketing include creating valuable, believable content focused on customer needs rather than self-promotion. Common content types discussed are whitepapers, ebooks, and infographics. The document provides tips on developing a content strategy and distribution plan to build trust and grow a business through helpful, shareable content.
Slide introduttive al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Lezione del 12-10-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
Repository Pattern: Un buon design al servizio della testabilità.
Le slides si riferiscono al talk tenuto in Mikamai Milano durante i TDD Meetup di Milano, il 02/05/2017
Tesi: " Class loading in Android: applicazione a tuProlog " - Alessio MercurioAlessio Mercurio
tuProlog è un interprete Prolog scritto in Java, attualmente giunto alla versione 2.7.2. La versione Android offre le stesse funzionalità della versione Java, ma con una eccezione: il supporto al class loading, che tuProlog sfrutta per il caricamento dinamico di librerie e teorie, non opera allo stesso modo e con la stessa flessibilità di quello Java a causa delle differenze fra le due piattaforme, in particolare per quanto riguarda il caricamento di jar e class "on the fly". Scopo di questa tesi è quindi studiare le differenze di funzionamento, valutare le opzioni possibili e verificando a livello sperimentale, su un opportuno prototipo, la fattibilità e la validità dell'approccio identificato.
Slide introduttive al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Lezione del 12-10-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
Repository Pattern: Un buon design al servizio della testabilità.
Le slides si riferiscono al talk tenuto in Mikamai Milano durante i TDD Meetup di Milano, il 02/05/2017
Tesi: " Class loading in Android: applicazione a tuProlog " - Alessio MercurioAlessio Mercurio
tuProlog è un interprete Prolog scritto in Java, attualmente giunto alla versione 2.7.2. La versione Android offre le stesse funzionalità della versione Java, ma con una eccezione: il supporto al class loading, che tuProlog sfrutta per il caricamento dinamico di librerie e teorie, non opera allo stesso modo e con la stessa flessibilità di quello Java a causa delle differenze fra le due piattaforme, in particolare per quanto riguarda il caricamento di jar e class "on the fly". Scopo di questa tesi è quindi studiare le differenze di funzionamento, valutare le opzioni possibili e verificando a livello sperimentale, su un opportuno prototipo, la fattibilità e la validità dell'approccio identificato.
3. Laboratorio: problema introduttivo
• L’inventario di un magazzino è composto da collezioni di
oggetti che rappresentano i prodotti (InventoryItem).
• Tali oggetti possono essere memorizzati in un database, in
un array, in una linked list, ecc.
• Un’applicazione vuole accedere sequenzialmente agli oggetti
in modo indipendente dalla struttura dati usata per
memorizzarli
Come risolvere il problema?
Come risolvere il problema?
Ingegneria del Software - A.A. 2003/2004
6. Il pattern Iterator (1/6)
• Nome Iterator [GoF95]
• Synopsis Fornisce una modalità di accesso sequenziale ad
una collezione di oggetti indipendentemente
dalla struttura dati usata per memorizzarli.
• Context Cfr. esempio introduttivo
• Forces - Una classe ha bisogno di accedere al contenuto
di una collezione senza risultare dipendente
dalla classe usata per implementare la
collezione
- Una classe ha bisogno di un modo uniforme per
accedere il contenuto di più collezioni
eterogenee.
Ingegneria del Software - A.A. 2003/2004
7. Il pattern Iterator (2/6)
Da Context…
… a Solution
Client
• Solution - Gli “attori” del pattern Iterator sono:
– Collection: Classe che incapsula una collezione di oggetti o valori
– IteratorIF: Interfaccia che definisce i metodi di accesso sequenziale
– Iterator: Classe che implementa IterationIF
– CollectionIF: Interfaccia che obbliga una collezione a creare il proprio
Iterator
Ingegneria del Software - A.A. 2003/2004
8. Il pattern Iterator (3/6)
• Consequences
- E’ possibile accedere agli oggetti senza conoscere la
struttura dati contenente tali oggetti.
- Usando più iteratori è facile gestire diversi
“attraversamenti” contemporanei
- E’ possibile per una classe fornire più iteratori che
attraversano la collezione in modo diverso (su cosa si
basa il metodo getNextItem()?)
Ingegneria del Software - A.A. 2003/2004
9. Il pattern Iterator (4/6)
• Implementation
- Oltre ai metodi già presentati è possibile trovare:
- Test per l’esistenza e la restituzione dell’elemento
precedente
- Posizionamento sul primo o ultimo elemento
- Cardinalità della collezione
-…
- Spesso Iterator è implementato come inner class privata
della Collection associata
- Modificare il contenuto di una collezione durante
l’attraversamento di un client può creare problemi (oggetti
mancanti o duplicati)
Ingegneria del Software - A.A. 2003/2004
10. Il pattern Iterator (5/6)
• Java API usage
java.util.Collection
java.util.Collection java.util.Iterator
java.util.Iterator
java.util.Vector
java.util.Vector Inner class private di:
Inner class private di:
java.util.LinkedList java.util.Vector
java.util.Vector
java.util.LinkedList
java.util.ArrayList java.util.LinkedList
java.util.LinkedList
java.util.ArrayList
… java.util.ArrayList
java.util.ArrayList
…
……
Ingegneria del Software - A.A. 2003/2004
11. Il pattern Iterator (6/6)
• Code example
InventoryIteratorIF
public interface InventoryIteratorIF {
public boolean hasNextInventoryItem() ;
//…
}
InventoryCollection
public class InventoryCollection { //...
public InventoryIteratorIF iterator() {
return new InventoryIterator();
}
InventoryIterator implements InventoryIteratorIF
private class InventoryIterator
{
public boolean hasNextInventoryItem() {
//...
} //… } }
• Related Patterns Adapter, Factory Method, Null Object
Ingegneria del Software - A.A. 2003/2004