Clean code e refactoring esame

Queste flashcard forniscono un riepilogo utile di concetti chiave relativi al clean code e al refactoring, ideali per studenti universitari in informatica.

FrancescoWolf·48 schede·48 domande
universitàcomputer_scienceprogramming
0
Lo so
1 / 48
0
Sto imparando
Fronte

Cos'è il Clean Code?

Tocca per girare
Retro

Il Clean Code è un insieme di principi e pratiche per scrivere codice leggibile, chiaro e manutenibile.

Tocca per girare
Lo so
Sto imparando

Quiz(48 domande)

Domanda 1 di 48

1. Cos'è il Clean Code?

Termini in questo set(48)

Concetti di Clean Code(16)

Cos'è il Clean Code?

Il Clean Code è un insieme di principi e pratiche per scrivere codice leggibile, chiaro e manutenibile.

Principio DRY

DRY sta per 'Don't Repeat Yourself'. Significa evitare la duplicazione del codice per migliorare la manutenibilità.

Cos'è la leggibilità del codice?

La leggibilità è quanto è facile per un programmatore comprendere il codice scritto da un altro. Codice leggibile riduce il tempo di sviluppo.

Vero o Falso: Commenti sono sempre necessari.

Falso. I commenti dovrebbero essere usati con moderazione. Un codice chiaro e ben strutturato richiede meno commenti.

Cos'è la semplicità?

La semplicità nel codice implica scrivere solo il necessario, senza complessità superflue, rendendolo più facile da capire e mantenere.

Confronto: Funzioni lunghe vs Funzioni brevi

Funzioni lunghe sono più difficili da capire. Funzioni brevi sono più facili da testare e riutilizzare.

Fill in the blank: I nomi delle variabili dovrebbero essere ______.

descrittivi e significativi per il contesto.

Principio KISS

KISS sta per 'Keep It Simple, Stupid'. Incoraggia a mantenere le soluzioni semplici e dirette.

Qual è l'importanza della coerenza?

La coerenza nel codice facilita la comprensione e il mantenimento, riducendo la possibilità di errori.

Cos'è un 'naming convention'?

Una naming convention è una regola di denominazione dei variabili e delle funzioni che migliora la chiarezza del codice.

Effetto di un codice complesso

Un codice complesso è più difficile da testare, mantenere e può portare a più bug.

Esempio di refactoring: Funzione monolitica

Se abbiamo una funzione che fa troppe cose, possiamo rifattorizzarla in funzioni più piccole e specifiche.

Principio della responsabilità unica

Ogni classe o funzione dovrebbe avere una sola responsabilità, rendendo il codice più modulare e facile da gestire.

Cos'è il 'code smell'?

Un 'code smell' è un indicatore che potrebbe esserci un problema nella struttura del codice, richiedendo attenzione e potenziale refactoring.

Definisci l' 'abbreviazione' nel codice.

L'abbreviazione è l'uso di nomi troppo corti per variabili o funzioni, che può ridurre la leggibilità e la comprensione.

Qual è la relazione tra test e Clean Code?

Testare il codice è fondamentale per garantire che il Clean Code funzioni come previsto e per mantenere la qualità nel tempo.

Tecniche di Refactoring(16)

Cosa significa refactoring?

Il refactoring è il processo di miglioramento del codice esistente senza modificarne il comportamento esterno.

Vantaggi del refactoring.

- Aumenta la leggibilità - Migliora la manutenzione - Riduce la complessità

Quando dovresti fare refactoring?

Dovresti rifattorizzare quando il codice è difficile da comprendere o manutenere, o dopo aver implementato nuove funzionalità.

Cosa sono i code smells?

I code smells sono indicatori che suggeriscono la presenza di problemi nel codice, come metodi troppo lunghi o classi con troppe responsabilità.

Cosa sono le tecniche di estrazione?

Le tecniche di estrazione consistono nel suddividere metodi o classi complesse in parti più piccole e gestibili.

Completa: Il refactoring migliora la _____ del codice.

manutenibilità

Cosa fa il metodo 'Rename'?

Il metodo 'Rename' serve a rinominare variabili, metodi o classi per migliorarne la chiarezza e il significato.

Vero o falso: Il refactoring deve sempre cambiare il comportamento del codice.

Falso. Il refactoring non deve cambiare il comportamento esterno del codice.

Ragioni per cui si usa il 'Extract Method'.

- Ridurre la complessità - Aumentare la riutilizzabilità - Migliorare la leggibilità

Esempio di 'Inline Method'.

Invece di avere un metodo che restituisce un valore semplice, puoi sostituire la chiamata al metodo con il valore stesso.

