[* 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.