2010-06-21 6 views

Répondre

12

Le compilateur Groovy trouvera bien sûr des erreurs de syntaxe, mais presque aucune erreur de type comme avec Java. Même l'utilisation de variables non déclarées passera souvent la compilation.

La déclaration des types augmentera la quantité de vérification effectuée, mais pas beaucoup. Ceci est dû au fait que Groovy est un langage dynamique avec de puissantes fonctionnalités de métaprogrammation qui empêchent le compilateur de savoir par ex. quelles méthodes ou champs un objet donné aura au moment de la compilation, puisqu'il est possible que cela soit changé à l'exécution par un autre code. Cependant, les plugins IDE offrent un compromis en marquant les membres de variables avec un type déclaré qui ne sont pas présentes dans la déclaration de classe comme des erreurs possibles. Ensuite, le développeur peut décider si ce membre sera présent à l'exécution, ou s'il vient de faire une faute de frappe. De plus, les membres de classe connus apparaissent dans l'auto-complétion.

1

n °

Il a été conçu pour être un des langages de programmation typage dynamique qui est à peu près le contraire que la vérification de la compilation.

Vous devrez ajouter plus de tests unitaires à la place.

+0

Je pense que c'est le point - vous n'avez pas autant de temps de compilation, donc vous pouvez écrire plus de tests pour vérifier que votre code est correct. – Paul

+0

Exactement. Et comme un bonus supplémentaire, vous allez attraper plus que des erreurs de type idiot! – omnisis

14

Depuis Groovy 2.0, il est possible de vérifier les types au moment de la compilation. Les annotations peuvent être utilisées dans une classe ou une méthode: @TypeChecked ou @CompileStatic. Le premier dit au compilateur de faire une vérification de type pendant la compilation et le second force la compilation statique, ce qui aboutit plus ou moins au code binaire du compilateur JAVA natif. Bien sûr, l'utilisation de la 2ème annotation implique une vérification de type par elle-même.

Grails 2.2 est la première version qui utilise Groovy 2.0.

0

Vous impossible d'écrire des tests unitaires si vous utilisez Groovy avec une syntaxe de script. C'est comme écrire des tests unitaires pour les scripts shell. Cependant, vous avez une compilation disponible, cela ne vous dit pas que Sustem.out.println() est un non-sens. Une option du compilateur devrait être disponible pour attraper ces erreurs. Tous les scripts ne contiennent pas de méta-programmation et de code DSL.

Questions connexes