¿Es una buena práctica seguir las técnicas de optimización durante la codificación inicial o se debe concentrar primero en la realización de la funcionalidad?
Si sabe que el rendimiento es crítico (o importante), considérelo en su diseño y escríbalo correctamente la primera vez. Si no considera esto en su diseño y es importante, está perdiendo el tiempo o "desarrollando una prueba de concepto".
Parte de esto se reduce a la experiencia; Si conoces las optimizaciones y las áreas problemáticas de tu programa o si ya has implementado funcionalidades similares en el pasado, tu experiencia ciertamente te ayudará a crear una implementación más cercana al resultado final la primera vez. Si aún necesita una prueba de concepto, no debe escribir el programa real hasta que esté completo: saque algunas pruebas para determinar qué solución es la adecuada para el problema, luego impleméntela adecuadamente.
Si uno se concentra exclusivamente en la funcionalidad durante la codificación inicial, ¿qué tan fácil o difícil es cuidar la optimización más adelante?
Algunas correcciones son rápidas, otras merecen una reescritura completa. Cuanto más necesite cambiar y adaptarse después del hecho, más tiempo perderá en volver a probar y mantener un programa mal implementado. Las bibliotecas que son más fáciles de mantener y sustentar las demandas suelen ser aquellas en las que el ingeniero entendió qué diseño es el ideal y se esforzó por alcanzar ese ideal durante la implementación inicial.
¡Por supuesto, eso también asume que usted está a favor de un programa de larga duración!
Pregunta similar (en realidad no es un duplicado): http://stackoverflow.com/questions/895574/what-are-some-good-code-optimization-methods – TRiG