JavaRush /Java Blog /Random-IT /Recensione del libro “Head First Design Patterns”
Alex
Livello 37

Recensione del libro “Head First Design Patterns”

Pubblicato nel gruppo Random-IT
Tra le persone che hanno almeno una minima familiarità con la serie Head First, ce ne sono molti che considerano tale letteratura una lettura piuttosto superficiale per i principianti. Che dire, difficilmente riuscirai a studiare a fondo un argomento complesso nel campo della programmazione in 48 ore. Tuttavia, è difficile sostenere che Design Patterns sia un libro che costituirà un'utile guida alla programmazione per i principianti. Questo libro è uno dei dieci più popolari su Stackoverflow e per una buona ragione. La facilità di presentazione, l'argomento fondamentale e gli esempi di alta qualità rendono il libro popolare ora e, secondo me, per molti anni a venire. Recensione del libro “Head First Design Patterns” - 1

Caratteristiche del libro

Head first design pattern ci dice cosa sono i pattern, come usarli e come pensarli. Un modello è un modello, una soluzione universale per una serie specifica di problemi. I design pattern sono, a loro volta, soluzioni architetturali di uso comune che possono essere utilizzate per scrivere applicazioni flessibili e facili da usare. Gli sviluppatori di tutto il mondo risolvono gli stessi problemi con gli stessi approcci. Come dice l'annotazione, se non vuoi reinventare la ruota, utilizza modelli di progettazione (modelli) già pronti, con cui questo libro è dedicato a lavorare . Separatamente, vale la pena notare la presentazione del materiale: i libri della serie Head First sono famosi per la loro semplicità e vengono letti in una sola seduta. I “Design Patterns” non fanno eccezione. Aderisce inoltre ai seguenti principi fondamentali:
  1. Visibilità
  2. Stile di presentazione colloquiale
  3. Un gran numero di illustrazioni
  4. Partecipazione attiva dei lettori
  5. Fare appello alle emozioni
  6. Catturare l'attenzione del lettore
Gli autori del libro utilizzano con competenza la teoria della metacognizione per presentare il materiale: per me le prime 100 pagine sono volate inosservate. La bellezza di questo approccio è che il cervello ricorda effettivamente ciò che legge. La combinazione di diversi stili narrativi, domande interessanti, ridondanza e creatività: tutto ciò aiuta il lettore a non perdere interesse per l'argomento principale. Prima di acquistare il libro ero titubante dopo aver letto recensioni contrastanti. Tuttavia, dopo aver sfogliato rapidamente diverse altre fonti su questo argomento, ho deciso: per immergerti negli schemi, questo libro è ciò di cui hai bisogno.

Tema principale e idea chiave

"Sicuramente qualcuno ha già risolto il tuo problema" : così inizia il primo capitolo del libro, che trasmette l'intero significato dei design pattern nella programmazione. L'obiettivo principale è trasmettere correttamente il loro significato al lettore, perché prima di tutto il programmatore deve sapere a cosa servono i pattern e a che punto devono essere applicati. In sostanza, devi prima suddividere i modelli in piccoli pezzi nella tua testa e solo dopo implementarli nei programmi. Se un principiante nella programmazione ha una buona conoscenza dei pattern, il loro utilizzo può complicare notevolmente il codice (ma dovrebbe semplificarlo!). Alla domanda “Perché dovrebbero essere utilizzati i design pattern?” Il libro dà una risposta chiara: “Conoscere concetti come astrazione, ereditarietà e polimorfismo non ti rende un buon progettista OO. I modelli contengono una comprovata esperienza di progettazione OO.

"Riepilogo"

Il libro è diviso in 14 capitoli più un'introduzione. All'inizio, gli autori del libro cercano di preparare il lettore, di sintonizzare il suo cervello per percepire correttamente le informazioni sulla progettazione del modello. Il primo capitolo spiega il principio di base dei modelli e a quali scopi servono. Uno dei modelli più utilizzati, la strategia, viene esaminato in modo semplice e discreto. I capitoli da due a undici sono dedicati ad un’analisi dettagliata dei singoli modelli :
  1. Osservatore. Distribuisce gli eventi tra gli oggetti interessati al loro verificarsi.
  2. Decoratore. Un altro sguardo all'ereditarietà in Java e all'assegnazione di nuove funzionalità alle classi Java senza modificare il codice.
  3. Fabbrica. Il modello salva il codice da dipendenze indesiderate.
  4. Separare. Conosciuto anche come Singleton, consente di creare un unico oggetto di classe per l'intero programma.
  5. Squadra. Il modello consente di incapsulare comodamente una chiamata al metodo, espandendone le capacità.
  6. Adattatore e facciata. Risolvere il problema dell'incompatibilità delle interfacce, nonché confezionare oggetti per semplificarne l'interfaccia.
  7. Metodo del modello. Incapsulamento di blocchi algoritmici, consentendo alle sottoclassi di associarsi all'algoritmo di elaborazione desiderato in qualsiasi momento.
  8. Iteratore e Linker. Il modello fornisce uno strumento utile per scorrere le raccolte, indipendentemente dal tipo. Inoltre, il capitolo fornisce alcune informazioni sulle supercollezioni.
  9. Stato. Gli oggetti sono dotati della capacità di controllare il proprio comportamento attraverso cambiamenti nel loro stato interno.
  10. Vice. Un modello molto conveniente per controllare l'accesso a un oggetto.
