Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

intricatezza e numero di funzioni

split (8700 points)
21 59 79
in Funzionamento degli homework by (8.7k points)
closed by
ciao a tutti

ho un dubbio sull'intricatezza, ho visto che radon dà un livello di intricatezza per ogni funzione, e fornisce anche la media se richiesto.

però se viene valutata solo la funzione più intricata dal prof (questo dice per ora il test provvisorio sugli homeworks consegnati) allora uno potrebbe pensare di spacchettare il programma in 1000000000 funzioncine che fanno tipo una cosa a testa, e magari l'intricatezza viene 1. ma quindi mi chiedo, dovremmo fare una cosa del genere? non verrebbe fuori comunque un codice orrendo e frammentato?
644 views
closed with the note: answered

3 Answers

Best answer
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)
selected by
Giusto! Appena posso inserisco anche un limite di intricatezza minimo. ;-)

BTW, quando radon dà valori D,E,F vale la pena di spezzare la funzione, altrimenti non vale la pena.
francesco.dev (33560 points)
22 51 129
by (33.6k points)

Ciao split!

Lo scopo è quello di dividere il programma principale in tante funzioni quante possiamo, ma questo non vuol dire creare funzioni laddove non servono! Infatti è inutile creare una funzione legata, ad esempio, ad una semplice somma di valori!

Quindi il mio consiglio è di suddividere ovviamente il codice in funzioni, ma a patto che queste siano funzionali al problema stesso e non servano solo per spezzettare il più possibile il codice ottenuto inizialmente.

Infine ti ricordo che il professore ha specificato che per homework futuri ci saranno anche altri parametri, come addirittura la struttura del codice, la presenza di commenti e quindi molto probabilmente farà attenzione a tali problemi, perché sinceramente creare migliaia funzioni solo per essere "meno intricato" non è una soluzione da prendere in considerazione! La soluzione deve essere un misto di complessità e velocità d'esecuzione, senza trascurarne una delle due! Quindi bisogna creare un codice tanto semplice quanto performante, ma ovviamente non possiamo avere entrambe le cose ai massimi livelli!

Sperando di essere stato chiaro e, soprattutto, d'aiuto!
- Francesco Pio Scognamiglio

Auron (15880 points)
51 126 194
by (15.9k points)
Francesco, condividiamo molte idee a quanto pare xD
francesco.dev (33560 points)
22 51 129
by (33.6k points)
Sempre bello trovare qualcuno che la pensa allo stesso modo! :D
Auron (15880 points)
51 126 194
by (15.9k points)
Quoto in pieno
split (8700 points)
21 59 79
by (8.7k points)
ma infatti la mia era una domanda sulla valutazione, non volevo arrivare a spacchettare i miei programmi :)
Auron (15880 points)
51 126 194
by (15.9k points)
L'idea non è quella di raggiungere a tutti i costi la minor intricatezza possibile, per come la vedo io... Penso che il Buon senso la faccia da padrone qui... O meglio, è auspicabile avere un valore di intricatezza il più piccolo possibile, ma solo se questo ha un senso... Racchiudendo in una funzione, per esempio, degli elementi omogenei sotto un certo punto di vista... Ma non un solo elemento "solo" per raggiungere la minima intricatezza possibile... Mi corregga il professore se sbaglio, ma penso che un divisione in funzioni "responsabile" sia la soluzione migliore... Anche perché in futuro, quando diventeremo i migliori informatici del mondo e ci chiederanno dei programmi, se dovesse capitare che qualcuno debba rimetterci mano impazzirebbe in mezzo a 800 funzioncine prive di "consistenza"...