De Java inefficace à Java efficace

Java inefficace est un monde où le Java efficace n'existe pas

Récemment, lors du développement avec Java, je pense que les applications sont souvent construites à l'aide de frameworks tels que Spring Boot. Spring Boot est vraiment bon. Il existe de nombreux mécanismes efficaces pour réduire la quantité de code écrit, tels que DI et AutoConfigure.

Les programmeurs qui connaissent Java conçoivent et mettent souvent en œuvre autour du framework en tant qu'architectes. Créez une architecture facile à produire en masse en utilisant des modèles de méthode de modèle, etc. Après cela, en touchant le programmeur qui implémente chaque fonction, l'écran et le traitement métier seront créés selon le framework.

Cependant, le traitement commercial est bien sûr nécessaire. ** Qu'en est-il de la qualité d'une si grande quantité de code écrit en parallèle sur votre site? ** ** J'ai eu un problème à ce sujet, et je pensais que ** cela nécessitait un ingénieur qui le remarque correctement sur le site de développement **, alors j'ai commencé la formation Java pour l'entreprise. Cet article résume ce que j'ai remarqué dans la révision du code pendant la formation, ** "Oh, je ne comprends pas cela" **. J'espère que les managers, qui demandent souvent "Pourquoi écrivez-vous ce genre de putain de code?" Quand vous trouvez un bug, se rendront compte de l'importance de l'éducation et des critiques. Peut-être que ces lieux de travail ont des livres tels que Effective Java / Readable Code, ou sont-ils poussiéreux? ** L'éducation est très importante. ** ** J'utilise HashMap pour tout, et la raison pour laquelle je crache des journaux pendant la logique est que je ne le sais pas.

Qu'est-ce que l'éducation Java?

2 refroidissements tenus

--Juin-septembre 2018 26 personnes une fois par semaine 16 fois au total

C'est comme donner une conférence hebdomadaire (2 heures), faire des exercices, obtenir une demande de tirage, réviser et revenir. J'ai suivi Slack pendant la conférence. En ce qui concerne le matériel pédagogique, nous avons acheté et mis en œuvre le matériel pédagogique de M. Casa Real. C'est plus cher que d'acheter un livre général, mais c'est très bien que l'ordre des explications soit bien organisé. Je ne pense pas que vous ayez besoin d'un manuel si vous pouvez toujours être un binôme professionnel, mais je pense que j'étais accro à une formation interne comme celle-ci.

La personne cible est une telle personne

―― Première année où j'ai commencé à écrire Java pour les entreprises ――En fait, j'écris Java, mais ça fait environ 3-4 ans «Cela fait 10 ans que je suis passé d'un autre langage à Java.

Ensuite, je présenterai tout le contenu que j'ai vu dans la pull request et que je devrais connaître. Le classement est mon sentiment. Si vous voulez le savoir, demandez aux débutants autour de vous. Il y en a probablement autour de vous aussi. ** Je ne sais pas ce que je n'ai pas appris **.

Ineffective Java

Élément 1 Qu'est-ce que toString ()?

J'ai été surpris que de nombreuses personnes ne connaissent pas le rôle de cette méthode. Avez-vous déjà vu le code ʻobject.getXXX () + object.getYYY () `même si toString () est déjà implémenté dans l'objet?

C'était dans les coulisses où je ne connaissais pas la signification de toString (). Veuillez demander aux jeunes autour de vous.

Point 2 La déclaration du type sur le côté gauche est toujours la même que le type sur le côté droit

ArrayList<String> list = new ArrayList<>();

Bien sûr, le côté gauche devrait être «List ». Cependant, s'il n'y a aucune considération telle que l'interface ou le polymorphisme, le côté gauche sera déclaré avec le même type que le côté droit. Pour les personnes dans un tel état, ** OCP ** sera un gâchis, il est donc nécessaire d'expliquer étape par étape dans l'ordre d'héritage-> interface-> collection-> polymorphisme. Cela seul vous permettra de penser et de définir correctement le côté gauche. (On ne sait pas si les termes côté gauche et côté droit sont corrects)

Élément 3 Convertir de toute façon en emballage

Long.valueOf(Files.size(pathA)).equals(Long.valueOf(Files.size(pathB)));

