¿Cuándo es más productivo construir su propio marco que usar uno existente? [cerrado]


22

Me gustaría saber por qué decidió crear su propio marco en su empresa.

Por marco, no me refiero a pocas bibliotecas que usa con frecuencia. Me refiero a una forma específica de crear aplicaciones además de clases básicas, convenciones, etc.

Entonces, ¿ por qué construiste tu propio marco? ¿Cómo podrías justificar eso a la persona que te emplea? ¿Has medido el impacto positivo y negativo del mismo?

Con respecto a sus experiencias, ¿notó que, en algún caso, el marco de una empresa produjo beneficios reales o, por otro lado, aumentó los costos de desarrollo (curva de aprendizaje, depuración, mantenimiento, ...)?


66
No lo decidí. Se creó a sí mismo ...
Mchl

Respuestas:


16

Responda por qué:

  • Problemas de licencia
  • Requisitos específicos de la compañía que no existían en los marcos actuales
  • La compañía quiere tener control sobre el soporte y mantenimiento del marco
  • ¡El arquitecto no lo sabía mejor! Él / ella no sabía que existía ese marco específico, por lo que decidieron reinventar la rueda.

Actualizar:

Las empresas prefieren reinventar la rueda en lugar de utilizar marcos "pequeños". Por pequeño me refiero al marco que puede tener un futuro incierto. Por ejemplo, .NET framework es más seguro para las empresas que un framework creado por una comunidad pequeña. Las empresas necesitan seguridad porque muchas de sus aplicaciones son críticas para el negocio y también de larga duración.. El costo de reinventar la rueda puede ser más a corto plazo. Pero el costo puede ser mayor si el marco utilizado en la aplicación de la compañía está en desuso y ya no es compatible, o si se cambian las licencias. Aquí la empresa puede tener que desechar el marco actual y poner otro. Visual Basic es un buen ejemplo de un lenguaje que ya no es compatible con Microsoft. Y esto le costó a las compañías miles de millones ya que tienen que comenzar de nuevo con un nuevo desarrollo.


8

¿Por qué construir el tuyo?

  1. porque nunca se ha construido antes (raro, pero una posibilidad no obstante)
  2. porque quieres control total.
  3. porque solo necesitas un poco de funcionalidad para que sea más barato construirlo tú mismo

¿Por qué no construir el tuyo?

  1. no tienes tiempo para hacerlo
  2. probablemente sea mucho más barato si compra un marco existente
  3. ahorras mucho tiempo y puedes ser productivo mucho más rápido

7

En mi publicación sobre cuándo es apropiado reinventar la rueda , enumero una serie de ventajas de una reimplementación. Creo que esas ventajas se aplican especialmente a las bibliotecas de framework. Por ejemplo, a menudo es imposible aislar el uso de una biblioteca marco dentro de una pequeña parte de su aplicación. En cambio, tienden a dictar la estructura del código fuente del cliente y, por lo tanto, es deseable tener control total sobre la biblioteca.


3

La única razón real para reinventar la rueda es si es una aplicación crítica para el negocio. Si su empresa lo utilizará durante algún tiempo. Si esto aplicaciones / marco / etc. Es probable que evolucione más allá del marco comercial existente que tiene que ofrecer, luego, hacer que los codificadores de la empresa hagan que su implementación sea ciertamente aceptable.

Las únicas razones reales contra esto son si:

  1. El marco existente está bien mantenido, se adapta completamente a su tarea y estará bien en el futuro.

  2. Este es solo un caso del síndrome ' No inventado aquí '

  3. Su configuración actual no podrá crear con éxito este marco en un período de tiempo razonable por un costo razonable.

Joel Spolsky escribió un muy buen artículo sobre el tema: En defensa del síndrome del no inventado aquí


2

Básicamente, cuando utiliza el trabajo de otros, los agrega como empleadores invisibles o "manos adicionales".

Si son buenos, te ayudarán. Si no, debe hacer su trabajo además del suyo, en otras palabras, mantener su código. Esto podría ser un riesgo inaceptable, pero lo consideraría muy raro.

La palabra clave es hacer que el marco sea intercambiable, mediante la codificación de una interfaz. Las interfaces más rígidas en el mundo Java son las especificaciones de Sun, que se prueban con la API de servlet.

Entonces no consideraría que haya alguna razón para no usar un marco.


1
Es útil observar el proceso de desarrollo de cualquier marco que adopte. Los marcos con una comunidad fuerte y un proceso abierto, donde como usuario puede ver todo lo que sucede y votar para influir en él, son de bajo riesgo, especialmente si vienen con código fuente (trato de evitar el código que no puedo construir ) En ese caso, no es necesario desarrollar un contenedor adicional alrededor del marco.
Joeri Sebrechts

2

Tenemos un marco bastante maduro donde trabajo. Aquí hay un resumen del Marco de Fundamentos

Una de las razones clave para usarlo es la estabilidad. No estamos obligados a Microsoft ni a ningún otro proveedor que se vea impulsado a agregar nuevas características y complejidad año tras año.

(Mis propios puntos de vista, no los de mi empleador, etc., etc.)


2

Lo hice varias veces, para cumplir con los requisitos no cubiertos por los marcos existentes (en aquel entonces).

En la mayoría de los casos, esos marcos internos han sido eliminados por marcos más nuevos y completamente desarrollados. Por ejemplo, en el año 2000, creé un marco web Java, en algunos aspectos comparables a Rails, que se usaba para crear un sistema complejo de entrada de pedidos con varias formas desordenadas. Funcionó bien, pero, por supuesto, unos años más tarde, los marcos más maduros como Struts y JSF lo volvieron obsoleto. Pero en aquel entonces, era lo correcto, funcionó bien y la velocidad de desarrollo fue impresionante.

Otro marco que he desarrollado todavía está en uso (y también en desarrollo activo); la primera versión fue escrita en 2004. Esta se usa principalmente para aplicaciones intralogísticas; la compañía que lo usa todavía lo ve como una característica distintiva. La razón principal para crearlo fue facilitar la creación de aplicaciones conectadas a la base de datos para escáneres de códigos de barras móviles (ejecutando algo de Windows CE); funcionó tan bien que los jefes decidieron usar el mismo concepto para el software de PC también y, bueno, todavía están contentos con él.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.