No elimine las duplicaciones hasta que lo vea CUATRO VECES. Si solo se duplican dos líneas de código miserables en tres lugares, ¡no se moleste con eso! Resumir esa pequeña duplicación no hará que la base de código sea más fácil de mantener. No elimina una cantidad significativa de código; de hecho, existe la posibilidad de que esto haga que la tarjeta de código se lea. Nuevamente, espere hasta que se produzca una duplicación significativa antes de refactorizar. Otra buena regla general es que cualquier generalización debería eliminar más líneas de código de su proyecto de lo que agrega (Irónicamente, en realidad es sorprendente que su esfuerzo por eliminar la duplicación termine agregando más código a su proyecto)
Refactorice una vez que su código funcione, NO antes. Concéntrate en hacerlo feo y trabajar primero, y ENTONCES hacerlo bonito. De lo contrario, corre el riesgo de quedar atrapado en un ciclo de mejora eterna. Practicar test-first lo hace más fácil, porque te hace concentrarte en la tarea en cuestión con el ciclo rojo-verde-refactor: escribe la prueba (rojo), escribe el código para que pase (verde) y luego limpia tu código ( refactor). Luego comienza a escribir la próxima prueba.
Crea duplicaciones intencionalmente cuando sea posible.
Si veo que dos partes del código que tipo de parecido, siempre intencionalmente hago que se vean exactamente iguales. Si es posible hacerlo fácilmente (a veces no lo es, aunque inicialmente parezca así), lo explicaré. Esto hace que sea mucho más fácil detectar la duplicación.
- Algún moderador sigue bloqueándome en el foro. ¿Cómo puedo cambiar mi dirección IP? ¿Cambiar mi dirección IP interrumpiría la transferencia de un archivo?
- ¿Por qué la profesión de ingeniería de software carece de un organismo de autogobierno / defensa? Por ejemplo, los contadores tienen el AICPA, los abogados tienen bares.
- Matemáticas e informática o ingeniería de software, ¿cuál es mejor con DTU?
- ¿Cuáles son las 10 mejores cualidades / habilidades / conocimientos para un ingeniero de interfaz de usuario sénior en DNAnexus?
- ¿Creceré en la industria de TI en función de las tareas que realizo?