¿Cómo se gestiona Ruby, Python, PHP sin Spring?

13

Escribo aplicaciones Java empresariales y servicios web en el trabajo ( Spring , Hibernate, Maven, RESTEasy) y PHP (CakePHP ) y Python (Django) para mis proyectos paralelos.

Si bien veo el valor que trae la Inversión de control, la Programación orientada a aspectos, etc., que Spring trae, no estoy seguro de cómo las aplicaciones web masivas que no están en la pila de Java se administran sin un marco como Spring.

Entonces, ¿los desarrolladores solo tienen que "aguantar" los componentes estrechamente acoplados y otros reclamos que Spring elimina o me estoy perdiendo algo?

Para aquellos que no están familiarizados con Spring, las funciones que más utilizamos son:

  • Contenedor de inversión de control: configuración de los componentes de la aplicación y ciclo de vida gestión de objetos Java,

  • Programación orientada a aspectos: permite la implementación de rutinas transversales,

  • Gestión de transacciones: unifica varias API de administración de transacciones y coordina las transacciones para objetos Java.

pregunta rdasxy 04.11.2011 - 21:58

4 respuestas

15

Otras plataformas no necesitan Spring porque esos lenguajes no son tan restrictivos como Java.

Daré un ejemplo con node.js

  • Contenedor de inversión de control: configuración de los componentes de la aplicación y gestión del ciclo de vida de los objetos Java

la configuración del servidor se realiza en código o en un archivo de configuración json simple. En cuanto a los sistemas IoC genéricos, simplemente no los necesitamos, Javascript es un lenguaje expresivo y dinámico. Sí, necesita IoC pero eso es simple, pase dependencias a sus objetos como parámetros de función.

  • Programación orientada a aspectos: permite la implementación de rutinas transversales

Simplemente no creo que necesitemos algo como esto, escribimos código modular y simplemente funciona.

  • Gestión de transacciones: unifica varias API de administración de transacciones y coordina las transacciones para objetos Java

noSQL es increíblemente popular. No hay noción de transacción.

Personalmente, diría que dichos sistemas están inflados y sobre diseñados y usted simplemente no los necesita. Otros idiomas y plataformas simplemente se mantienen ágiles y ágiles.

    
respondido por el Raynos 04.11.2011 - 23:57
15

En la mayoría de los lenguajes de alto nivel, es trivial escribir usando los principios de diseño AOP y / o IoC.

Todo lo que necesita para implementar AOP es que el lenguaje admita funciones de orden superior. Por ejemplo:

def log(fn):
  def wrapped_fn(*a, **kw):
    logger.log(fn_formatter(fn, a, kw))
    return fn(*a, **kw)
  return wrapped_fn

@log
def do_something(my_friend):
  return have_fun_with(my_friend)

También puede seguir los principios generales de IoC o inyección de dependencia cuando programe. No necesita un contenedor en particular para proporcionar esa capacidad. Solo puedes escribir el código de esa manera.

def etl(iextract, transformations, iload):
  return iload(itertools.imap(compose(*transformations), iextract()))
    
respondido por el dietbuddha 05.11.2011 - 05:18
9

Bueno, Python también disfruta de la primavera Spring Python .

Spring Framework fue creado para facilitar el desarrollo de Java y lo que es cierto para el desarrollo de Java no es necesario para el desarrollo de Ruby o Python.

Ruby, por ejemplo, tiene capacidades de metaprogramación, lo que significa que puedes crear tu propio AOP.

Sin embargo, irónicamente, los nuevos marcos web de Java están intentando capturar los marcos de Django y Rails (ver los marcos de Grails y Play! por ejemplo).

    
respondido por el Chiron 04.11.2011 - 23:35
3

Para Python, BlueBream (también conocido como Zope 3) proporciona lo que Spring hace y más.

La complejidad y el poder tienen un costo, hay ocasiones en que no quieres pagarlo.

Muchos programadores encuentran a BlueBream desalentador y demasiado para lo que necesitan hacer, prefieren los juegos de herramientas más pequeños y más eficientes. La mayoría de las otras soluciones (Django, etc.) se basan en el paradigma MVC.

También puedes ver fuerzas similares en acción en el espacio de Java, con cosas como la hermosa Playframework .

    
respondido por el Roberto Lupi 05.11.2011 - 17:34

Lea otras preguntas en las etiquetas