Come programmatore principiante, ho iniziato a scavare solo di recente nel benchmarking e ho confrontato vari modi per realizzare lo stesso compito in termini di velocità.
Il più delle volte, il risultato è che la differenza di velocità è trascurabile o che è talmente grande che utilizzerò sicuramente l'opzione più veloce.
Questo lascia le casse nel mezzo. Se capisco correttamente dalla lettura di domande e risposte simili, il consenso degli ingegneri del software è che eventuali ottimizzazioni che comprimono la leggibilità del codice o che ti fanno perdere tempo prezioso dovrebbero essere lasciate fino a quando non hai incontrato un problema di prestazioni e identificato quale codice è il collo di bottiglia. Mi sembra del tutto ragionevole.
Tuttavia, che cosa è "leggibile" e cosa no? Ho un esempio molto concreto in mente. Dai un'occhiata a questo benchmark in JavaScript: link . Confronta l'uso del condizionamento implicito attraverso la moltiplicazione con un valore booleano con un condizionale esplicito utilizzando l'operatore ternario ?
. Ora, mi è costato poco tempo o sforzo per scrivere semplicemente la versione più veloce in tutti i casi, quindi l'unica preoccupazione nella mia mente è la leggibilità.
La mia opinione dopo aver letto i commenti e amp; risposte
Non sono d'accordo con il voto di duplicazione. Capisco quanto questo sia notevolmente simile alla domanda collegata, ma si trattava principalmente della leggibilità di un condizionale implicito. Puoi rispondere alla domanda collegata con una risposta come "l'operatore ternario è molto più facile da leggere rispetto all'aggiunta di un prodotto con un valore booleano"? No, ma puoi farlo.
Lì potrebbe - ma non è ancora stato - una risposta di fondo a entrambe le domande. Questo dovrebbe invocare l'idea di segnalazione, come fatto da parole chiave come if
o funzioni quasi universali come strlen
. Allontanarsi da questi metodi universali di fare qualcosa verso un metodo specifico della lingua o addirittura specifico per l'implementazione è destinato ad essere meno leggibile, costituendo quindi una micro-ottimizzazione, sulla quale il consenso è chiaro. Tuttavia, così com'è, le risposte hanno solo concluso che l'operatore ternario è più leggibile e quindi è stato unico per questa domanda. La discussione di fondo sulla micro-ottimizzazione, come ho cercato di chiarire menzionando questo nella mia domanda, non era l'argomento principale della domanda. Adatterò il testo della domanda per evidenziarlo. Quindi davvero non considero la mia domanda una duplicazione a quella collegata.