Debería estar más preocupado con el acoplamiento entre los paquetes o entre las unidades de distribución?

StackOverflow https://stackoverflow.com/questions/123687

  •  02-07-2019
  •  | 
  •  

Pregunta

He estado buscando en métricas para acoplamiento y también DSM.

Una de las herramientas que he estado usando se ve en el acoplamiento entre módulos con un módulo de ser una unidad de distribución (en este caso .neto de la asamblea).

Siento que debo estar más interesados en el estudio de acoplamiento entre paquetes (o espacios) que con las unidades de distribución.

Debería estar más preocupado con el acoplamiento entre paquetes/espacios de nombres (asegúrese de que las abstracciones sólo dependen de las abstracciones, tipos concretos dependen de las abstracciones y sus ciclos en las dependencias a fin de que la refactorización y extender es de fácil) o debería estar preocupado por si me pueden implementar nuevas versiones sin necesidad de actualizar sin cambios unidades de distribución?

Lo hace nadie medida?

Para lo que vale, la de mis entrañas siento es que si me voy a centrar en el paquete/espacio de nombres de acoplamiento de la unidad de distribución de acoplamiento va a venir de forma gratuita o al menos ser más fácil.

¿Fue útil?

Solución

En primer lugar, es fácil ir por la borda mirando las dependencias y acoplamiento.Asegúrese de que usted no está complicando más de él.

Con la renuncia de la forma, esto es lo que sugiero.

Realmente hay 3 diferentes puntos de vista a la dependencia/acoplamiento de gestión:1) la estructura física (es decir,las dependencias de ensamblado) 2) la estructura lógica (es decir,espacio de nombres de dependencias) 3) implementación de la estructura (es decir,clase de dependencias)

Para aplicaciones de gran tamaño, necesitará al menos examinar todos los 3, pero normalmente se puede priorizar.

Para el cliente implementa aplicaciones, número 1 puede ser muy importante (es decir,por cosas como plugins).Para aplicaciones de implementar dentro de la empresa (es decir,asp.net), el ítem #1 en general resulta ser no tan importante (excluyendo los marcos reutilizados a través de varias aplicaciones).Generalmente, usted puede desplegar toda la aplicación fácil lo suficiente como para no tomar la sobrecarga de una estructura complicada para el #1.

Elemento #2 tiende a ser más de un mantenimiento cuestión.Conozca sus límites de capa y su relación con los espacios de nombres (es decir,estás haciendo 1 capa por espacio de nombres o son empaquetados de manera diferente en el nivel lógico).A veces las herramientas que pueden ayudar a que se cumplan sus límites de capa mirando a la lógica de la dependencia de la estructura.

Artículo #3 es realmente acerca de hacer el bien de la clase de diseño.Todo buen desarrollador debe plantear una muy buena cantidad de esfuerzo en asegurar que él sólo está tomando en la debida dependencias en sus clases.Esto es más fácil de decir que de hacer, y normalmente es una habilidad que tiene que ser adquirido a través del tiempo.

Para obtener un poco más cerca del corazón de su pregunta, el ítem #1 es realmente acerca de la manera en que los proyectos establecidos en el VS solución.Así que esto no es un elemento a medir.Se trata más bien de algo que el programa de instalación en el principio y vamos a ejecutar.Elemento #2 es algo que usted puede utilizar una herramienta para comprobar durante construye a ver si los desarrolladores se han roto las reglas.Es más de un cheque de una medida realmente.Artículo #3 es realmente la que te gustaría tomar un buen vistazo a la medición.Buscar las clases en su base de código que tienen una alta cantidad de acoplamiento va a ser puntos de dolor por la carretera, garantizar la calidad en los chicos.También, la medición de este nivel, le permite tener una idea de la calidad (en general) de la base de código que es convertido.Además, se puede dar una bandera roja, si alguien comprueba algunos realmente obsceno código en su código base.

Así que, si quieres priorizar, echa un vistazo rápido en el #1 y #2.Saber lo que debe ser similar.Pero para la mayoría de las aplicaciones, artículo #3 debe tomar la mayor parte del tiempo.

Esta respuesta, por supuesto, excluye enorme marcos (al igual que el .NET BCL).Los bebés necesitan una atención muy cuidadosa a #1.:-)

De lo contrario, usted puede terminar con problemas como este:"Las versiones actuales de la .NET Framework incluye una variedad de interfaz gráfica de usuario basada en las bibliotecas lo que no funcionan correctamente en el Servidor Core" http://www.winsupersite.com/showcase/win2008_ntk.asp

Donde no se puede ejecutar .RED en una interfaz gráfica de usuario de menos de instalación de Windows Server 2008, ya que el marco tiene dependencias en la interfaz de usuario de las bibliotecas de...

Una última cosa.Asegúrese de que usted está familiarizado con los principios detrás de los buenos dependencia/acoplamiento de gestión.Usted puede encontrar una buena lista aquí:

http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

Otros consejos

el acoplamiento y la dependencia de los ciclos entre las unidades de distribución es más "grave" porque puede hacer que sea muy difícil de implementar su programa - y, a veces, también puede hacer que sea muy difícil incluso compilar tu programa.

que son en su mayoría a la derecha, un buen nivel superior de diseño que divide el código en paquetes lógicos y claros y dependencias predefinidas sólo conseguirá que la mayoría de la manera, la única cosa que falta es correcta separación de los envases en unidades de distribuciones.

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