Non avere paura delle funzioni a 1 riga!
Un sacco di programmatori sembrano avere un blocco mentale sulle funzioni a 1 riga, non si dovrebbe.
Se rende il codice più chiaro e pulito, estrae la linea in una funzione.
Le prestazioni probabilmente non saranno influenzate.
Qualsiasi compilatore decente realizzato nell'ultimo decennio (e forse ulteriormente) incorpora automaticamente una semplice funzione a 1 riga. Inoltre, 1 riga di C può facilmente corrispondere a molte linee di codice macchina. Non bisogna presumere che anche nel caso teorico in cui si incorre nel sovraccarico totale di una chiamata di funzione, questo overhead è significativo rispetto alla "piccola linea". Per non parlare delle prestazioni generali della tua applicazione.
L'astrazione porta a un design migliore. (Anche per le singole righe di codice)
Le funzioni sono gli elementi costitutivi principali del codice astratto e componente, non devono essere trascurate. Se incapsulare una singola riga di codice dietro una chiamata di funzione rende il codice più leggibile, fallo. Anche nel caso in cui la funzione viene chiamata una volta. Se ritieni che sia importante commentare una particolare riga di codice, è un buon odore di codice che potrebbe essere utile spostare il codice in una funzione ben denominata.
Certo, quel codice potrebbe essere 1-riga oggi, ma quanti modi diversi di eseguire la stessa funzione ci sono? L'incapsulamento del codice all'interno di una funzione può rendere più semplice la visualizzazione di tutte le opzioni di progettazione disponibili. Forse la tua 1 riga di codice si espande in una chiamata a un webservice, forse diventa una query di database, forse diventa configurabile (usando il modello di strategia, per esempio), forse vuoi passare alla memorizzazione nella cache del valore calcolato dal tuo 1- linea. Tutte queste opzioni sono più facili da implementare e più facilmente pensate quando hai estratto la tua 1 linea di codice nella sua funzione.
Forse la tua linea deve essere più linee.
Se si dispone di un grande blocco di codice, si può essere tentati di stipare un sacco di funzionalità su una singola riga, solo per salvare sullo schermo immobiliare. Quando si esegue la migrazione di questo codice a una funzione, si riducono queste pressioni, il che potrebbe renderti più incline ad espandere il tuo complesso 1-liner in un codice più semplice che occupa più righe (che probabilmente migliorerebbe la leggibilità e la manutenibilità).
Ti stai preoccupando del sovraccarico della chiamata, ma poi chiama Pow per aumentare 2 alla potenza di un numero intero piccolo? ;-p –
Quale potrebbe essere un modo migliore per farlo? Mi piacerebbe saperlo –
2^x è uguale a 2 << x se x è un numero intero –