Le développement de Java sur une machine virtuelle présente-t-il des avantages?

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

  •  19-08-2019
  •  | 
  •  

Question

Je viens du camp .Net où la virtualisation était beaucoup plus répandue en raison de la nécessité de fonctionner sur le logiciel serveur et sur des entités système telles que le GAC.

Maintenant que je suis en développement Java, est-il judicieux de continuer à utiliser la virtualisation? Nous utilisions VirtualPC qui, IMO, n’était pas la meilleure offre. Si nous devions aller de l'avant, nous utiliserions, espérons-le, VMWare.

Nous faisons du développement Web et n'utiliserions pas la virtualisation pour tester différents types de déploiement de serveurs.

Avantages:

  • Permet aux environnements de développement d'être identique dans toute l'équipe
  • Permet l'isolement de l'hôte
  • Tests multiplates-formes / navigateurs

Inconvénients:

  • La prise en charge de plusieurs moniteurs est insuffisante (pas dans VMWare?)
  • Dégradation des performances - principalement des E / S
  • Énormes disques virtuels
Était-ce utile?

La solution

L’un des avantages possibles est que vous pouvez tester techniquement le même programme sur divers systèmes d’exploitation et sur une grande variété de machines virtuelles.

Contrairement à l’opinion courante, Java n’est pas portable à 100% et il est très possible d’écrire du code non portable. De plus, il existe des versions subtiles entre les bibliothèques. Si vous travaillez avec différentes machines virtuelles, il peut également y avoir des différences.

Cependant, étant donné que les IDE Java sont lourds, il peut être amusant d’exécuter un IDE dans la machine virtuelle.

Java prend en charge certaines formes de déploiement à distance. Il peut être intéressant d’explorer celles-ci tout en effectuant localement le travail de l’EDI.

Autres conseils

Je n'aime pas développer dans une machine virtuelle. La bonne chose est que, contrairement à ce que vous écrivez par contre, VMWare prend en charge plusieurs moniteurs et que l’immense disque n’est pas vraiment un problème, car VMWare s’exécute étonnamment bien à partir de disques durs USB.

Comme le disait Uri, exécuter les IDE poids lourd pour Java ne sera pas très amusant. Mais ensuite, exécuter Visual Studio sur une machine virtuelle n’est pas vraiment amusant non plus. Donc, si vous êtes satisfait de VS dans une VM, essayez-le pour Java, car les inconvénients ne sont pas aussi forts que vous ne le pensez:)

Vous avez parlé de votre développement Web Java. Il est donc logique de tester votre application à l'aide de différents navigateurs Web sous différents systèmes d'exploitation. VMware sera utile pour cela.

L’ Netbeans est indépendant du système d’exploitation, vous permettant ainsi aux développeurs de travailler sur différents systèmes d’exploitation sans difficulté.

Je lance eclipse dans une instance de VirtualBox et tout fonctionne correctement. J'ai déjà utilisé VMWare et c'est bien aussi.

J'aime avoir mon environnement de développement séparé de ce que le reste de mon PC fait (jouer à des jeux, surfer sur le Web, lire des emails, etc.)

Je travaille à domicile, donc la virtualisation fournit la séparation nécessaire entre le travail et les loisirs. Cela me permet également de mettre à niveau chaque environnement séparément et d’avoir beaucoup plus de contrôle sur l’environnement.

De plus, je peux essayer en toute sécurité quelque chose de nouveau et revenir en arrière si l’installation va "wonky". Désolé pour le terme très technique. ; -)

Modifier: cela me permet également de satisfaire aux exigences d'accès des entreprises en matière de VPN sans soumettre mon environnement d'origine à une influence excessive de l'entreprise.

Si vous avez besoin d’une machine virtuelle pour vérifier que l’application fonctionnera également sur un système d’exploitation différent, vous pouvez parcourir un certain terrain en utilisant un serveur à intégration continue et en démarrant / exécutant des instances de machine virtuelle sur cette machine (c.-à-d. Linux / Windows / OSX ). Décompressez ensuite la dernière version, exécutez des tests unitaires sur les classes livrées. Ensuite, exécutez des tests d'intégration automatisés. Vous devrez ensuite rapporter les résultats à l'environnement CI. Si les tests d’intégration sont satisfaisants, les erreurs multi-plateformes courantes peuvent être résolues immédiatement après leur inscription dans le SCM.

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