Java, en utilisant Groovy (Graals) pendant le développement juste pour pouvoir tester le code sans recompiler?

StackOverflow https://stackoverflow.com/questions/5495633

Question

Je fais des travaux de développement Web Java en utilisant Spring MVC et, en gros Changement (je travaille pour une start-up et je n'ai pas assez de temps pour faire des tests unitaires, etc., ce n'est pas idéal et je ne prévois pas nécessairement de rester avec l'entreprise à long terme, mais je cherche juste des moyens être plus adaptable pour le moment).

L'application sur laquelle je travaille doit être rapide et elle fait beaucoup de traitement des données à haut volume (son genre de moteur de recherche mais pas un moteur de recherche Web), il doit donc être compilé régulier pour l'application de production mais je '' Je me demande si j'ai utilisé Groovy avec Graals, ou quelque chose de similaire, pour le développement si je pouvais simplement l'écrire comme Java ordinaire, mais ensuite tester le code en temps réel sans avoir à se recompiler. Je me demande combien d'efforts seraient impliqués dans le fait de le faire en fonction de la compilation de Java. Désolé s'il s'agit d'une question débutante, je ne sais tout simplement pas où chercher des informations à ce sujet, car la plupart des choses à propos des Graals semblent plus axées sur les langues de script qui ne peuvent pas les utiliser.

Était-ce utile?

La solution

L'agilité est un état d'esprit, cela n'a rien à voir avec un langage de programmation ou un cadre. Je n'ai jamais assez de temps pour ne pas faire de tests unitaires.

Si vous codiez en Java, code en java, pas dans Groovy. Groovy est un (presque) sur-ensemble de Java, vous pouvez donc théoriquement écrire vos cours en groovy puis les compiler sous le nom de Java, mais cette approche a un certain nombre de problèmes:

1) Il est très facile de glisser quelque chose dans votre code qui n'est pas un java correct, les fermetures sont tellement utiles :-) 2) Graals n'est pas facilement traduisible en MVC Spring, vous devez donc également réécrire ce morceau.

Donc, personnellement, je n'utiliserais pas Groovy / Graals.

Lorsque vous dites compiler, voulez-vous vraiment construire la guerre et le redéployer? La plupart des ides (Eclipse, Intellij, etc.) recompilent une classe lorsque vous enregistrez le fichier, il n'y a donc pas de retard. En supposant que vous utilisez un tel IDE, vous pouvez exécuter votre serveur (Tomcat) à partir de l'Eclipse, et les choses sont automatiquement redéployées, et si nécessaire, Tomcat redémarre automatiquement.

Si ce n'est toujours pas assez rapide, je recommande Jrébel, ce qui était si bon que j'ai déboursé de l'argent réel pour une licence. L'utilisation de Jrebel signifie que vous n'avez même pas à redéployer. Vous modifiez un fichier Java dans l'IDE, et le changement se produit dans votre serveur sans avoir à redéployer. Je le recommande fortement.

Une autre chose que je ferais est d'écrire des tests unitaires pour votre code. Vous n'avez pas besoin de les vérifier, mais c'est un outil qui aidera votre productivité.

Autres conseils

Ce que je ferais ici serait d'intégrer des scripts groovy dans le code Java comme décrit ici:

http://groovy.codehaus.org/embdding+groovy

De cette façon, vous pouvez modifier votre code groovy sans avoir besoin de se recompiler. Nous avons utilisé cette technique dans notre dernière application héritée qui a pris 10 à 15 minutes pour se recompiler et installer.

Groovy fonctionne dans le JVM et est compilé dynamiquement en bytecode, il n'est donc pas nécessaire de s'inquiéter de la "production".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top