Cosa significa 'Consolidate Duplicate Conditional Fragments'?

Consiste nel riunire frammenti condizionali duplicati in un'unica condizione per migliorare la chiarezza.

Quando usare 'Replace Magic Numbers'?

Utilizzalo per sostituire numeri non significativi con costanti, migliorando la comprensibilità del codice.

Qual è l'obiettivo del 'Move Method'?

Spostare metodi in classi più appropriate per migliorare la coesione e ridurre il accoppiamento.

Cosa sono i 'Feature Envy'?

Si verifica quando un metodo in una classe utilizza frequentemente i dati di un'altra classe, suggerendo un possibile riposizionamento.

Cosa implica 'Remove Dead Code'?

Eliminare codice non utilizzato o obsoleto per semplificare il sistema e migliorare la chiarezza.

Vero o falso: Il refactoring è un'attività una tantum.

Falso. Il refactoring è un processo continuo durante lo sviluppo del software.

Best Practices per il Codice(16)

Commenta il codice.

Scrivere commenti chiari aiuta a spiegare il ragionamento dietro soluzioni complesse.

Qual è il principio DRY?

DRY sta per "Don't Repeat Yourself". Riduce la duplicazione del codice, migliorando la manutenibilità.

Cosa significa KISS?

KISS significa "Keep It Simple, Stupid". Promuove la semplicità nel design e nello sviluppo del codice.

Vero o falso: il codice deve essere complicato per essere efficace.

Falso. Un buon codice è semplice e chiaro, facilitando la comprensione e la manutenzione.

Usare nomi chiari per variabili.

I nomi significativi per variabili e funzioni migliorano la leggibilità e la comprensione.

Cosa sono le funzioni pure?

Funzioni che non hanno effetti collaterali e restituiscono sempre lo stesso output per gli stessi input.

Gamificazione nel codice.

Utilizzare la gamificazione per migliorare l'impegno e la comprensione del codice tra i team.

Principio di responsabilità singola.

Ogni modulo o classe dovrebbe avere una sola responsabilità, facilitando la manutenzione.

Fill in the blank: Preferisci l'____ alla programmazione procedurale.

Preferisci l'orientamento agli oggetti alla programmazione procedurale per migliorare la struttura e la riusabilità.

Qual è l'importanza dei test automatizzati?

I test automatizzati garantiscono che il codice funzioni come previsto e riducono la probabilità di bug.

Qual è la regola del 80/20?

Il 20% del codice genera l'80% dei problemi. Concentrati sulla parte critica del codice.

Cosa significa modularità?

La modularità implica suddividere il codice in moduli riutilizzabili e indipendenti, migliorando la manutenzione.

Cosa rappresenta il principio YAGNI?

YAGNI significa "You Aren't Gonna Need It". Evita di scrivere codice non necessario, mantenendo il progetto snello.

Comparazione: codice complesso vs. codice semplice.

Il codice complesso è difficile da manutenere; il codice semplice è più facile da comprendere e modificare.

Uso corretto degli spazi bianchi.

Utilizzare spazi bianchi per separare i blocchi di codice rende il codice più leggibile.

Prova a mantenere la lunghezza delle righe sotto i ____ caratteri.

Prova a mantenere la lunghezza delle righe sotto i 80 caratteri per migliorare la leggibilità.

Domande in questo set(48)

1. Cos'è il Clean Code?

A.Un insieme di principi per scrivere codice leggibile
B.Un linguaggio di programmazione
C.Un tipo di software
D.Un metodo di testing

2. Qual è il vantaggio principale di commentare il codice?

A.Aiuta a spiegare il ragionamento dietro soluzioni complesse.
B.Rende il codice più lungo.
C.Aumenta il numero di righe di codice.
D.Complica la comprensione del codice.

3. Cosa indica la presenza di metodi troppo lunghi nel codice?

A.Code smells
B.Refactoring
C.Debugging
D.Testing

4. Qual è il significato del principio DRY?

A.Evita la ripetizione del codice
B.Rende il codice più complesso
C.Incrementa il numero di commenti
D.Aumenta la lunghezza delle funzioni

5. Cosa implica il principio DRY?

A.Ridurre la duplicazione del codice.
B.Aumentare la complessità del codice.
C.Scrivere codice più lungo.
D.Mantenere tutto il codice in un unico file.

6. Qual è uno dei principali vantaggi del refactoring?

A.Aumenta la complessità
B.Riduce la leggibilità
C.Migliora la manutenzione
D.Aumenta i bug

7. Perché la leggibilità del codice è importante?