Je pense qu'il a été copié quelque part. Ou, en faire un rappeur peut vous donner un sentiment de sécurité. Vous devez comprendre correctement pour traiter les primitives comme des primitives. En comprenant cela, vous pourrez lentement apprendre que c'est une mauvaise idée de créer des objets en vain.

Point 4 Commentaires inutiles

Vous avez vu ce code, n'est-ce pas? Les commentaires générés automatiquement par Eclipse restent, les explications des variables et autres commentaires Dans le premier cas, j'étais trop désespéré pour écrire le code en premier lieu, et je ne pouvais pas voir les commentaires. Ce dernier est un exemple de croissance après avoir reçu uniquement l'éducation que les commentaires sont importants.

Je me rends immédiatement compte que je suis un pro du couple, mais si je ne le fais pas, je n'apprendrai de personne, donc cela continuera pour toujours. Laissez-moi vous dire correctement. ** Fondamentalement, aucun commentaire requis. C'est nécessaire si vous voulez faire quelque chose d'irrégulier dans votre entreprise. Sinon, un bogue peut apparaître en fonction du commentaire lors de la phase de maintenance ultérieure **.

Point 5 Je n'ai pas besoin d'une déclaration if ici

public boolean isLessThan1KB(String file) throws Exception {  
        //Génération d'objet chemin
        Path path = Paths.get(file);  
        if (Files.size(path) < 1024) {  
            return true;  
        } else {  
            return false;  
        }  
    }

C’est beaucoup. Après l'instruction if, elle est réécrite avec return Files.size (path) <1024;. Si vous pensez que le code que vous avez écrit une fois se terminera s'il fonctionne, il y a plusieurs façons de l'écrire comme ça. Afin de ressentir quelque chose de redondant, une révision de code de haut niveau est essentielle.

Point 6 Je ne vois pas la valeur de retour pour une raison quelconque

    public void delLine(String line) { 
        lines.remove(lines.indexOf(line)); 
    }

La méthode List #remove a une valeur de retour. Il existe certains cas où la valeur de retour est ignorée et utilisée telle quelle. Il peut y avoir une telle façon d'écrire ceci quelque part sur le net. Dans les coulisses, les débutants ne sont souvent pas doués pour gérer les erreurs. Si vous comprenez les ** exceptions, la gestion des erreurs **, etc., elles seront résolues naturellement.

Point 7 Pas familier avec Try-with-Resources

Même maintenant, il y a beaucoup de gens qui disent que le JDK sur le terrain est de 6. Combien de temps allez-vous continuer à écrire dans l'ancien temps? Ce serait la même chose pour tous pour les instructions, les flux, les lambdas, etc., quel que soit twr. Nous vous recommandons d'étudier correctement Java 8. ** Pour les nouveaux arrivants commençant par Java 11, il ne s'agit que d'une menace. ** **

Point 8 Vous voulez imbriquer

if(xxx == true) {
 //En traitement
} else {
 //En traitement
}

Un programmeur sérieux qui écrit toujours comme ça. Je veux vous dire qu'il existe une clause de garde dans le monde. La plupart du temps, l'utilisation de la clause de garde la rend encore plus rafraîchissante. ** L'une des causes est que le code est plein de nids. Reconnaître. Vous ne pouvez pas faire la différence même si vous réduisez un nid ** Cependant, si vous l'examinez correctement, vous pouvez le comprendre d'un seul coup, donc l'effet immédiat est extrêmement élevé.

Point 9 Je ne comprends pas la signification de égale ()

C'est très difficile en premier lieu. Même les utilisateurs Java intermédiaires peuvent avoir du mal à l'expliquer à la fois. Cependant, si je ne comprends pas cela, j'ai peur et je ne peux pas utiliser TreeMap. Parce que je ne sais pas si un objet sera trié correctement. Donc, ** je deviens toujours un bâtard de HashMap, récupère () puis pétris. ** ** Lorsque vous implémentez equals (), vous implémentez naturellement hashCode () également. Sinon, beaucoup de choses étranges se produiront. Si cela est bien compris, le code sera plus sophistiqué que cette compréhension. C'est exactement Java efficace.

