Pregunta

Me interesa saber cómo las personas organizan sus bibliotecas de código, en particular con respecto a los componentes reutilizables.Estoy hablando en OO términos que a continuación se pero estoy interesado en cómo su organizar las bibliotecas de otros tipos de lenguaje.

Por ejemplo:

  • Eres un purista de la biblioteca de clases de proyectos para todo, ¿o prefieres mantener todo en un solo proyecto?
  • ¿Reutilización su prediseñadas Dll o por qué se incluyen clases individuales a partir de proyectos anteriores en su trabajo actual?Si las clases individuales, comparten entre ellos los proyectos para asegurar que todos estén actualizados o no permiso de ramificación?
  • Cómo de grandes son sus elementos reutilizables?Cómo se centró son?¿Cómo se centró?
  • ¿Qué nivel de reutilización de hacer alcanzar a través de sus prácticas preferidas?

etc.

EDITAR

Yo no estoy en busca de una orientación específica aquí, solo estoy interesado en los pensamientos de la gente y prácticas.Estoy particularmente interesado en la reutilización de código entre proyectos distintos, en lugar de en un único proyecto.(Lamentablemente, el uso de 'proyecto' aquí es engañosa - me refiero a reutilizar en proyectos del mundo real a cabo para los clientes, no en los proyectos en Visual Studio sentido).

¿Fue útil?

Solución

Generalmente no puede ser la guía de la implementación de consideraciones:

¿Cómo va a implementar (es decir,¿qué vas a copiar en su máquina de producción) ?

Si lo que se va a implementar son empaquetado componentes (es decir,dll, jar, war, ...), es conveniente organizar el "código" de la biblioteca como una colección de empaquetado conjunto de archivos.
De esa manera, va a desarrollar directamente con el -- dll, jar, war, ...-- que será implementado en la plataforma de producción.
La idea de ser:si funciona con los archivos empaquetados, todavía puede trabajar en la producción.


la reutilización de código entre proyectos distintos, en lugar de en un único proyecto.

Yo sostengo que tipo de reutilización es más fácil en un "componente" de enfoque (como la que se comenta en la pregunta "Proveedor de Ramas en GIT")

A lo largo de más de 40 proyectos actuales, hemos logrado:

  • técnica de reutilización de por aislar sistemáticamente puro aspecto técnico en el marco independiente (normalmente, registro de marco, excepción marco, KPI - indicadores Clave de Rendimiento - marco, y así sucesivamente).
    Los técnicos de los componentes se vuelven a utilizar en todos los otros proyectos.
  • funcional reutilización mediante el establecimiento de una clara aplicativo la arquitectura con el fin de dividir cualquier dominio funcional (dado el negocio y especificaciones funcionales) en bien definidas las aplicaciones.Que normalmente implican, por ejemplo, un autobús de la capa, que también es un gran candidato para la exposición de servicios reutilizados por otros proyectos.

Resumen:
Para grandes funcional de dominio, de un solo proyecto, no siendo manejable, un buen aplicativo arquitectura de plomo natural de la reutilización de código.

Otros consejos

Nos seguimos estos principios:

  • El Release-Reutilización Equivalencia Principio: El gránulo de la reutilización es el gránulo de liberación
  • .
  • El Cierre principio común:. Las clases de un paquete deben estar cerrados juntos contra los mismos tipos de cambios
  • La reutilización Común Principio:. Las clases de un paquete son reutilizados juntos
  • El acíclico Dependencias Principio: Permitir que no hay ciclos en el grafo de dependencias paquete
  • .
  • The Stable Dependencia Principio: Depend en la dirección de la estabilidad
  • .
  • El Estable Abstracción Principio:. Un paquete debe ser tan abstracto como es estable

Se puede encontrar más información sobre aquí y otra aquí .

Depende de la plataforma que trabaja. Soy un (orgullo) desarrollador de Java y tenemos buenas herramientas para organizar nuestras dependencias como Maven o Ivy

Independientemente de lo que decida un buen control de código fuente es crucial para esto, ya que le permite implementar su estrategia de forma que quiera sin acabar con una gran cantidad de copias sin relación de su libraries.good ramificando apoyo es esencial.

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