[* Java *] Je suis allé au JJUG CCC 2017 Automne
      
      
        
        
        
        
introduction
Nous avons participé à JJUG CCC automne 2017.
Je buvais la veille, alors j'ai commencé à participer l'après-midi.
C'est une note à l'époque.
Liste des sessions
- CQRS ・ ・ ・ Modèle d'écriture et modèle de lecture séparés
 
- Au fur et à mesure que le système se développe, le contrôle d'écriture devient plus compliqué et plusieurs tables sont référencées pour la lecture.
 
- Différences dans les exigences d'écriture et de lecture
 
- La séparation rend le code plus simple et plus efficace à écrire
 
- ORM ・ ・ ・ Centré sur l'objet et centré sur SQL
 
- Centre d'objet ・ ・ ・ Hibernation etc.
 
- Centré sur SQL: jOOQ, JPQL, etc.
 
- Hibernate et jOOQ peuvent être utilisés ensemble
 
- Question "Quelle est la performance?" Répondez "Cette fois, c'était un système interne, donc je n'y ai pas attaché beaucoup d'importance."
 
- Le problème que le temps CI est trop long et ne peut être tourné qu'une seule fois à minuit
 
- L'IC doit être rapide (moins de 10 minutes, au plus tard dans les 20 minutes)
 
- Si le CI devient long, il est difficile d'identifier la cause lorsqu'il y a un problème dû à un mélange de plusieurs commits.
 
- Les ingénieurs oublient que CI se retourne avec ses propres engagements en premier lieu
 
- L'IC n'est pas terminé et la libération est retardée
 
- J'ai utilisé CI pour la construction et le test unitaire, mais le test unitaire était un problème en particulier.
 
Ce que j'ai fait
- En principe, nous n'avons pas effectué de tests qui traversent les couches de Controller ⇛ Service ⇛ Repository ⇛ RDB…
 
- Changement d'annotation: 
@ SpringBootTest est lourd car tous les beans sont enregistrés et il démarre sur le serveur Web, @ WebMvcTest est rapide car seuls les beans nécessaires sont enregistrés. 
- La couche Service n'interagissant pas avec l'extérieur de l'application, effectuez un simple test JUnit et n'utilisez pas DI
 
- Sélection de haricots par filtre dans le référentiel (je ne l'ai pas fait) ... La production dégraisse fait peur, et même si ça marche, les roues seront réaménagées
 
- Amélioration du test d'endettement: plus de tests avec développement d'une certaine échelle, écrasement un par un, revue, écrasement en cas de retard, etc.
 
- Supprimer le test: le test lui-même a l'avantage de s'exécuter plusieurs fois, et laisser un test difficile à maintenir est un inconvénient, alors décidez de le supprimer.
 
- Reconstruction CI et construction d'environnement de test parallèle: CI n'était pas si important, donc je le faisais sur mon PC personnel ⇛ Déplacé vers AWS, ce qui peut être résolu avec de l'argent doit être résolu avec de l'argent
 
- Présentation de la taille de test: Présentation de la taille de test préconisée par Google, synchronisation d'exécution des tests Implémentée dans des groupes de JUnit 
@ Category, maven-surefire-plugin 
- FeedBack of pull request: retour rapide au développeur pour chaque pull request.
 
Il est plus rapide et plus facile de donner des commentaires!
Question:
Je pense qu'il y a un système plus compliqué, mais cette fois, les couches étaient correctement séparées, il semble donc que ce genre d'amélioration était possible.
Répondre:
C'est un produit récemment fabriqué et relativement propre, donc il est divisé en couches.
Si le code lui-même est en panne, vous devez d'abord refactoriser le code lui-même.
- Il est difficile de créer un environnement pour chaque projet sur le PC de développement un par un.
 
- [Démo Docker] Ça ne s'est pas bien passé
 
- Un mécanisme pour élever un processus virtuel en téléchargeant une image de conteneur à partir de Docker Hub et en l'instanciant
 
- L'environnement JavaEE peut être réalisé avec seulement 3 commandes
 
- Java IDE n'a pas de compatibilité avec Docker
 
De nombreux échantillons de collections Eclipse ont été présentés et je les regardais
- Exploitation d'une application appelée Pictolink ciblant les jeunes femmes, 13 millions de membres
 
- URL de connexion à la base de données de divers projets et outils ⇛ Modifier tous les fichiers de projet lors du remplacement de la base de données
 
- L'application Twelve-Factor Ⅲ Paramètre: Entrez la valeur de réglage dans la variable d'environnement et reportez-vous à l'application.
 
Spring Cloud Config: Obtenez la configuration du référentiel et renvoyez-la en JSON 
- Résolution des dépendances JavaScript: plus de choses que je veux faire sur le front-end ⇛ J'ai des dépendances entre les fichiers ⇛ Il est difficile de supprimer des fonctionnalités
 
- J'ai essayé d'utiliser 
Require.js, mais l'exécution JS dépendante est lente ⇛ Utilisez webpack pour créer un JS! ⇛ Environnement Node.js requis, transpile requis 
- L'installation de Node.js est un seuil élevé pour les non-ingénieurs
 
- Utilisez Gauge pour l'automatisation des tests d'interface utilisateur
 
- Vous pouvez écrire le contenu du test en japonais en utilisant 
Gauge 
Selenium le rend semblable à un programme, mais Gauge permet aux non-ingénieurs d'écrire. 
- L'inconvénient de 
Gauge est que cela peut ne pas fonctionner si vous passez à la version bêta actuelle, et la définition des étapes a tendance à être confuse lorsqu'il y a de nombreux tests. 
- Structure du projet 
Gauge ( Gauge ⇛ Gauge Java ⇛ DbUnit et Selenide) 
- Il est important de s'améliorer!
 
en conclusion
Je ne peux pas simplement introduire quelque chose d'utile, mais
J'ai pensé qu'il était important de l'améliorer dans un sens positif, même petit à petit.