Point 10 Immuable? ??

Je ne connais pas d'objets immuables. C'est une connaissance très importante pour passer du débutant à l'intermédiaire. La possibilité de déduire l'état d'un objet afin d'éradiquer les bogues cachés. Je pense que c'est un utilisateur Java intermédiaire. Comment créer un objet immuable? Quand l'utilisez vous? ** Si vous savez cela, la gamme de conception de classe sera considérablement élargie. Au contraire, si vous ne le faites pas, vous ne pouvez concevoir qu'un design uniforme pour toujours. ** **

De plus, bien que ce ne soit pas directement lié à immuable, il y a des cas où il n'est pas possible d'expliquer correctement ce que signifie final même s'il s'agit d'une liste telle que final List <String> stringList;, il est donc extrêmement important de comprendre cela correctement également.

De Java inefficace au monde avec un Java efficace

Il y a eu beaucoup de contenu comme un pont entre débutant et intermédiaire, mais beaucoup d'entre eux peuvent se développer en lisant Effective Java. Demandez aux débutants ce que les intermédiaires ne comprennent pas. Si vous êtes une personne intermédiaire, invitez un débutant à tenir une session de lecture. Effective Java 3rd Edition

Ceci est recommandé si vous souhaitez réapprendre Java 8 Programmation pratique Java SE 8 que les programmeurs Java veulent apprendre

Recommended Posts

De Java inefficace à Java efficace
Changements de Java 8 à Java 11
Somme de Java_1 à 100
De Java à Ruby !!
Migration de Cobol vers JAVA
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
Java sera impliqué dès aujourd'hui
De Java à VB.NET - Écriture de notes de contraste
Java, interface pour partir du débutant
La route de JavaScript à Java
[Java] Conversion d'un tableau à une liste
Efficace Java Chapitre 2
Effective Java Chapitre 6 34-35
Connectez-vous de Java à MySQL à l'aide d'Eclipse
De l'installation d'Eclipse à l'exécution de Java (PHP)
[Java] Introduction à Java
Publier sur Slack à partir de Play Framework 2.8 (Java)
Java: Comment envoyer des valeurs du servlet au servlet
Introduction à la surveillance à partir de Java Touching Prometheus
Introduction à Java
Précautions lors de la migration de VB6.0 vers JAVA
Effective Java Chapitre 4 15-22
Mémo pour la migration de Java vers Kotlin
Conversion de type du type java Big Decimal au type String
Java efficace Chapitre 3
[Java] De deux listes à une liste de tableaux
Upsert du SDK Java vers Azure Cosmos DB
Connectez-vous à Aurora (MySQL) depuis une application Java
Pour devenir programmeur VB.net depuis une boutique Java
Migrer de Java vers Kotlin côté serveur + Spring-boot
Comment obtenir une classe depuis Element en Java
Je veux écrire rapidement de java vers sqlite
Développement de serveur Minecraft BE de PHP à Java
Sélectionnez * de Java SDK vers Azure Cosmos DB
Migrer de JUnit 4 vers JUnit 5
Évaluer la source Java à partir de Java
[Java] Connectez-vous à MySQL
Accédez à API.AI depuis Java
Améliorations de Kotlin à Java
Introduction à la commande java
Lancez Docker à partir de Java pour convertir des documents Office en PDF
Convertir l'énumération Java et JSON vers et depuis Jackson
[Java] Je souhaite calculer la différence par rapport à la date
Comment passer d'Eclipse Java à un fichier SQL
Comment écrire Scala du point de vue de Java
[Java] Comment extraire le nom du fichier du chemin
6 fonctionnalités que j'ai manquées après mon retour de Scala à Java
Comment passer d'Oracle Java 8 à Adopt Open JDK 9
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
Générer des modèles de JSON à Swift, PHP, C #, JAVA
Mises à jour des notes personnelles en vigueur de Java Third Edition 2nd Edition
Passé d'iBATIS à MyBatis3
Essayez Spring Boot de 0 à 100.
Introduction à Effective Java en pratiquant et en apprenant (modèle Builder)
Efficace Java 3rd Edition Chapitre 3 Méthodes communes à tous les objets
Comment abaisser la version java
[Java] Comment utiliser Map