Scriba · appunti

Ingegneria del software — i code smell

48:127.180 paroleit
In due righe

I code smell non sono errori: sono sintomi. La lezione li raggruppa in cinque famiglie e mostra, per ognuna, il refactoring che le corrisponde.

Indice

  1. 01Che cos'è un code smell
  2. 02Le cinque famiglie
  3. 03Refused bequest e shotgun surgery
  4. 04GRASP e protected variations

Punti chiave

01Che cos'è un code smell0:00

Si distingue il code smell dal bug: il programma gira, ma la forma del codice segnala un problema di progetto. Si chiarisce che il giudizio resta umano e nessuna metrica da sola lo sostituisce.

02Le cinque famiglie10:22

Il docente lo segnala

Si passano in rassegna le cinque famiglie in cui si raggruppano i code smell, con un esempio per ciascuna e il criterio che le distingue.

03Refused bequest e shotgun surgery24:18

Due casi trattati per esteso: l'ereditarieta' rifiutata e la modifica che si sparpaglia. Per entrambi si arriva al rimedio.

04GRASP e protected variations

Glossario2 termini

refused bequestSottoclasse che eredita membri che non le servono.
shotgun surgeryUna modifica che costringe a toccare molte classi diverse.

Flashcard3 carte · taglia lungo il tratteggio

01Che cos'è il refused bequest?24:18
Una sottoclasse che eredita metodi o campi che non usa: la gerarchia va rivista o sostituita con delega.
02Un code smell è un bug?0:00
No: il programma funziona. È un sintomo di un problema di progetto.
03Che cosa dice protected variations?
Di isolare i punti che cambiano dietro un'interfaccia stabile.

Simulazione d'esame3 domande

⚠️

Domande generate automaticamente dalla registrazione: usale per ripassare, ma verifica le risposte sugli appunti prima di darle per certe.

1A quale famiglia appartiene il refused bequest?
  1. ABloaters
  2. BObject orientation abusers
  3. CChange preventers
  4. DCouplers
2Che cosa distingue un code smell da un difetto?
  1. AIl programma non compila
  2. BIl programma funziona lo stesso
  3. CIl test fallisce
  4. DL'utente se ne accorge
3Qual è il rimedio allo shotgun surgery?
  1. AEstrarre un'interfaccia
  2. BRaccogliere le responsabilità sparse
  3. CAggiungere astrazione
  4. DDividere la classe
🔒 Soluzioni — guardale dopo, non adesso
1-B24:18 Il problema è l'ereditarietà usata dove serviva la delega, non la dimensione della classe.
2-B0:00 Il sintomo riguarda la forma del codice, non il comportamento a runtime.
3-B
🤖 Contenuto generato da un'intelligenza artificiale a partire dalla registrazione: può contenere errori o imprecisioni. Questa dichiarazione deve restare sul documento se lo distribuisci o lo pubblichi.
Licenza non commerciale — vietata la vendita.
Questi appunti li ha scritti Scriba
Inizia con 30 minuti di trascrizione gratuiti · scriba.vignati.org
30 min gratis