Il capitolo 12 esamina i pattern compositi, o meglio le combinazioni di alcuni dei pattern discussi, che possono essere utilizzati per costruire potenti architetture software. Il capitolo 13 è dedicato all'uso dei modelli in problemi reali, vengono presentate la classificazione dei modelli, le loro varietà e le linee guida per l'uso. Il libro funge da appendice al capitolo 14, che copre una gamma più ampia di modelli. Ognuno di essi è utile a modo suo, quindi conoscerli è più che desiderabile. Naturalmente non sono così popolari come gli schemi dei capitoli 2-11, ma questo non li rende meno utili. Il libro non pretende di essere una presentazione accademicamente accurata della teoria dei modelli. Ma se i libri Head First sono così meticolosi, gli aspiranti sviluppatori non avranno la possibilità di capire di cosa si tratta e di chiarire da soli le basi. Questo è un modo semplice e conveniente per imparare cosa sono i design pattern per coloro che non li conoscono. Secondo gli autori, Design Patterns è un libro adatto a chi ha già familiarità con Java (o C#), vuole apprendere i principi della progettazione orientata agli oggetti e preferisce conversazioni vivaci a lezioni noiose. Questo libro non è un libro di consultazione! Se sei uno sviluppatore professionista con esperienza e lavori con almeno una parte di questi pattern, è improbabile che il libro ti interessi. Una componente importante del libro sono gli esercizi: non dovresti saltarli. Se leggi attentamente il libro e, in casi estremi, fai una ricerca minima su Internet, risolverli non ti aggiungerà grattacapi. Ma i benefici ci saranno sicuramente. Per lo meno, capirai più profondamente la teoria presentata nel libro.

Vantaggi e svantaggi

Io, come molti di coloro che studiano alla JavaRush, ho un atteggiamento freddo nei confronti delle lezioni noiose, dello stipare materiale e di altre violenze contro la psiche di uno studente assetato di conoscenza. L'energia spesa per memorizzare testi incomprensibili, secondo me, è meglio spesa per trovare fonti alternative di apprendimento. Questo libro merita il tuo tempo e il tuo impegno. Uno stile di presentazione eccellente, una gestione competente dell'attenzione del lettore e la ripetizione dei punti chiave costituiscono il vantaggio principale di questo libro: la facilità di assimilazione del materiale . Un gran numero di illustrazioni è un ulteriore vantaggio. Secondo me, ogni immagine del libro ha il suo posto: tutte permettono di rafforzare le parole degli autori e di comprendere più a fondo l'essenza della materia. Come ho scritto sopra, questo libro non è un libro di consultazione: i suoi autori non intendono elencare tutti gli schemi. Il suo compito principale è fornire comprensione e parlare dei modelli di base in modo che altri, più complessi, siano più facili da comprendere. E lei lo affronta al 100%. Uno degli svantaggi è che i modelli di progettazione Head first in russo non sono così facili da leggere come in inglese. Naturalmente, ogni sviluppatore dovrebbe parlare inglese, ma i programmatori alle prime armi non sempre sviluppano questa abilità a tal punto da poter leggere i libri nell'originale. Tuttavia, questo può essere considerato un segno negativo forzato, poiché il materiale è presentato in modo abbastanza accurato e il significato è preservato.

Altri libri sui design pattern

Sono un sostenitore della convinzione che sia meglio studiare argomenti fondamentali da diverse fonti e cercare in essi uno stile di presentazione adeguato. Quando vorrai immergerti negli schemi e leggere ulteriori teorie, credimi, avrai qualcosa con cui occupare le tue serate.
  1. Tecniche di progettazione orientata agli oggetti. Modelli di progettazione (Gamma E., Helm R., Johnson R., Vlissides J.).

    Recensione del libro “Design Patterns” (Head First Design Patterns) - 2

    Questa è una pubblicazione più seria, un libro di riferimento sui modelli, un libro molto rispettato della "Gang of Four". Molti la chiamano la bibbia del design OO.

    Su Internet, le opinioni degli sviluppatori sono divise in 3 campi:

    • alcuni sostengono che il libro sia obsoleto e lo stile di presentazione ne renda impossibile la lettura
    • altri consigliano di utilizzare il libro esclusivamente come libro di riferimento sui modelli, niente di più
    • altri ancora dicono che il libro è il Santo Graal dei design pattern e dovrebbe essere letto da chiunque voglia diventare un giorno uno sviluppatore Java senior
    Sono un aderente al secondo gruppo: penso che il libro sia davvero degno, ma leggerlo per lo sviluppo, e non con lo scopo di cercare informazioni, è molto difficile.

    Importante:Gli esempi nel libro sono scritti in C++.

  2. JavaEE. Modelli di progettazione per professionisti (Murat Yener, Alex Fidom).

    Recensione del libro “Design Patterns” (Head First Design Patterns) - 3

    Questo libro è dedicato alla progettazione di applicazioni Enterprise: copre molti esempi di problemi applicativi reali.

  3. Modelli di progettazione in Java (Grand M.).

    Recensione del libro “Design Patterns” (Head First Design Patterns) - 4

    Il libro dimostra in modo colorito come l'uso dei pattern faccia risparmiare tempo agli sviluppatori, fornisce una panoramica del linguaggio UML e descrive 47 design pattern.

Modelli di progettazione in JavaRush

Nel corso JavaRush, i modelli di progettazione vengono appresi al livello 7 della ricerca Collezioni Java. Le lezioni 1 e 2 sono dedicate ai modelli più comuni e nella lezione 4 puoi risolvere problemi su questo argomento. Di seguito trovi alcuni articoli interessanti per “rafforzarti”:
  1. Un articolo generale sul tema dei pattern con categorie, esempi, tutto ciò che ci piace.

  2. Due articoli sui pattern: parte 1 panoramica e parte più dettagliata 2 .

  3. Progettare modelli utilizzando il modello Singleton come esempio .

  4. Articoli sui modelli “ Strategia ” e “ Adattatore ”.

  5. Il concetto di design pattern è legato ai diagrammi UML, questo articolo ti aiuterà a capire cosa sono.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION