Cet article fera partie d'une série. (inachevé) Je pense à la configuration suivante.
・ Problème soulevant cet article J'expliquerai le contexte et le thème de cet article, ainsi que le dessin terminé. ・ Construction de l'environnement Gradle-(Publié) Décrit la gestion des versions par gradle et l'intégration de l'environnement de construction java / js.
・ Construction de l'environnement IDE - (non publié) Explique la procédure de construction de l'environnement lorsque le développeur effectue la programmation, le test unitaire et le débogage manuel.
Quel type d'environnement utilisez-vous pour programmer? Parlant d'il y a longtemps, ce langage (ou cet OS) est décidé par cet environnement! J'avais un sentiment comme ça, mais quand j'essayais de savoir comment le faire si je voulais normaliser l'environnement de développement sur le net, je pensais que ce n'était pas le cas ces jours-ci, il est donc difficile d'enquêter à chaque fois. Je vais donc résumer les résultats et les idées dans un article.
Sauf s'il s'agit d'un projet très spécial, j'espère qu'il servira de référence lors de la construction d'un environnement pour de futurs projets de développement. Le contenu de l'écriture est essentiellement pour moi, mais j'espère que cela aide s'il y a des gens qui ont des sentiments similaires.
Cependant, comme je ne sais que ce que je peux comprendre, je vais prédéfinir le domaine à couvrir par cet article.
Je pense que l'environnement de développement de nos jours a de nombreuses configurations comme le montre la figure ci-dessus. Dans cet article, quel type d'environnement sera construit sur le terminal de développement (propre terminal) montré ci-dessus et dans la zone centrée sur le langage Java / Javascript? Je suivrai la procédure avec le thème.
Voici une façon de penser que j'ai obtenue à la suite de mes recherches. Bien sûr, je ne pense pas que ce soit la seule réponse, et je ne suis pas sûr que ce soit la plus standard.
À la suite de mes recherches pendant ces vacances consécutives, je n'ai pas pu trouver un environnement facile à construire, doté de diverses fonctions et pouvant tout intégrer. Cependant, je ne peux pas conclure cela, alors j'ai pensé à la configuration suivante autant que je pouvais penser.
La première chose à regarder est le fonctionnement de Gradle. D'autres semblent fonctionner comme des alternatives, mais je pense que la facilité d'utilisation et l'espace de gradle sont inégalés par les autres outils de construction, et comme il peut coexister avec fourmi et maven, il est facile de prendre en charge l'héritage. On peut dire que c'est presque la norme de facto.
Vient ensuite éclipse et VS Code. Après tout, le nombre d'utilisateurs d'éclipse est extrêmement important, donc il ne peut pas être coupé, et j'ai l'impression qu'il est étonnamment compatible avec gradle. Quant à VSCode, je voulais réaliser un débogage manuel de javascript avec eclipse si possible, mais j'ai abandonné car je ne trouvais pas de procédure plus facile à installer et plus facile à déboguer à des fins multiples que VSCode. Il existe également un problème de compatibilité avec npm.
Sur le terrain jusqu'à présent, il y a eu de nombreux cas où les projets java et js étaient gérés par svn en tant qu'unité, mais à partir de maintenant, je pense que l'espace de travail doit être considéré comme une unité. Dans cet essai, comme le montre la figure ci-dessous, le concept d'espace de travail est conçu pour unifier tous les environnements d'exploitation. En fonction du travail à ce moment-là, il peut s'agir d'un espace de travail gradle, d'un espace de travail éclipse ou d'un espace de travail VSCode, mais accédez toujours à partir de cet emplacement comme point de départ. Cette structure semble être la plus pratique pour les humains et les systèmes.
Projet de structure de fichier pour l'espace de travail(En supposant un environnement Windows)
/workspace : gradle, eclipse,Espace de travail commun VS Code
/.metadata :paramètres de partage d'éclipse(Partiellement partagé)
/.plugins :paramètres de partage d'éclipse(Partiellement partagé)
/.vscode :Paramètres de partage de code VS(Partiellement partagé)
/launch.json :js définition de la configuration de débogage
/node_module :racine du module npm(jasmine-node, karma)
/gradle :gradle à la maison
/libs :Bibliothèques
/java :Bibliothèque référencée par le programme java à développer
/js :Bibliothèque référencée par le programme js à développer
/test :Bibliothèque référencée par test unitaire
/site :Spécifications de l'API, site des résultats des tests unitaires
/docs :Spécifications de l'API
/javadoc :racine javadoc
/jsdoc :racine jsdoc
/reports :Résultats des tests unitaires
/java : spock,rapport Jacoco
/js : jasmine-node,rapport de karma
/project1 :Accueil du projet(Projet Java temporaire)
/.settings :compilateur java,Formateur,Action d'enregistrement de fichier
/bin :dossier de classe
/src :Code de production(java)
/spec :Code de test unitaire(spock)
/gradle : gradle-environnement d'exécution du wrapper
/.project :Paramètres du projet(projet groovy)
/.classpath :Dossier d'origine,dossier de classe,Paramètres de la bibliothèque
/gradlew.bat :Construire,Lot pour une exécution de test automatisée
/project2 :Accueil du projet(Projet Js temporairement)
/.settings :Java.paramètres et.Équivalent à une combinaison de chemins de classe
/bin :Si vous avez besoin de transpile
/src :Code de production(js)
/spec :Code de test unitaire(jasmine)
/gradle : gradle-environnement d'exécution du wrapper
/.project :Paramètres du projet(projet javascript)
/gradlew.bat :Construire,Lot pour une exécution de test automatisée
/build.gradle :Créez des définitions qui peuvent être appliquées à tous les projets
/gradle.properties:Si vous avez besoin de propriétés
/settings.gradle:Énumérer les dossiers de projet
/gradlew.bat :Gradle parent-wrapper
J'ai omis des dossiers et des fichiers qui ne sont pas nécessaires pour le partage en équipe, mais juste en développant un projet java et un projet js, la gamme est vraiment bien. J'avais l'intention de réduire le nombre, mais c'est un montant énorme. Il semble inutile de construire et de gérer cela par un travail personnalisé, donc le travail de normalisation semble inévitable. Même s'il parle de normalisation, si c'est cette complexité, le manuel de procédure n'est pas adapté, il convient donc de le systématiser dans une certaine mesure.
Je suis désolé pour ceux qui attendaient une méthode plus profonde ou concrète. Ça va être long et je suis fatigué, donc je posterai la procédure détaillée de la prochaine fois. Puisqu'il s'agit d'une histoire conceptuelle, elle a peut-être été difficile à transmettre car il ne s'agissait que de phrases, mais si vous le souhaitez, veuillez la lire lorsque le prochain article sera terminé.
2018/07/22 Construction de l'environnement Gradle publié