Esempio di file SRT in italiano
Gli stessi contenuti in sottotitoli con i tempi: com'è fatto un .srt e a cosa serve ogni riga.
Un file .srt è testo semplice: per ogni battuta un numero progressivo, la riga dei tempi (inizio --> fine) e il testo. Lo aprono VLC, YouTube, Premiere e qualunque lettore video — basta che si chiami come il video e stia nella stessa cartella.
Sono 108 battute per questa lezione. Le prime quaranta:
00:00:00,110 → 00:00:14,880
Oggi parliamo di alcuni degli argomenti più importanti nell'analisi e progettazione del software, i pattern di progettazione e i code smell, che sono i due lati della stessa medaglia.
00:00:16,610 → 00:00:25,650
I primi riguardano come progettare bene e i secondi come accorgersi di aver progettato male.
00:00:25,650 → 00:00:40,430
Partiamo dalla definizione di design pattern. Che cos'è? È una soluzione comune a un problema di progettazione ricorrente.
00:00:42,350 → 00:00:57,640
Questi differiscono da un altro tipo di pattern, che si chiamano pattern GRASP, con cui condividono parte del nome, ma questi ultimi sono principi, consigli.
00:00:57,640 → 00:01:05,180
mentre i design pattern si spingono oltre e arrivano fino allo schema delle classi
00:01:05,180 → 00:01:11,090
partiamo dalla classificazione GOF
00:01:11,090 → 00:01:14,730
prima di tutto per cosa sta GOF?
00:01:14,730 → 00:01:22,690
sta per Gang of Four che deriva dal fatto che i suoi ideatori erano quattro persone
00:01:22,690 → 00:01:27,870
si tratta di 23 pattern in totale
00:01:27,870 → 00:01:44,600
Però nel corso ne vedremo solamente sette. Come si classificano? Si classificano su due assi, per lo scopo e per il raggio d'azione.
00:01:44,600 → 00:01:54,440
per quanto riguarda lo scopo possono essere creazionali, strutturali o comportamentali
00:01:54,440 → 00:02:04,060
per quanto riguarda il raggio d'azione possono essere su classi oppure su oggetti
00:02:04,060 → 00:02:10,960
facciamo qualche esempio di combinazioni di questi due assi
00:02:10,960 → 00:02:17,200
abbiamo per esempio il factory method che è un creazionale su classi
00:02:17,200 → 00:02:22,560
abbiamo per esempio l'adapter che è un pattern strutturale
00:02:22,560 → 00:02:30,480
e abbiamo observer e strategy che sono due pattern comportamentali su oggetti
00:02:30,480 → 00:02:39,620
adesso soffermiamoci su questi ultimi due perché spesso all'inizio vengono confusi
00:02:39,620 → 00:02:55,470
Allora, partiamo dal definire questi due pattern, indicando quale problema risolvono e come lo risolvono.
00:02:55,470 → 00:03:13,080
Lo strategy risponde al problema di un insieme di algoritmi correlati e variabili e vogliamo poterli cambiare. Cambiare come? Scegliere a quale utilizzare.
00:03:13,080 → 00:03:16,800
Quindi come risolviamo questo problema?
00:03:17,820 → 00:03:24,900
Ogni algoritmo viene messo in una classe separata, tutte con un'interfaccia comune.
00:03:26,270 → 00:03:32,810
Il context tiene un riferimento alla strategia e la usa senza sapere quale sia,
00:03:32,810 → 00:03:51,570
Mentre il client può sostituirla a runtime con una strategia diversa della stessa interfaccia per sostituirla con una strategia diversa all'occorrenza.
00:03:51,570 → 00:04:04,550
Per quanto riguarda l'observer, il problema che si pone è quello di più oggetti che vogliono sapere quando un altro oggetto cambia stato.
00:04:05,050 → 00:04:10,820
Ognuno reagendo a modo proprio. Il publisher non deve conoscerli.
00:04:12,080 → 00:04:21,120
Prima di tutto vediamo chi è il publisher nel pattern observer. È l'oggetto che viene osservato dagli altri.
00:04:23,040 → 00:04:24,740
Come risolviamo questo problema?
00:04:25,500 → 00:04:34,070
Abbiamo un'interfaccia, che è il subscriber, e ogni subscriber si registra al publisher
00:04:34,070 → 00:04:38,670
in modo che possa essere avvisato quando succede qualcosa.
00:04:40,610 → 00:04:45,170
Quindi qual è la distinzione tra questi due pattern?
00:04:45,170 → 00:04:53,430
Lo strategy serve a scambiare un comportamento, quindi scegliere quale comportamento vogliamo applicare.
00:04:55,040 → 00:05:00,780
Observer serve a notificare un cambiamento a più interessati.
00:05:02,430 → 00:05:06,510
Cos'hanno in comune? Si basano entrambi su polymorphism.
00:05:06,690 → 00:05:11,210
e forniscono delle protected variations
00:05:11,210 → 00:05:25,430
vediamo anche un'altra coppia di pattern che vengono spesso confusi
00:05:25,430 → 00:05:29,150
che sono l'adapter e il facade
00:05:29,150 → 00:05:33,220
partiamo vedendo l'adapter
00:05:33,220 → 00:05:40,480
abbiamo due interfacce incompatibili che però hanno bisogno di parlarsi
00:05:40,480 → 00:05:46,680
Quindi cosa facciamo per permettere che comunichino tra loro?
00:05:47,280 → 00:05:55,720
Mettiamo in mezzo un oggetto adattatore che converte i messaggi che si devono scambiare.
Scarica il file originale — è lo stesso che riceveresti tu.
Tutto il materiale di questa sezione viene da una sola lezione vera. Gli altri formati · quanto sarebbe costata.