Qu'est ce que c'est
Il s'agit d'un examen du code des solutions de la deuxième tâche de test . La vidéo montre des solutions et des erreurs réussies, ainsi que des conseils pour les corriger. Cette note identifie les problèmes courants et fournit des liens avec un «horodatage».

Problèmes courants
- Mauvais Readme;
- Il y a des avertissements eslint, extra
console.log
(le redux-logger ne compte pas); - Icône Web non déplacée (lecture inattentive de la tâche);
- L'icône Web est poussée vers l'avant dans le composant (et ce serait mieux dans le réducteur, ou l'action);
- Le mot de passe n'est pas effacé si la demande est retournée avec une erreur;
- Un bouton d'envoi dans le formulaire de connexion est disponible si les champs sont vides (ou l'un des champs);
- Le bouton Soumettre dans le formulaire de connexion ne prend pas en charge la pression sur Entrée;
- Pas de division en composants / conteneurs (ne s'applique pas à ceux qui ont partagé par d'autres approches);
- L'URL des requêtes au serveur est entièrement transmise (il n'y a pas d'enregistrement de la partie répétée de la chaîne en tant que constante);
- Erreur / notification "nom d'utilisateur / mot de passe incorrect" - n'est pas effacé;
- Erreur "nom d'utilisateur / mot de passe incorrect" - est produite par une constante du serveur;
- Le texte d'erreur est codé en dur dans le code. Il n'y a pas d'accès au dictionnaire par constante depuis le serveur;
- L'ancien code n'a pas été supprimé, c'est-à-dire le code qui n'est utilisé nulle part;
- Les promesses n'ont pas de bloc catch, il n'y a pas de gestion d'erreur si le serveur ne répond pas
ok
; - Les composants sont hébergés dans node_modules;
- Les types d'accessoires sont manquants ou mal décrits.
- Actions et réducteurs sur le tas dans un fichier (ou dans l'une toutes les actions, dans l'autre tous les réducteurs). Il n'y a pas de division en «modules», c'est-à-dire chaque entité - ses propres actions et ses réducteurs;
Toutes les solutions horodatées
Seules les erreurs sont indiquées ici, et les bons points ne sont pas notés , parmi lesquels il y en a beaucoup, donc je recommande fortement de regarder tout de suite à ceux qui se considèrent comme "juin" en développement en réagissant.
6m00s - Arthur Donkovtsev Commit
7m40s - faute de frappe dans le nom de la fonction
8m07s - les demandes asynchrones ne sont pas mises en œuvre
9m30s - Pavel Pimkin Commit
10m07s - toutes les actions dans un seul fichier. Pas de division en modules.
10m25s - la suppression de l'icône (énumération des données) se fait dans le composant. Mieux dans un réducteur ou une action.
11m42s Sergey ZackFox Commit
12m28s - inscriptions "cool". Il est préférable de le faire «de manière neutre» afin que des tâches similaires puissent ensuite être envoyées immédiatement à l'employeur.
13m05s - une action supplémentaire indiquant que le "téléchargement" est terminé. Autrement dit, au lieu de trois actions: DEMANDE / SUCCÈS / ARRÊT, vous pouvez en rencontrer deux: DEMANDE / SUCCÈS.
16 min 16 s - Dmitry Petrov Commit
18m16s - en utilisant var
18m34s - une partie de l'adresse URL n'est pas constante
21m15s - Yefim Bread Commit
21m17s - mauvais message de validation
22m15s sont les mêmes noms d'action.
24 min 16 s - Katsura Vladislav Commit
25m17s - (pas une erreur) - données préparées dans un réducteur
27m38s - en utilisant e.target
, mieux e.currentTarget
28m20s - ==
, mais il faudrait ===
28m33s - en utilisant componentWillUnmount
29m00s (pas une erreur) - raisonnement sur "avant validation du serveur".
30m05s - le code n'est pas formaté (pour un amateur)
30m33s - Maxim Safin Commit
31m35s - en utilisant un gestionnaire "non universel", le cas échéant.
32m02s - Sergey Regies Linkas Commit
33m42s - aucune action pour le préchargeur
34m30s - l'ordre des méthodes dans le composant. ( plugin eslint )
35m30s - PropTypes inexistants
35m57s - Kononov Vitaly Commit
38m02s - Renat Rysaev Commit
39m45s - ne faites pas ce qui n'est pas intéressant
40m31s - Evgeny Sanzhiev Commit
41m20s (pas une erreur) - dictionnaire pour travailler avec les erreurs
42m46s - Vitaliy Embankment Commit
42m54s - données de test non nettoyées
44m50s - Veniamin Trepachko Commit
Réalisation: design très cool.
47m42s - la version redux n'est pas complète.
47m57s - Ingvarr6 (Igor) Commit
48m21s - pas de 404 voies
51m20s - Catherine H Commit
51m30s - l'erreur n'est pas corrigée
54 min 48 s - Engagement palestinien romain
55m30s - pas assez d' actions de téléchargement / erreur
56m49s - utiliser les effets secondaires dans un réducteur
58m10s - (pas une erreur) retirer l'icône web en utilisant css (malade!)
58m53s - Umyar Yusupov Commit
59m15s - utiliser le rappel dans setState, ce qui conduit à un redessin inutile. Il vaut mieux valider directement dans le rendu.
61m01s - utilisation inappropriée d'autre chose si
62m13s - dsfcv d (boortcore) Commit
63m15s Konstantin Lipsky Commit
65 min 11 s - l'URL entière est transmise à l'action, il est préférable de simplement passer l'ID dans cette option.
67m14s - Ikaow Ikaow Commit
67m50s est une condition difficile dans shouldComponentUpdate, cela peut être plus simple (vérifiez immédiatement sur props.data et c'est tout)
69m32s - e.preventDefault
pas le premier dans le gestionnaire
70m01s - Ali Gasymov Commit
71m50s - Akhmetanov Albert Commit
72m20s - composants dans node_modules
73m15s - appels variables en double
74m04s - Eugene White Commit
76m04s - privateRoute non déplacé vers un composant séparé
76m33s - code complexe pour déplacer des icônes web
76m56s - propriété redondante chargée
77m35s - Aladyin Alexander Commit
80m33s - erreur non faite dans le dictionnaire
81m19s - Misha Mihail Commit
81m43s - utilisation redondante avec withRouter
83m04s - Dmitrii Shapovalenko Commit
84m00s - Daniel Commit
84m58s - division action redondante
85m55s - erreur dans le nom de la méthode de cycle de vie
86m58s - Poroshin Roman Commit
87m15s - utilisation sémantiquement incorrecte de la balise article
90m46s - un appel supplémentaire à la méthode tableau
91m10s - Artem Bochkov Commit