Was ist das?
Dies ist eine Codeüberprüfung der Lösungen der zweiten Testaufgabe . Das Video zeigt erfolgreiche Lösungen und Fehler sowie Tipps zu deren Behebung. Dieser Hinweis identifiziert häufig auftretende Probleme und enthält Links mit einem „Zeitstempel“.

Häufige Probleme
- Schlechte Readme;
- Es gibt Eslint-Warnungen, extra
console.log
(Redux-Logger zählt nicht); - Web-Symbol nicht vorwärts verschoben (unaufmerksames Lesen der Aufgabe);
- Das Web-Symbol wird in der Komponente nach vorne verschoben (und es ist besser im Reduzierer oder in der Aktion).
- Das Kennwort wird nicht gelöscht, wenn die Anforderung mit einem Fehler zurückgegeben wurde.
- Eine Senden-Schaltfläche im Anmeldeformular ist verfügbar, wenn die Felder leer sind (oder eines der Felder).
- Die Schaltfläche "Senden" im Anmeldeformular unterstützt das Drücken der Eingabetaste nicht.
- Keine Aufteilung in Komponenten / Container (gilt nicht für diejenigen, die andere Ansätze teilen);
- Die URL für Anforderungen an den Server wird vollständig übertragen (es erfolgt keine Registrierung des sich wiederholenden Teils der Zeichenfolge als Konstante).
- Fehler / Benachrichtigung "falscher Benutzername / falsches Passwort" - wird nicht gelöscht;
- Fehler "falscher Benutzername / Passwort" - wird von einer Konstante vom Server ausgegeben;
- Der Fehlertext ist im Code fest codiert. Es gibt keinen konstanten Zugriff vom Server auf das Wörterbuch.
- Der "alte Code" wurde nicht gelöscht, dh Code, der nirgendwo verwendet wird.
- Versprechen haben keinen Catch-Block. Es gibt keine Fehlerbehandlung, wenn der Server nicht in
ok
antwortet. - Komponenten werden in node_modules gehostet.
- Requisitentypen fehlen oder sind unzureichend beschrieben.
- Aktionen und Reduzierungen auf dem Heap in einer Datei (oder in einer Aktion alle Aktionen, in der anderen alle Reduzierungen). Es gibt keine Unterteilung in „Module“, dh jede Einheit - ihre eigenen Aktionen und ihre Reduzierer;
Alle zeitgestempelten Lösungen
Hier werden nur Fehler angezeigt, und es werden keine guten Punkte erwähnt , von denen es sehr viele gibt. Ich empfehle daher dringend, alles hintereinander zu betrachten, wenn Sie sich als "Juni" in der Entwicklung betrachten, um zu reagieren.
6m00s - Arthur Donkovtsev Commit
7m40s - Tippfehler im Funktionsnamen
8m07s - Asynchrone Anforderungen werden nicht ausgeführt
9:30 Uhr - Pavel Pimkin Commit
10m07s - alle Aktionen in einer Datei. Keine Aufteilung in Module.
10m25s - Das Symbol wird entfernt (Datenaufzählung) und in der Komponente entfernt. Besser in einem Reduzierer oder einer Aktion.
11m42s Sergey ZackFox Commit
12m28s - "coole" Inschriften. Es ist besser, dies „neutral“ zu tun, damit ähnliche Aufgaben sofort an den Arbeitgeber gesendet werden können.
13m05s - eine zusätzliche Aktion, die anzeigt, dass der "Download" abgeschlossen ist. Das heißt, anstelle von drei Aktionen: ANFRAGE / ERFOLG / STOP können Sie zwei treffen: ANFRAGE / ERFOLG.
16m16s - Dmitry Petrov Commit
18m16s - mit var
18m34s - Teil der URL-Adresse nicht konstant
21m15s - Yefim Bread Commit
21m17s - schlechte Festschreibungsnachricht
22m15s sind die gleichen Aktionsnamen.
24m16s - Katsura Vladislav Commit
25m17s - (kein Fehler) - Daten in einem Reduzierer vorbereitet
27m38s - mit e.target
, besser e.currentTarget
28m20s - ==
, aber es wäre notwendig ===
28m33s - mit componentWillUnmount
29m00s (kein Fehler) - Überlegungen zu "vor der Serverüberprüfung".
30m05s - der Code ist nicht formatiert (für einen Amateur)
30m33s - Maxim Safin Commit
31m35s - gegebenenfalls mit einem "nicht universellen" Handler.
32m02s - Sergey Regies Linkas Commit
33m42s - keine Aktion für den Preloader
34m30s - die Reihenfolge der Methoden in der Komponente. ( Eslint Plugin )
35:30 Uhr - Nicht vorhandene PropTypes
35m57s - Kononov Vitaly Commit
38m02s - Renat Rysaev Commit
39m45s - mach nicht was nicht interessant ist
40m31s - Evgeny Sanzhiev Commit
41m20s (kein Fehler) - Wörterbuch für die Arbeit mit Fehlern
42m46s - Vitaliy Embankment Commit
42m54s - Testdaten nicht bereinigt
44m50s - Veniamin Trepachko Commit
Leistung: sehr cooles Design.
47m42s - Redux-Version ist nicht voll.
47m57s - Ingvarr6 (Igor) Commit
48m21s - keine 404 Routen
51m20s - Catherine H Commit
51m30s - Fehler wird nicht behoben
54m48s - Römisch-Palästinensisches Engagement
55m30s - nicht genug Download- Aktionen / Fehler
56m49s - mit Nebenwirkungen in einem Reduzierer
58m10s - (kein Fehler) Entfernen des Web-Symbols mit CSS (krank!)
58m53s - Umyar Yusupov Commit
59m15s - Rückruf in setState verwenden, was zu unnötigem Neuzeichnen führt. Es ist besser, direkt im Render zu validieren.
61m01s - unangemessene Verwendung von else if
62m13s - dsfcv d (boortcore) Commit
63m15s Konstantin Lipsky Commit
65m11s - Die gesamte URL wird an die Aktion übergeben. Es ist besser, nur die ID in dieser Option zu übergeben.
67m14s - Ikaow Ikaow Commit
67m50s ist eine schwierige Bedingung in shouldComponentUpdate, es kann einfacher sein (überprüfen Sie sofort props.data und das wars).
69m32s - e.preventDefault
nicht der erste im Handler
70m01s - Ali Gasymov Commit
71m50s - Akhmetanov Albert Commit
72m20s - Komponenten in node_modules
73m15s - doppelte Variablenaufrufe
74m04s - Eugene White Commit
76m04s - privateRoute wurde nicht in eine separate Komponente verschoben
76m33s - komplexer Code zum Verschieben von Web- Symbolen
76m56s - redundante Eigenschaft geladen
77m35s - Aladyin Alexander Commit
80m33s - Fehler im Wörterbuch nicht gemacht
81m19s - Misha Mihail Commit
81m43s - redundante Verwendung mit withRouter
83m04s - Dmitrii Shapovalenko Commit
84m00s - Daniel Commit
84m58s - redundante Aktionsteilung
85m55s - Fehler im Namen der Lebenszyklusmethode
86m58s - Poroshin Roman Commit
87m15s - semantisch falsche Verwendung des article
Tags
90m46s - ein zusätzlicher Aufruf der Array-Methode
91m10s - Artem Bochkov Commit