A.Per facilitare la comprensione da parte di altri programmatori
B.Per aumentare la complessità del codice
C.Per ridurre il numero di righe di codice
D.Per evitare l'uso di variabili

8. Qual è il significato di KISS nei principi di programmazione?

A.Mantenere il codice semplice.
B.Rendere il codice altamente complesso.
C.Usare nomi complessi per variabili.
D.Creare funzioni lunghe e articolate.

9. Quando è opportuno eseguire un refactoring?

A.Dopo ogni implementazione di una nuova funzionalità
B.Quando il codice è perfetto
C.Mai, il codice non deve essere toccato una volta completato
D.Solo se ci sono errori

10. Vero o Falso: I commenti sono sempre necessari.

A.Falso
B.Vero
C.Solo nei progetti complessi
D.Solo per i principianti

11. Vero o falso: il codice complicato è sempre migliore.

A.Falso.
B.Vero.
C.Solo in alcuni casi.
D.Dipende dalle preferenze personali.

12. Qual è la tecnica di refactoring che consiste nel suddividere un metodo in più metodi più piccoli?

A.Extract Method
B.Inline Method
C.Rename
D.Replace Magic Numbers

13. Cosa si intende per semplicità nel codice?

A.Scrivere solo il necessario
B.Aggiungere complessità per chiarezza
C.Usare nomi di variabili complicati
D.Aumentare la lunghezza delle funzioni

14. Qual è l'importanza di usare nomi chiari per variabili?

A.Migliora la leggibilità e la comprensione.
B.Rende il codice più confuso.
C.Aumenta il numero di errori.
D.Complica la scrittura di funzioni.

15. Cosa succede quando un metodo utilizza frequentemente i dati di un'altra classe?

A.Feature Envy
B.Dead Code
C.Magic Numbers
D.Code Smells

16. Qual è un vantaggio delle funzioni brevi rispetto a quelle lunghe?

A.Sono più facili da testare e riutilizzare
B.Richiedono più righe di codice
C.Sono più difficili da comprendere
D.Non possono essere chiamate da altre funzioni

17. Cosa si intende per funzioni pure?

A.Funzioni senza effetti collaterali.
B.Funzioni che generano errori.
C.Funzioni con input variabile.
D.Funzioni che modificano lo stato globale.

18. Quale delle seguenti affermazioni è falsa riguardo al refactoring?

A.Il refactoring migliora la chiarezza
B.Il refactoring deve cambiare il comportamento del codice
C.Il refactoring è un processo continuo
D.Il refactoring riduce la complessità

19. I nomi delle variabili dovrebbero essere ______.

A.descrittivi e significativi
B.lunghi e complessi
C.acronimi senza significato
D.numeri casuali

20. Qual è il beneficio di applicare la gamificazione nel codice?

A.Migliora l'impegno e la comprensione.
B.Complica il processo di sviluppo.
C.Rende il codice meno efficiente.
D.Aumenta il tempo di sviluppo.

21. Cosa implica l'operazione 'Remove Dead Code'?

A.Eliminare codice non utilizzato
B.Aggiungere nuove funzionalità
C.Aumentare la complessità
D.Rinominare variabili

22. Cosa significa il principio KISS?

A.Mantenere le soluzioni semplici
B.Aumentare la complessità del codice
C.Usare nomi di funzioni lunghi
D.Scrivere codice in modo confuso

23. Cosa significa avere una responsabilità singola in un modulo?

A.Ogni modulo dovrebbe avere una sola responsabilità.
B.Ogni modulo può gestire più compiti.
C.I moduli devono essere collegati tra loro.
D.Non è importante mantenere le responsabilità separate.

24. Qual è l'obiettivo principale della tecnica 'Move Method'?

A.Spostare metodi in classi più appropriate
B.Aumentare il numero di metodi
C.Eliminare metodi obsoleti
D.Rinominare metodi

25. Qual è l'importanza della coerenza nel codice?

A.Riduce la possibilità di errori
B.Aumenta la complessità
C.Rende il codice più lungo
D.Richiede più commenti

26. Fill in the blank: È meglio preferire l'____ rispetto alla programmazione procedurale.

A.orientamento agli oggetti.
B.programmazione imperativa.
C.scrittura di codice complesso.
D.uso di variabili globali.

27. Quando dovresti sostituire i numeri magici nel codice?

A.Quando non sono significativi
B.Sempre, non importa
C.Se ci sono errori
D.Quando il codice è semplice

28. Cos'è una naming convention?

