7 votes

Comment organiser le code Scala dans un projet Lift?

Après 1,5+ années de programmation Ruby et Rails, j'ai enfin commencé à travailler sur l'un des nouveaux projets en Scala et Lift. En gros, j'essaie d'écrire une API pour accéder aux informations d'une énorme base de données (des millions de lignes). Lift devrait m'aider à coder la partie frontend de ce projet (la partie API). Mais maintenant, cela implique également un module qui devrait lire un fichier XML compressé ZIP pour peupler initialement la base de données avec des lignes. Ce module devrait s'exécuter une fois tous les 3 mois.

Où devrais-je placer ce code de module? ou plutôt, Comment devrais-je organiser mon code Lift et Scala? Où vont les processus en arrière-plan? Tout indice à ce sujet est le bienvenu.

5voto

thoredge Points 5829

Je ne suis pas sûr si c'est ce que vous cherchez, mais j'utilise SBT (http://code.google.com/p/simple-build-tool/). Il dessine une structure de projet par défaut. Vous devriez notamment regarder les sous-projets (http://code.google.com/p/simple-build-tool/wiki/SubProjects).

Pour les processus programmés, vous pourriez utiliser un acteur et ActorPing pour redémarrer le processus à intervalles réguliers. Pour de tels longs intervalles de 3 mois, vous pourriez suivre la dernière invocation en touchant un fichier et en vérifiant la date au redémarrage de l'application. L'ActorPing doit être initié au démarrage de l'application; cela peut être fait dans le lift boot. Si vous avez besoin de le moduler davantage, vous pourriez créer un servlet qui initie l'ActorPing lors de l'initialisation du servlet.

2voto

Pere Villega Points 13565

Lift suit (du moins les versions que j'utilise) une structure Maven 2 standard, donc il n'y a rien de spécial à ce sujet. Il suffit d'ajouter le code dans le dossier src. Les packages à créer dépendront de votre conception/préférences, nous ne pouvons pas vraiment vous aider avec cela :)

1voto

Aaron Points 1744

Le projet "standard" Lift utilisant SBT comme générateur d'application nécessite généralement la structure de projet suivante :

projet
src
  main
    scala
      bootstrap
        liftweb
          Boot.scala
      nom-du-projet
        comet
        lib
        model
        snippet
        view
    ressources
    webapp
      WEB-INF/web.xml
      index.html
  test
    ressources
    scala
      RunWebApp.scala

Si vous utilisez le ORM Lift Mapper, vous placez généralement vos modèles dans le répertoire src/main/scala/nom-du-projet/modele. De même, tous vos CometActors doivent aller dans src/main/scala/nom-du-projet/comet. Tous les Snippets personnalisés que vous écrivez doivent être dans src/main/scala/nom-du-projet/snippet et tous les composants de vue personnalisés dans le répertoire vue sous le nom-du-projet. Tout le code lié au démarrage de votre application et à l'établissement des connecteurs de base de données, etc, doit être placé dans src/main/scala/bootstrap/liftweb/Boot.scala. Le reste de la structure suit comme l'ont déjà mentionné les réponses précédentes, qui suit la structure générale de Maven 2.

C'est simplement la structure générale fournie par l'application Lift par défaut. La seule chose requise est le fichier bootstrap.liftweb.Boot.scala, car le Servlet Lift recherche cette classe au démarrage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X