Come si può spiegare cos’è un metodo nella programmazione?

Il seguente estratto è stato preso dal libro di John Guttag' su 'Introduction to Computation and Programming Using Python'.
L'idea di base di un metodo (o funzione) è quella di incapsulare una computazione all'interno di uno scopo tale che possa essere trattato come una primitiva. Ciò significa che intuitivamente usiamo le funzioni incorporate, come printf() o System.out.println(). Ma quando scriviamo un metodo (o una funzione) definito dall'utente, possiamo implementare qualsiasi funzionalità che vogliamo, e il sistema considera la funzionalità come inerente o primitiva. Look at the following code, which finds the sum of 5 numbers (the code is written in Python):

  1. n = 5 # Denotes the total number of numbers 
  2. counter = 0 
  3. answer = 0 
  4. while i <= n: 
  5. answer += counter 
  6. counter += 1 
  7. print answer 

This is a reasonable piece of code, but it lacks general utility. Funziona solo per i valori indicati dalla variabile 'n'. Ciò significa che se vogliamo riutilizzare il codice, dobbiamo copiare il codice, eventualmente modificare i nomi delle variabili, e incollarlo dove vogliamo. Per questo motivo non possiamo usare questo calcolo all'interno di un altro calcolo più complesso.
Più codice contiene un programma, più possibilità ci sono che qualcosa vada storto, e più difficile è mantenere il codice. Immaginate, per esempio, che ci sia un errore nell'implementazione iniziale della somma di numeri, e che questo errore venga alla luce durante il test del programma. Sarebbe fin troppo facile sistemare l'implementazione della funzione somma dei numeri in un posto e dimenticare che c'era un codice simile altrove che aveva bisogno di essere riparato.
Questa risposta si è rivelata un po' più lunga di quanto mi aspettassi inizialmente, tuttavia, spero sinceramente che sia d'aiuto! 🙂