Pregunta

Me acabo de topar con el siguiente nuevo marco web java:Jugar

http://www.playframework.org/

http://www.playframework.org/documentation/1.0/home

Con una lista tan impresionante de características, me sorprende mucho no haber oído hablar de ella antes...

Suena como la tierra prometida del desarrollo web java...

¿Alguien lo ha probado?¿Alguna experiencia real con eso?¿Crees que vale la pena estudiarlo?

¿Fue útil?

Solución

Estoy de acuerdo con Jason que juegan sólo podría llegar a ser mejor que Grails. Con cuatro proyectos Grails bajo mi cinturón (precedido por dos proyectos de gobelino y un proyecto Wicket), estoy buscando seriamente en el juego siguiente.

Una de las cosas que pensé que era bueno de Grails es que "maravillosa de todo." Es decir, se utiliza maravillosa a escribir todo (excepto el HTML y el CSS) - dominios, controladores, servicios, plantillas de página (SGP), bibliotecas de etiquetas, la API de Hibernate (GORM), pruebas unitarias (GUNIT), y scripts de construcción ( GANT). Puede incluso escribir scripts de shell en Groovy. Por lo tanto, ser capaz de código de todos los aspectos de una aplicación utilizando una sola lengua de nuevo parecía una simplificación que fue hace mucho tiempo - obedeciendo a los días de escribir aplicaciones de escritorio en un solo lenguaje como C ++ o Delphi. Sin embargo, he aprendido que un solo tamaño no sirve para todos aquí.

Por un lado, el apoyo IDE para Groovy no es muy grande. IntelliJ hace el mejor trabajo, pero con Groovy ser dinámicos, sólo puede ir tan lejos. Las herramientas de refactorización no (no) captura todo, por lo que no se puede confiar en ellos al 100%. Esto significa que tienen que ser especialmente vigilantes con las pruebas unitarias. Aquí de nuevo, porque Grails se basa tanto en la dinámica "mágica" que ocurre en tiempo de ejecución, la unidad de pruebas en Grails debe depender de una extensa capa de burla de emularlo, y que la capa de burla es peculiar. Un tercer problema es que gran parte del llamado código maravilloso que usted está escribiendo es en realidad dominio específico del lenguaje (DSL) de código. (Para hacer una larga historia corta, DSL son a corto mano maravilloso, aprovechando el hecho de que en Groovy y gran parte de la sintaxis es opcional.) Grails utiliza diferentes DSL para varias configuraciones, asignación de dirección URL, etc., y es inconsistente. Cómo especificar la configuración de log4j, por ejemplo, parece en nada a la forma de especificar las fuentes de datos, y tampoco se ve como el Java puro sobre el cual se basa maravilloso. Por lo tanto, la promesa de "maravillosa de todo" se deshace de todos modos.

Así las cosas, Veo donde el equipo de reproducción está viniendo.

  1. Volviendo a Java regular para los dominios, controladores, servicios y JUnits tiene sentido. significa introducir fuerte el IDE puede fiable ayuda con Inteli-sentido, navegación de código, refactorización, etc (y por tanto no es necesario que pagar por IntelliJ Si está satisfecho con Eclipse.) Tener que escribir más detallado código con el fin de recuperar un fuerte apoyo de herramientas parece una buena cosa para mí en este momento. Ya veremos.

  2. Me gusta que todavía tengo la oportunidad de usar Groovy en las plantillas de página. Me temo que puede terminar poniendo más código en las plantillas de lo que debería, sin embargo.

  3. No tengo ninguna experiencia con APP, pero parece que es bastante cerca de lo GORM hace por mí, por lo que está bien.

  4. El apoyo del resorte COI en Grails es completamente transparente mientras que el apoyo de Juego parece mínimo; Sin embargo, creo que la COI está muy usado en exceso y estoy perfectamente dispuesto a mano el código de una asignación XML primavera en las raras ocasiones que realmente necesito uno. (Una de mis preguntas abiertas es que estoy suponiendo que la APP tiene soporte de transacciones por lo que no necesita Juego de primavera para que al igual que lo hace Grails, no?)

  5. Nunca he sido un fan de Python, así que me encogí cuando leí que Play utiliza Python para sus scripts de construcción. Pero estoy de acuerdo que los scripts GANT Grails funcionan bastante lento. Además, me parece que, si bien GANT es una gran mejora con respecto XML ANT, sigue siendo difícil de envolver su cabeza en torno a los conceptos de hormigas. Los guiones son bastante Griales GANT convoluida. Por lo tanto, voy a ir a ella con una mente abierta.

  6. La obra "módulo de aplicación" sonidos modelo sea igual Grails' 'plugin' modelo, por lo que está bien.

  7. Estoy muy impresionado con la documentación de reproducción que he leído hasta ahora. Yo tenía un enorme número de preguntas que van en, pero la mitad de ellos fueron contestadas derecha del palo.

Voy a informar de nuevo más tarde como yo buceo profundo en.

Otros consejos

