Pregunta

Los principios, las cualidades del código, las prácticas, las abrilas, las características del lenguaje o el marco lo ayudan a reutilizar funciones efectivas, clases, etc. en un rango más amplio de casos. Todas las situaciones son interesantes: puede modificar tanto la implementación como la interfaz del código para habilitar/mejorar la reutilización, o solo la implementación, o nada en absoluto. Los indicadores clave de efectividad de la reutilización son (en cuanto a mí):

  • cuánto reduce el esfuerzo para implementar y mantener el mantenimiento
  • La calidad de la aplicación no se degrada
  • cuánta complejidad se reduce

(Todo en comparación con el reimplemento desde el nivel inferior).

PD. Si es posible, especifique un factor por respuesta con la descripción de cómo ayuda en su caso.

¿Fue útil?

Solución

Desarrollo impulsado por pruebas. Para que el código se pruebe fácilmente, debería:

1) Haz una sola cosa

2) tener la menor cantidad de dependencias posible

3) a menudo tienen esas dependencias aprobadas (para que puedan burlarse)

Por una asombrosa coincidencia, estos factores también hacen un código reutilizable. En realidad, no es una coincidencia: la mejor manera de tener un código reutilizable para garantizar que sea utilizado por al menos dos personas que llaman lo antes posible. El código creado con TDD comienza la vida con dos padres: el código en construcción y las pruebas unitarias, por lo que se está reutilizando desde el principio.

TDD tiene muchas otras ventajas aparte de la reutilización: le brinda pruebas automatizadas para todo su código, actúa como documentación de ejemplo sobre cómo usar el código y hace que la refactorización sea más segura. Escribir código con TDD puede llevar más tiempo que escribir código sin pruebas, pero a menudo lo compensará al necesitar mucho menos tiempo de depuración.

Otros consejos

Es un clásico - bajo acoplamiento y alta cohesión. Si un módulo o función realiza una tarea específica y tiene pocas o ninguna dependencia, será mucho más reutilizable (ya que encajará en una mayor variedad de situaciones) que si realiza múltiples tareas, tiene muchos efectos secundarios, requiere otros módulos , etc.

El factor principal es un humano y sus habilidades, experiencia, cerebro.
Todas las mejores prácticas no tienen valor si una persona no sabe cómo aplicarlas.

Para ser más específico y abordar el comentario, enumeraría las siguientes habilidades/actitudes personales que contribuyen a una reutilización del código:

  • Disciplina (Copiar Paste es fácil, la buena reutilización requiere disciplina)
  • Pasión (Debes hacer que el código sea reutilizable y estar orgulloso de ello)
  • Visión del proyecto (debe ver el panorama general del proyecto, no solo las declaraciones de código)
  • Sentimiento del código (debe poder atrapar el código huele, ver prácticas y patrones que puedan ayudar)
  • Solo habilitando Desarrollo de pruebas La mente puede asegurar la calidad del código junto con la reutilización.

Es similar a convertirse en un buen matemático, científico o artista. Hay muchas prácticas que todos pueden leer y aprender. Pero solo aquellos que pueden aplicar las prácticas pueden dominar su oficio.

El punto principal es que la cuestión de la reutilización se trata más personalidad, en lugar de tecnicismo.

Las funciones no deben tener efectos secundarios, esencialmente. No use variables globales: pase lo que una función necesita en los argumentos y aprobe la salida de la función como valor de retorno

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top