test Flashcards
Differenza tra libreria e framework:
-
Libreria: È un insieme di funzionalità che si possono chiamare/utilizzare all’interno del proprio codice, mantenendo il controllo del flusso dell’applicazione. L’uso di una libreria è opzionale e modulare.
- Framework: Fornisce una struttura e un modello su cui costruire l’applicazione. Il framework chiama e utilizza il tuo codice, dettando in parte l’architettura e il flusso del programma.
Vantaggi/Svantaggi di React (confronto con Angular):
-
Vantaggi di React:
- Semplicità: Usa JSX per il rendering dei componenti, che è facile da imparare.
- Performance: Grazie al Virtual DOM, React ottimizza il rendering, rendendolo più veloce.
- Riusabilità dei componenti: Consente di creare componenti che possono essere riutilizzati in diverse parti dell’applicazione.
-
Svantaggi di React:
- Curva di apprendimento per i nuovi utenti: Può essere impegnativa per chi non ha esperienza con il concetto di componenti e JSX.
- Gestione dello stato: In applicazioni molto grandi, la gestione dello stato può diventare complessa senza l’uso di librerie aggiuntive come Redux.
-
Angular:
- Framework completo: Fornisce un insieme più ampio di strumenti out-of-the-box per lo sviluppo di applicazioni (e.g., HTTP client, routing).
- Curva di apprendimento più ripida: Richiede la conoscenza di concetti come dependency injection, modules, decorators.
- Performance: Angular usa il DOM reale che può essere meno performante di React per applicazioni di grandi dimensioni.
Cos’è il Virtual DOM?
- Il Virtual DOM è una rappresentazione in memoria del DOM reale. React lo utilizza per ottimizzare le modifiche al DOM, aggiornando solo le parti che sono effettivamente cambiate, anziché rirenderizzare l’intera interfaccia utente.
Cos’è uno State? Differenza con Props:
-
State: È un dato interno a un componente che può cambiare nel tempo. Gli stati sono usati per tenere traccia delle informazioni che cambiano in risposta alle interazioni dell’utente o ad altri fattori.
- Props: Sono le proprietà passate ai componenti dai loro genitori. Sono immutabili dal componente che le riceve, servendo come dati di configurazione.
Differenza tra componente funzionale e uno di classe:
-
Componente funzionale: Definito da una funzione che ritorna un elemento React. Con l’introduzione degli Hooks in React 16.8, i componenti funzionali possono utilizzare stati e altre funzionalità di React.
-
Componente di classe: Definito estendendo
React.Component
oReact.PureComponent
. Ha metodi di ciclo di vita e può mantenere il proprio stato.
-
Componente di classe: Definito estendendo
Entrambi i componenti possono gestire lo stato e le props, ma l’approccio sintattico è diverso. I componenti funzionali sono più concisi e hanno una sintassi più semplice, mentre i componenti di classe sono più flessibili e possono gestire metodi di ciclo di vita del componente. Con l’introduzione dei hook in React, come useState e useEffect, i componenti funzionali hanno guadagnato molta più flessibilità, riducendo la necessità di utilizzare i componenti di classe.
Gestione degli eventi in React:
Gli eventi in React sono gestiti utilizzando attributi simili a quelli HTML, ma seguono la convenzione camelCase. React incapsula gli eventi nativi del browser in un set di eventi sintetici per garantire la compatibilità cross-browser.
Cosa sono gli Hooks:
Gli Hooks sono funzioni che consentono di “agganciarsi” alle funzionalità di React (come lo stato e il ciclo di vita) da un componente funzionale, senza dover scrivere una classe.
Ciclo di vita di un componente:
Il ciclo di vita di un componente in React può essere diviso in tre fasi: montaggio, aggiornamento, e smontaggio. Ogni fase ha metodi specifici che vengono eseguiti in momenti diversi (es. componentDidMount
, componentDidUpdate
, componentWillUnmount
).
Come comunicano i componenti tra loro:
I componenti comunicano principalmente tramite props
per passare dati da genitore a figlio. Per la comunicazione inversa o tra
componenti non correlati, si possono usare callback o contesti/global state management libraries come Redux o Context API.
Direttive Angular
Le direttive sono istruzioni specifiche di Angular che consentono di manipolare il DOM o modificare il comportamento di un componente. Esistono tre tipi principali: Componenti, Direttive strutturali (modificano il layout aggiungendo o rimuovendo elementi DOM, es. *ngFor
, *ngIf
) e Direttive di attributo (cambiano l’aspetto o il comportamento di un elemento, es. [ngClass]
, [ngStyle]
).
Differenza tra direttive e pipe:
Le direttive modificano o manipolano il DOM o il comportamento dei componenti. Le pipe trasformano i dati visualizzati nei template. Pipe famose includono date
, currency
, json
.
Unidirectional Data Flow in React:
Significa che il flusso di dati all’interno di un’applicazione React segue una direzione unica. Lo stato si muove dall’alto verso il basso (dai componenti genitori ai figli) tramite le props
, rendendo più prevedibile e facile da capire il flusso dei dati.
Problemi di sicurezza in applicazioni React:
Problemi comuni includono attacchi XSS (Cross-Site Scripting), dove l’input dell’utente non viene correttamente sanificato. Soluzioni: usare dangerouslySetInnerHTML
con cautela, validare e sanificare gli input, utilizzare Content Security Policy (CSP).
SEO: perché è importante e quali sono le criticità?
Il SEO (Search Engine Optimization) è essenziale per qualsiasi sito web che desidera aumentare la sua visibilità online. Attraverso tecniche di SEO, è possibile migliorare il posizionamento di un sito web nei risultati dei motori di ricerca come Google, Bing, e altri. Ciò è fondamentale perché la maggior parte degli utenti tende a cliccare sui primi risultati di ricerca, e essere posizionati in alto può significare un aumento significativo del traffico verso il sito.
Importanza del SEO:
- Aumento della visibilità: Migliorando il posizionamento nei motori di ricerca, un sito guadagna maggiore visibilità, il che può tradursi in un aumento del traffico.
- Credibilità e fiducia: I siti che appaiono ai primi posti nei risultati di ricerca sono percepiti come più affidabili e credibili dagli utenti.
- Targetizzazione del traffico: Il SEO consente di attrarre visitatori realmente interessati ai prodotti o servizi offerti, grazie all’uso di parole chiave specifiche.
- Migliore esperienza utente: Molte tecniche SEO riguardano il miglioramento dell’usabilità e dell’accessibilità del sito, che a sua volta migliora l’esperienza degli utenti.
Criticità:
- Costante evoluzione degli algoritmi: I motori di ricerca aggiornano frequentemente i loro algoritmi, rendendo necessario un aggiornamento continuo delle strategie SEO.
- SEO Black Hat: Tecniche non etiche per migliorare il posizionamento possono portare a penalizzazioni da parte dei motori di ricerca, danneggiando la visibilità a lungo termine.
- Concorrenza: In settori altamente competitivi, raggiungere le prime posizioni può essere molto difficile e richiedere investimenti significativi in termini di tempo e risorse.
- Misurazione dei risultati: Sebbene esistano strumenti per monitorare l’efficacia delle strategie SEO, capire l’impatto diretto su vendite e conversioni può essere complesso.
In sintesi, il SEO è una componente cruciale della strategia digitale di un’azienda, capace di guidare traffico qualificato e aumentare la visibilità online. Tuttavia, richiede un impegno costante e una buona conoscenza delle pratiche migliori e delle linee guida dei motori di ricerca per evitare penalizzazioni e garantire risultati sostenibili.
Liquid/Shopify
Liquid è un linguaggio di template open-source sviluppato da Shopify ed è utilizzato principalmente per la crezione di temi personalizzati su piattaforme Shopify. Si tratta di un linguaggio di programmazione che consente agli sviluppatori di definire dinamicamente i contenuti che vengono visualizzati sulle pagine web dei negozi online gestiti tramite Shopify. Liquid permette di caricare dinamicamente dati dal database di Shopify, come informazioni sui prodotti, prezzi, e immagini, direttamente nei template dei siti web.
Caratteristiche principali di Liquid:
- Flessibilità: Permette di creare layout personalizzati e dinamici per negozi online, adattando l’aspetto del sito alle specifiche esigenze del marchio.
- Controllo dei dati: Attraverso l’uso di oggetti, tag e filtri, gli sviluppatori possono manipolare i dati e controllare il modo in cui vengono visualizzati nel sito.
- Facilità d’uso: Anche se richiede una comprensione di base del codice, Liquid è progettato per essere accessibile agli sviluppatori con diversi livelli di esperienza.
- Integrazione: Liquid è strettamente integrato con la piattaforma Shopify, consentendo un accesso semplificato ai dati del negozio e alle funzionalità di e-commerce.
Shopify è una piattaforma di e-commerce che consente agli imprenditori e alle aziende di creare e gestire negozi online. Shopify utilizza Liquid come motore di templating per i suoi temi, offrendo agli utenti la possibilità di personalizzare l’aspetto del loro sito web di e-commerce senza dover modificare il codice sorgente direttamente.
Importanza di Liquid in Shopify:
- Personalizzazione: Gli utenti possono personalizzare i loro temi Shopify per soddisfare le esigenze specifiche del loro business, migliorando l’esperienza utente e l’identità del marchio.
- Sviluppo di temi: I designer e sviluppatori possono creare temi Shopify unici per la vendita o per uso personale, sfruttando la flessibilità di Liquid.
- Integrazione di dati: Liquid facilita l’integrazione di dati dinamici, come cataloghi prodotti e collezioni, rendendo facile per i proprietari di negozi gestire e presentare i loro prodotti.
In sintesi, Liquid è un componente fondamentale dell’ecosistema Shopify, che abilita la personalizzazione avanzata dei negozi online e permette agli sviluppatori di creare esperienze di shopping ricche e dinamiche per gli utenti finali.