2010-05-31 15 views
5

Estoy a cargo de la reconstrucción de un sitio web que recibe aproximadamente 250,000 visitantes por día. Nos gustaría usar Scala, pero no funciona muy bien con Spring (en algunos casos menores) e Hibernate (aquí hay una desajuste mayor y muy molesto si quieres usar scala collections, lo cual hacemos).¿la mejor solución de base de datos web para Scala para un sitio de alto tráfico?

La aplicación en sí tendrá alrededor de 40-50 tablas.

Aparte de Hibernate, ¿existe un ORM que funcione increíble con Scala y que sea tan eficiente y confiable como Hibernate? ¿Tiene también las mismas capacidades o vamos a encontrar abstracciones con fugas si no usamos Hibernate?

Sería un gran riesgo para nosotros ir con un marco que es más nuevo y no parece tener mucho respaldo de la industria ... y al mismo tiempo, Hibernate es un verdadero dolor para programar cuando usando Scala.

1) La Colección Java < -> Scala Collection es absolutamente dolorosa. Hay mucho más repetitivo y basura para escribir.

2) El IDE no importa JavaConversions ni interfaces java automáticamente ... por lo que debemos hacerlo manualmente. La optimización de las importaciones en IDEA va a destruir todo el trabajo manual.

3) También hay un costo de rendimiento para la conversión de ida y vuelta todo el tiempo en sus objetos de dominio y sus clases de dao.

4) Sin mencionar que tiene que haber mucho casting, lo que produce un código tan feo como el pecado.

De hecho, me encantaría escribir mi propio orm que esté 100% hecho a medida para scala, pero obviamente esto está realmente fuera del alcance de nuestro proyecto por el momento.

¿Cuál es el mejor enfoque?

Respuesta

6
  1. ¿Considera que usted es Lift Framework? Tiene un módulo de persistencia muy bueno: Lift Record (implementación del concepto de ActiveRecord en Scala que está buscando).
    Además, en caso de que decida usar NOSQL (que puede satisfacer sus demandas de un alto rendimiento mucho mejor que el RDBMS tradicional), Lift tiene módulos para Mongo DB, Redis and Couch.
  2. Otra solución probada de ORM para Scala es JPA. Puede usar libremente las anotaciones JPA en Scala.

    Ambas soluciones son bastante confiables y tienen soporte empresarial (hasta donde yo sé).

    P.S. Vale la pena mencionar que Lift Framework es una especie de estándar de la industria para los frameworks web de Scala en estos días. Tiene una reputación comprobada, y algunos buenos libros para comenzar ya están disponibles.
+2

Con todo respeto a David y al resto de la comunidad de ascensores, realmente no me atrae. Las cosas son raras, y es demasiado diferente. Hay cosas que simplemente saltan y parecen inconsistentes también. Lo intenté varias veces hace muchos meses ... pero la base de códigos siguió evolucionando, y las aplicaciones de ejemplo de "inicio" no funcionaron todo el tiempo porque se escribieron solo un mes o dos antes de la próxima versión. Y con Scala 2.8, las cosas van a cambiar aún más. Quiero algo más convencional: delgado, eficiente, limpio, conciso y también convencional. – egervari

+1

¿Desea algo diferente de los marcos de aplicaciones web existentes y ampliamente utilizados como Grails y Lift y que es a la vez convencional? –

5

Eche un vistazo a Circumflex. Un ORM escrito en Scala, para Scala.

+1

¿Cuántas personas están usando esto? ¿Alguna historia de éxito? ¿Cuál es la probabilidad de que ocurra en un mes? ¿un año? :/ – egervari

+0

La fuente está disponible en GitHub (enlace al final), pero como con todos los proyectos de código abierto, simplemente no se sabe si los autores se darán por vencidos. Es un riesgo que toma (aparte de los proyectos de ASF). Lo he estado usando personalmente para pequeños proyectos internos y lo he encontrado útil.Es conciso y simple, lo que lo hace perfecto como un marco en mi opinión. URL de GitHub: http://github.com/inca/circumflex – KushalP

Cuestiones relacionadas