stringtranslate.com

Reescribir (programación)

Una reescritura en programación informática es el acto o resultado de reimplementar una gran parte de una funcionalidad existente sin reutilizar su código fuente . Cuando la reescritura no utiliza ningún código existente, es común hablar de una reescritura desde cero .

Motivaciones

Un software normalmente se reescribe cuando se cumple una o más de las siguientes condiciones:

Riesgos

Varios ingenieros de software, como Joel Spolsky [1], han advertido contra las reescrituras totales, especialmente bajo restricciones de cronograma o presiones competitivas. Si bien los desarrolladores pueden inicialmente aceptar la oportunidad de corregir errores de diseño históricos, una reescritura también descarta aquellas partes del diseño que funcionan como se requiere. Una reescritura compromete al equipo de desarrollo a entregar no solo nuevas características, sino todas las que existen en el código anterior, al tiempo que potencialmente introduce nuevos errores o regresiones de errores previamente corregidos. [2] [3] Una reescritura también interfiere con el seguimiento de errores no corregidos en la versión anterior. [4]

La reescritura incremental es un enfoque alternativo, en el que los desarrolladores reemplazan gradualmente el código existente con llamadas a una nueva implementación, expandiendo esa implementación hasta que reemplaza por completo la anterior. Este enfoque evita una amplia pérdida de funcionalidad durante la reescritura. La ingeniería de software en sala limpia es otro enfoque, que requiere que el equipo trabaje a partir de una especificación escrita exhaustiva de la funcionalidad del software, sin acceso a su código. [5]

Ejemplos

El proyecto de Netscape para mejorar el diseño HTML en Navigator 4 ha sido citado como un ejemplo de una reescritura fallida. El nuevo motor de diseño ( Gecko ) se había desarrollado independientemente de Navigator y no se integraba fácilmente con el código de Navigator; por lo tanto, Navigator en sí fue reescrito en torno al nuevo motor, rompiendo muchas características existentes y retrasando el lanzamiento por varios meses. Mientras tanto, Microsoft se centró en mejoras incrementales para Internet Explorer y no se enfrentó a los mismos obstáculos. [3] [6] Irónicamente, Navigator en sí fue una reescritura exitosa en sala limpia de NCSA Mosaic supervisada por los desarrolladores de ese programa. Ver Guerras de navegadores .

Algunos proyectos que mencionan reescrituras importantes en su historia:

Técnicas

Véase también

Referencias

  1. ^ Spolsky, Joel. "Cosas que nunca deberías hacer, parte I". Joel on Software . Consultado el 23 de enero de 2015 .
  2. ^ Ronkes Agerbeek, Joost (15 de abril de 2005). "Nunca reescriba el código desde cero". Archivado desde el original el 10 de octubre de 2008. Consultado el 11 de septiembre de 2008 .
  3. ^ ab Spolsky, Joel (6 de abril de 2000). "Cosas que nunca debes hacer" . Consultado el 11 de septiembre de 2008 .
  4. ^ Zawinski, Jamie . "Cascada de adolescentes con déficit de atención" . Consultado el 11 de septiembre de 2008 .
  5. ^ Tilly, Ben (29 de septiembre de 2001). "Reescribiendo, desde cero, una enorme base de código" . Consultado el 11 de septiembre de 2008 .
  6. ^ Zawinski, Jamie (31 de marzo de 1999). «Renuncia y autopsia» . Consultado el 11 de septiembre de 2008 .

Enlaces externos