A.Una regola di denominazione per variabili e funzioni
B.Un tipo di errore di programmazione
C.Un linguaggio di machine learning
D.Un metodo di debug

29. Qual è l'importanza dei test automatizzati?

A.Riduce la probabilità di bug.
B.Rende il codice più lungo.
C.Complica il processo di scrittura.
D.Aumenta il numero di errori.

30. Quali frammenti di codice dovrebbero essere consolidati?

A.Frammenti condizionali duplicati
B.Metodi con nomi simili
C.Variabili non utilizzate
D.Commenti ridondanti

31. Qual è l'effetto di un codice complesso?

A.Difficoltà maggiore nel testing e nella manutenzione
B.Maggiore velocità di esecuzione
C.Meno bug
D.Facilità nella lettura

32. Cosa rappresenta la regola del 80/20 nel codice?

A.Il 20% del codice genera l'80% dei problemi.
B.Il 80% del codice è sempre perfetto.
C.Il 20% del codice deve essere scritto da un solo sviluppatore.
D.Non ha alcuna rilevanza pratica.

33. Cosa descrive meglio il metodo 'Inline Method'?

A.Sostituire una chiamata a un metodo con il valore restituito
B.Suddividere un metodo in più parti
C.Rinominare un metodo
D.Eliminare un metodo

34. Cosa significa rifattorizzare una funzione monolitica?

A.Dividere in funzioni più piccole e specifiche
B.Aggiungere più funzionalità
C.Rendere il codice più complesso
D.Eliminare completamente la funzione

35. Cosa significa modularità nel codice?

A.Suddividere il codice in moduli riutilizzabili.
B.Scrivere codice in un unico blocco.
C.Utilizzare solo una funzione per tutto.
D.Aumentare la complessità del codice.

36. Qual è la caratteristica del 'Rename'?

A.Rinominare variabili e metodi
B.Eliminare variabili non utilizzate
C.Aggiungere nuovi metodi
D.Spostare metodi

37. Cosa implica il principio della responsabilità unica?

A.Ogni classe o funzione dovrebbe avere una sola responsabilità
B.Tutte le funzioni devono avere più responsabilità
C.Il codice deve essere lungo
D.I commenti devono essere abbondanti

38. Cosa significa YAGNI?

A.Non scrivere codice non necessario.
B.Scrivere codice complesso.
C.Avere più funzioni di quelle necessarie.
D.Usare variabili globali in maniera eccessiva.

39. Quale dei seguenti non è un obiettivo del refactoring?

A.Migliorare la leggibilità
B.Aumentare la complessità
C.Ridurre i bug
D.Facilitare la manutenzione

40. Cos'è un 'code smell'?

A.Un indicatore di potenziali problemi nel codice
B.Un tipo di errore di sintassi
C.Un linguaggio di programmazione
D.Una funzione ben scritta

41. Compara codice complesso e codice semplice.

A.Il codice complesso è difficile da manutenere.
B.Il codice complesso è sempre migliore.
C.Il codice complesso è più veloce.
D.Il codice semplice è sempre sbagliato.

42. Qual è un segnale di allerta che potrebbe richiedere refactoring?

A.Codice difficile da comprendere
B.Codice ben strutturato
C.Codice con pochi commenti
D.Codice senza errori

43. Cosa si intende per abbreviazione nel codice?

A.Uso di nomi troppo corti per variabili
B.Uso di nomi lunghi e descrittivi
C.Aggiunta di commenti dettagliati
D.Creazione di funzioni complesse

44. Qual è l'uso corretto degli spazi bianchi nel codice?

A.Rendono il codice più leggibile.
B.Diminuiscono la leggibilità.
C.Aumentano la complessità.
D.Dovrebbero essere evitati.

45. Quale tecnica potrebbe aiutare a migliorare la coesione del codice?

A.Move Method
B.Remove Dead Code
C.Rename
D.Extract Method

46. Qual è la relazione tra test e Clean Code?

A.Testare il codice è fondamentale per mantenere la qualità
B.I test non sono necessari
C.Il codice deve essere complesso per essere testato
D.I test devono essere scritti dopo il codice

47. Qual è la lunghezza massima consigliata per le righe di codice?

A.80 caratteri.
B.100 caratteri.
C.120 caratteri.
D.60 caratteri.

48. Quale dei seguenti non è un vantaggio del refactoring?

A.Aumenta la leggibilità
B.Migliora la manutenzione
C.Riduce la complessità
D.Rende il codice più lento

Set correlati

Crea il tuo set di studio

Carica un PDF, incolla le tue note o descrivi un argomento – l'IA genera schede, quiz e altro in pochi secondi.