2008-09-23 7 views
5

Así que tengo entidades lógicas (persona, país, etc.), elementos/controles de GUI, controladores/controladores de navegación y datos, luego cosas como cuadrúpedos y temporizadores, y siempre lucho con la separación limpia de estas cosas en espacios de nombres lógicos.¿cómo organizas tus espacios de nombres?

por lo general tienen algo como esto:

  • Leviathan.GUI.Controls
  • Leviathan.GUI.Views
  • Leviathan.Entities
  • Leviathan.Controllers (datos y otras cosas)
  • Leviathan.Helpers (árboles y otras cosas)

¿Hay alguna buena guía sobre esto? Necesito detener este lío.

Respuesta

2

Trate de evitar el "y otras cosas" o "misc". categorías, si está poniendo las cosas en estas categorías, está fallando en organizarlas de verdad.

+0

mis pensamientos, solo me cuesta encontrar un lugar para las estructuras de datos que utilizo en raras ocasiones, pero que aún son necesarias, como un ÁrbolTable o Binario ... – kitsune

+0

¡¡¡Oye, lo siento, acabo de ver el cuadro de comentarios !! Acabo de encontrar esta característica. Me esforzaría por encontrar algo que sea un hilo común entre al menos 2 de ellos. A menos que no tenga nada en común con ningún otro espacio de nombres, puede categorizarse. Pero oultine rule # 1 no A sin B. Espero que esto ayude a – Patcouch22

3

Para aplicaciones

Company.Product.Tier.Sub.Sub 

donde me gusta para obtener el Nivel de Modelo, Vista, Controlador u otros nombres establecidos (datos)

Pero para nuestros controles, nos encontramos con

Company.Product.LogicalFeatureGrouping 

o

Company.Product.Addon 

veces es

Company.Product.LogicalFeatureGrouping.Addon 
0

sigo el Java/Python ideal que los espacios de nombres deben seguir la estructura de directorios.

+1

lo que nos llevaría a la siguiente pregunta: cómo organizas tu estructura de directorios :) Hago lo mismo, mis espacios de nombres están vinculados a la estructura de carpetas – kitsune

+0

Creo que leo un estándar en algún lugar sobre dominios ... como comenzar con un dominio de nivel superior (org, com. gov, mil) y bajar al nombre del proyecto y sus subcomponentes. –

1

Normalmente creo un espacio de nombres para cada nivel, como la interfaz de usuario, la lógica de negocio y la base de datos. Me obliga a separar los niveles. Creo otros espacios de nombres dentro de ellos según los componentes del sistema.