Pregunta

Hace algunos años, que necesitaban una biblioteca de C ++ IPC para hacer llamadas de función a través de TCP. Elegimos uno y lo usamos en nuestra aplicación. Después de un tiempo, se hizo evidente que no proporcionó toda la funcionalidad que necesitamos. En la próxima versión de nuestro software, que arrojó la tercera biblioteca IPC partido y lo reemplazó por uno escribimos nosotros mismos . A partir de entonces, a veces dudo si esto era una buena decisión, ya que ha demostrado ser muy mucho trabajo y es obvio que se sentía como reinventar la rueda . Hay desventajas a la reutilización de código que justifican esta reinvención: Así que mi pregunta es?

¿Fue útil?

Solución

La mayor desventaja (lo mencionas mismo) mediante la reutilización de bibliotecas de terceros, es que están fuertemente acoplados y depende de la forma en que funciona la biblioteca y cómo se supone que debe ser utilizada, a menos que se las arregla para crear una capa de interfaz de media que puede cuidar de él.

Pero es difícil crear una interfaz genérica, ya que la sustitución de una biblioteca existente con otro, más o menos requiere que la nueva funcionalidad funciona de manera similar. Sin embargo, siempre se puede volver a escribir el código de usarlo, pero que puede ser muy difícil y llevar mucho tiempo.

Otro aspecto es que si reinventar la rueda, tiene un control completo sobre lo que está sucediendo y que puede hacer las modificaciones que sean necesarias. Esto puede ser completamente imposible si usted está en función de una tercera parte biblioteca estar vivo y constantemente le proporciona actualizaciones y correcciones de errores. Por otra parte, la reutilización de código de esta manera le permite concentrarse en otras cosas en el software, que a veces podría ser la cosa que hacer.

Hay siempre una solución de compromiso.

Otros consejos

puedo sugerir algunas

  1. Los insectos pueden ser duplicadas - Si se vuelve a utilizar un código erróneo:)

  2. A veces puede añadir una sobrecarga adicional. Como ejemplo, si sólo tiene que hacer una cosa simple que no es recomendable utilizar una biblioteca de gran complejo que implementa la función requerida.

  3. Es posible que enfrentarse con algunos problemas de licencia.

  4. Es posible que tenga que pasar algún tiempo para aprender \ configurar la biblioteca externa. Esto puede no ser eficaz si el re-desarrollo tiene un tiempo mucho menor.

  5. La reutilización de una biblioteca pobremente documentada puede obtener más tiempo de lo esperado / estimado

P.S. Las razones para escribir nuestra propia biblioteca fueron los siguientes:

  • La evaluación de bibliotecas externas es a menudo muy difícil y lleva mucho tiempo. Además, algunos problemas sólo se hacen visibles después de una evaluación exhaustiva.
  • Se hizo posible la introducción de algunas características que son específicas para nuestro proyecto.
  • Es más fácil hacer el mantenimiento y para escribir extensiones, como saben la biblioteca de principio a fin.

Es más o menos siempre caso por caso. Usted tiene que mirar a la idoneidad y la calidad de lo que está intentando volver a utilizar.

El problema número uno es: se puede volver a utilizar con éxito solamente si el código que el código es un buen código. Si fue mal diseñado, tiene errores, o es muy frágil a continuación, se encontrará con los mismos problemas que ya se ha ejecutado en -. Usted tiene que ir a hacer usted mismo de todos modos, porque es muy difícil de modificar el código existente

Sin embargo, si se trata de un tercero biblioteca que usted está considerando el uso que usted no tiene el código fuente, que es un poco diferente. Se puede tratar de obtener el código fuente si se trata de ese tipo de biblioteca. Algunos proveedores de bibliotecas comerciales están abiertos a las sugerencias y peticiones.

La Sabiduría de Oro :: Tiene que ser útil antes de que pueda ser reutilizable.

Si el código se basa en los recursos externos y los que desaparece, es posible que porciones incapacitantes de muchas aplicaciones.

Desde código más reutilizada procede de Internet, se encuentra con todos los problemas con el Cuarto de baño de pared Código Atwood habla. Puede que tenga problemas con el código prestado inseguros o poco fiable, y cuanto más negro en caja es el peor.

Las desventajas de la reutilización de código:

  • Depuración toma mucho más tiempo ya que no es su código y lo más probable es que se trata de código un tanto hinchado.
  • Todos los requisitos específicos también se llevará más trabajo ya que se ven limitados por el código que está reutilizando y tienen que trabajar en torno a sus limitaciones.
  • reutilización de código constante dará lugar a la larga en un aplicaciones hinchados y desorganizados con fuerza para perseguir bichos -. Programación demonios
  • La reutilización de código puede (dependiente de los casos) reducir el reto y factor de satisfacción para el programador, y también perder una oportunidad para desarrollar nuevas habilidades.

Depende del caso, el lenguaje y el código que desea volver a utilizar o volver a escribir. En general creo que el nivel más alto es el lenguaje es, más que tender hacia la reutilización de código. Errores en lenguaje de alto nivel pueden tener un mayor impacto, y son más fáciles de escribir. código de alto nivel debe permanecer legibles, ordenado y flexible. Por supuesto que se puede decir de todo el código, pero, de alguna manera, volver a escribir una biblioteca de C suena menos de una buena idea de volver a escribir (o más bien re-factoring) código de modelo de PHP.

Así que de todos modos, estos son algunos de los argumentos que haría uso de la promoción de "reinventar la rueda".

A veces es sólo más rápido, más divertido, y mejor en el largo plazo para volver a escribir desde cero de tener que evitar los errores y limitaciones de una base de código actual.

Se pregunta lo que está utilizando para mantener esta biblioteca reinventado?

  1. Tiempo inicial para crear un código reutilizable es más caro y el costo de tiempo
  2. Cuando la rama principal tiene una actualización que necesita para sincronizarlo y desplegar de nuevo
  3. Los insectos pueden ser duplicadas - Si se vuelve a utilizar un código erróneo
  4. La reutilización de un código pobremente documentada puede obtener más tiempo de lo esperado / estimado
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top