Comme le titre l'indique, nous sommes de retour à Java.
Le monde que vous voyez est totalement différent. Vous ne savez que lorsque vous devenez plus fort. Java fonctionnait-il comme ça? ?? Agréable.
Réflexion sur l'infrastructure lors de l'adoption d'un nouveau langage pour le développement d'applications Web
Le mécanisme signifie ↑.
Différence entre débutant et maintenant
La situation au moment de mon début
- Java
- Apprenez les règles de programmation du projet
- tomcat
--Comment utiliser l'IDE
- Comment utiliser l'outil de connexion avec DB
- Comment utiliser Git
- SQL
--Opérations telles que la libération
- dépannage
- Terminologie interne
――Comment interagir avec les seniors
- Comment interagir avec les outils de chat
- Connaissance globale de HTTP et du Web
- Script intersite et histoires liées à la sécurité
- HTML
- JavaScript
- Websocket
--Méthode d'authentification
- LinuxOS
- Conscience de la limite supérieure en raison des spécifications de la machine serveur
Il y avait beaucoup de choses à retenir, et je n'avais pas d'autre choix que d'écrire des contrôleurs et des services sans les comprendre profondément.
(Si j'y pense maintenant, si un vétéran m'entraîne dans la programmation en binôme, je pense que je pourrais utiliser la théorie de l'autoroute et le taux de croissance serait différent.)
Pour le moment, j'ai fait de mon mieux, comme lire des livres techniques pendant la pause déjeuner.
Cependant, quand j'y pense maintenant, je pense que le niveau était assez bas.
(Parce que c'est un débutant, je pense que c'est naturel ...)
Actuellement, la description est généralement connue.
Dans cet état, j'écrirai les bons et les mauvais points de Java que j'ai revus, y compris la comparaison avec Node.js.
environnement
- Java8
- Nginx
- Série Tomtom 7
--Série printemps 4
- Série MongoDB 3.0
- Série MongoDB 3.6
--Série Maria DB 5.5
- RabbitMQ
- Redis3.0
- Redis4.0
- L'infrastructure principale est un serveur bare metal à DC
- Websocket(WSS)
Bon point
- Contrairement à Node.js, il n'est pas piloté par des événements asynchrones, le code est donc facile à suivre.
- Puisqu'il y a un type, il y a un sentiment de sécurité qu'il fonctionnera relativement bien tant qu'il est compilé
――Java est utilisé et il est mort, il y a donc un sentiment de sécurité.
――Si vous souhaitez le faire, vous pouvez écrire un traitement asynchrone
――Si vous google, diverses informations sortiront (le montant est trop élevé et c'est aussi bruyant)
- Puisque MongoDB est sans schéma, il est très bon de pouvoir définir le schéma en utilisant des types du côté Java.
mauvais endroit
- La compilation prend du temps
―― Je pense qu'il existe une solution de contournement, mais cela prend 2 minutes et 30 secondes au moment du projet.
- Vous ne pouvez pas développer sans IntelliJ IDEA (Integrated Development Environment) (je veux faire quelque chose à ce sujet ...)
- Dans le cas de Node.js, Vim et Visual Studio Code étaient gratuits
--Test (JUnit) est plus difficile à écrire que Node.js Mocha
«Je veux écrire explicitement le prétraitement et le post-traitement, mais je n'ai pas d'autre choix que de l'écrire dans un désordre dans le test.
--Difficile à mettre en œuvre en raison du printemps (situation où le traitement par lots ne peut pas être écrit correctement)
- Si Spring veut juste DI, il y a aussi Google Juice
- SparkJava Je pense que c'est simple
-Est-ce à cause du type synchrone? Je ne sais pas, mais il n'y a pas de performance du tout
À cet égard, il est fort possible que le projet actuel ne soit pas correctement mis en œuvre.
--Créez une classe même pour les objets de courte durée
―― Je pense que List et Map sont bons pour les classes VO qui ne sont utilisées que dans 1 chemin de requête.
--Node.js semble n'utiliser que List et Map, et il était toujours opérationnel.
――Si vous pouvez faire du développement piloté par les tests qui donne la priorité à la vitesse de codage, je pense que vous pouvez utiliser List et Map.
- Get, Setter Vous n'en avez pas besoin?
- Peut-être que c'est la faute de Maven, mais la structure des répertoires est maladroite
―― En raison des annotations, vous pourriez avoir du mal à ne pas comprendre comment cela fonctionne.
-Est-ce que ça marche avant la méthode? Est-ce que ça marche après la méthode? Je ne sais pas sauf si je vois l'implémentation
«Je ne pense pas que les annotations soient bonnes car vous ne pouvez pas comprendre le mécanisme en un coup d'œil.
- Lombok Je pense que c'est bien
Résumé
Je pense que ce que j'ai écrit dans un mauvais point peut être changé du tout en fonction de la mise en œuvre.
Je pense que les pratiques traditionnelles de Java sont juste ennuyeuses.
Ne serait-il pas intéressant d'essayer le développement Java de type Node.js? Je pense.
(Au fait, je pense qu'il y avait une personne qui faisait du développement de type Node.js en utilisant Play Framework quand il était chez CyberAgent.)
Pour moi, pour revenir tôt, je dois l'implémenter rapidement, donc je veux créer un environnement où cela peut être fait.