2010-02-10 21 views
8

Como Desarrollador PHP/Web, soy un gran admirador de MVC (Modelo-Vista-Controlador). Me encanta construir una aplicación sobre una base sólida que definitivamente separe la lógica de negocios, la lógica de presentación y el flujo de control.¿Patrón de diseño para el procesamiento de datos? (Alternativa MVC)

Sin embargo, también trabajo mucho en aplicaciones del lado del servidor, que simplemente procesan datos y registran el proceso y los resultados relevantes (como scripts de importación, scripts de migración de datos, servicios web, servidores de socket TCP) , etc.) No hay necesidad de un gran framework MVC en estos casos.

Me doy cuenta de que MVC todavía se puede aplicar aquí, pero parece exagerado. Además de un enfoque de procedimiento en bruto o una mezcla aleatoria de objetos de clase, ¿hay algún patrón de diseño arquitectónico específico especialmente adecuado para aplicaciones de procesamiento de datos, ejecución única y tipo daemon de servidor?

+0

http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science) podría ser de ayuda. – Amber

+0

u dio un enlace muerto ... – Amirshk

+0

Pruebe http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29 en su lugar. Los enlaces de Wikipedia incluyen paréntesis que causan estragos en SO y un montón de otras cosas, por lo que deberían estar codificados en URI como% 28 y% 29. –

Respuesta

1

Si entiendo correctamente, las aplicaciones de las que está hablando no tienen una interfaz de usuario más allá de la línea de comandos del shell. Si ese es el caso, aún puede usar MVC en el nivel de arquitectura del software; su Vista simplemente será trivial. Su Controlador será igualmente trivial, ya que hay muy pocas acciones para propagar entre el Modelo y la Vista.

Por supuesto, con una vista y un controlador triviales podría ser que no haya ningún patrón. No veo un problema con eso (en el nivel del que estás hablando). La clave es adoptar un enfoque basado en la interfaz (de manera similar a como lo haría con MVC) y esto tenderá a dar un mejor diseño al final; uno que se puede adaptar fácilmente a una interfaz de usuario diferente o a un medio de invocación, si es necesario en el futuro.

+0

Gracias Steven, ese es un gran consejo. –

+0

En particular, hace una buena observación sobre el alcance de MVC siendo altamente adaptable. –

+0

Por cierto, ¿tiene alguna idea específica sobre cómo implementar un "enfoque basado en interfaz" como sugiere, suponiendo que quería evitar un diseño MVC delgado pero quería organizar un poco mejor mi código puramente de procedimiento? ? –

1

supongo que necesita para empezar por preguntarse cuál es el problema que desea resolver (con estos patrones que está buscando)

Una vez que sepas esto, usted puede ser que encuentre algo útil aquí:

http://martinfowler.com/eaaCatalog/

1

Dado que está relacionado con el procesamiento de datos, supongo que tiene algún tipo de almacén de datos, puede consultar los patrones arquitectónicos de repositorio y DTO (objeto de transferencia de datos).

Más genéricamente, algunos de los patrones de diseño en el catálogo GoF también que se adapte como Singleton para una sola ejecución, la fachada por la abstracción de la lógica de procesamiento, Estrategia para diferentes lógica de procesamiento, máquina de estados tal vez por el demonio

Cuestiones relacionadas