He intentado Juego y me impresionó: lo hace un gran trabajo de la entrega de un modelo de desarrollo útil que es mucho más simple que la mayoría de los marcos. Más que cualquier otra cosa, la capacidad del tiempo de ejecución en 'modo de desarrollo' para analizar archivos .java es directamente vale mucho: basta con volver a cargar la página web en el navegador sin necesidad de ejecutar un script de construcción o en espera de un nuevo despliegue se vale mucho la velocidad de desarrollo. Los mensajes de error se muestran en el navegador son muy bueno.

Otra cosa que me impresionó fue la estética general: es tal vez una pequeña cosa que la aplicación tutorial se ve realmente bien (tanto el código como el diseño de páginas web), pero esto se extiende a todo el marco, la API, así como la documentación.

Después de la insistencia de un colega lo miraba, siguió el tutorial, y se enganchó. Conseguir la derecha retroalimentación inmediata en sus medios de navegadores que no tiene que utilizar un IDE. Me encanta Eclipse, pero seamos sinceros: después de añadir algunos extras, que no es tan estable como un simple editor de texto. En un Mac con TextMate incluso se puede hacer clic en el mensaje de error en el navegador y TextMate aparece con el cursor en esa línea.

Pruebas de Juego está también muy bien hecho, con sólo pulsar un botón ejecutar pruebas unitarias, pruebas funcionales y pruebas basadas en selenio.

El juego es emocionante porque todavía es pequeña y sin complicaciones. Utiliza solo hormiga para construir y lo hace en 25 segundos. Contribuyendo a la preciosa documentación es una cuestión de la edición de los archivos .textile y volver a cargar los documentos en cualquier aplicación de juego.

Así es como acabé en una búsqueda para traducir el tutorial para usar Scala, añadiendo al soporte Scala cuando sea necesario para conseguirlo lo más agradable posible.

me gusta, estoy usando para proyectos pequeños y hasta ahora parece perfecto para el trabajo. Sin embargo, hay una cosa que echo mucho de que ha dejado fuera a propósito: Servicio / DAO / modelo de separación de capas! Documentación lo dice claramente, uno de los objetivos del juego es evitar el "modelo de datos anémico": http://www.playframework.org/documentation/1.0.1/model

pero en mi experiencia de la clásica separación de servicio / DAO / Las capas del modelo ahorra un montón de tiempo de desarrollo cuando las necesidades de la aplicación a ser rediseñado! Con Play que está pegado con métodos estáticos que se basan en la gestión de transacciones Play-específica y peculiaridades ...

Sin embargo, muchos pulgar hacia arriba para: velocidad de desarrollo, la limpieza de código, y al final ... la diversión

He usado Grails, Tapiz 4/5 y recto Java / JSP / primavera / Hibernate.

creo que esto va en la dirección correcta por primera vez en mucho tiempo. Grails fue un muy buen primer paso, pero Juega! se ve como algo que realmente podría tener las piernas. Scala apoyo viene en 1.1. Si hay una posibilidad de que pueda escribir mis controladores / Dominio en Clojure, estoy vendido;)

Desde un año y sin error visible después de 18 pequeños escapes, que usan el juego! 1.2.4 en una producción de aplicación de intranet "ausencias" para una escuela (actores:> 100> 700 profesores, estudiantes, administrativ del equipo). Del lado del cliente ha sido escrito con Flex 4.6 de Adobe (muy bonitas vistas). Los datos son de envío y recepción en formato AMF3 (módulo de canela). Utilizamos una propia capa sencilla DAO basado en JPA EclipseLink y MySQL para el PP. La aplicación se almacena en un servidor virtual de Linux. Soy un desarrollador de fans muy de juego por su sencillez y su enfoque muy productivo.

Me gusta el aspecto de juego, pero no lo he probado. De exploración a través de la documentación de una cosa que se destacó fue el uso intensivo de los métodos estáticos. A partir de una unidad de punto de vista probar esto siempre hace las cosas mucho más difícil (estoy pensando burla), y es una desviación de la OO-en todas partes acercarse en el desarrollo típico de Java. Tal vez este es el punto, pero es sólo algo que me un poco menos entusiastas ...

hizo

Actualmente construyo aplicaciones web en el trabajo utilizando el marco de juego que realiza un procesamiento masivo de datos.Debo decir que la velocidad que ofrece el juego por sí sola es significativa y más de la que puede proporcionar RoR.Además, Play es un marco basado en Java y, por lo tanto, se pueden realizar múltiples subprocesos fácilmente.Lo siguiente es el gran rendimiento que se obtiene cuando se utilizan módulos basados ​​en Java como Japid y Netty junto con el juego. Es como si se pudieran realizar una cantidad infinita de ajustes para mejorar el rendimiento.Hay que probarlo en mi opinión.

Estoy usando Jugar en un proyecto pequeño, y parece ser exactamente lo que han dicho sobre. Pero una característica Creo que debe estar presente por defecto en el marco: capacidad de trabajar con más de una fuente de datos (por ejemplo, el uso más de un esquema de base de datos). Esta es la característica sólo falta que he encontrado hasta ahora.

Saludos, Uilian.

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