È buona norma seguire le tecniche di ottimizzazione durante la codifica iniziale stessa oppure concentrarsi esclusivamente sulla realizzazione della funzionalità?
Se conosci le prestazioni sono critiche (o importanti), prendere in considerazione nella progettazione e scrivere correttamente la prima volta. Se non lo consideri anche nel tuo design ed è importante, stai perdendo tempo o "sviluppando una prova di concetto".
Parte di questo si riduce all'esperienza; Se conosci le ottimizzazioni e le aree problematiche del tuo programma o hai già implementato funzionalità simili in passato, la tua esperienza ti aiuterà sicuramente a creare un'implementazione più vicina al risultato finale la prima volta. Se hai ancora bisogno di una dimostrazione del concetto, non dovresti scrivere il programma vero e proprio fino a quando non è stato completato - lanciare alcuni test per determinare quale soluzione è appropriata per il problema, quindi implementarla correttamente.
Se ci si concentra esclusivamente sulla funzionalità durante la codifica iniziale, allora quanto è facile o difficile prendersi cura dell'ottimizzazione in seguito?
Alcune correzioni sono veloci, altri meritano riscritture complete. Quanto più deve cambiare e adattarsi dopo il fatto, più tempo sprecate a ripetere il test e mantenere un programma mal implementato. Le librerie che sono più facili da mantenere e sostenere le richieste sono in genere quelle che l'ingegnere ha compreso quale sia il design ideale e ha cercato di raggiungere quell'ideale durante l'implementazione iniziale.
Naturalmente, questo presuppone anche che si preferisca un programma di lunga durata!
Domanda simile (non in realtà un duplicato): http://stackoverflow.com/questions/895574/what-are-some-good-code-optimization-methods – TRiG