Asignación de prueba de revisión de código de desarrolladores junior react

Que es esto


Esta es una revisión de código de las soluciones de la segunda tarea de prueba . El video muestra soluciones exitosas y errores, así como consejos para solucionarlos. Esta nota identifica problemas comunes y proporciona enlaces con una "marca de tiempo".


eligió una reacción


Video

Problemas comunes


  • Léame malo;
  • Hay advertencias de Eslint, extra console.log (redux-logger no cuenta);
  • El icono de la web no avanzó (lectura desatendida de la tarea);
  • El ícono Web se empuja hacia adelante en el componente (y sería mejor en el reductor o acción);
  • La contraseña no se borra si la solicitud se devuelve con un error;
  • Un botón de envío en el formulario de inicio de sesión está disponible si los campos están vacíos (o uno de los campos);
  • El botón Enviar en el formulario de inicio de sesión no admite presionar Entrar;
  • No se divide en componentes / contenedores (no se aplica a aquellos que comparten otros enfoques);
  • La URL para las solicitudes al servidor se transmite completamente (no existe un diseño de la parte repetitiva de la cadena como una constante)
  • Error / notificación "nombre de usuario / contraseña incorrectos" - no se borra;
  • El error "nombre de usuario / contraseña incorrecto" es emitido por una constante del servidor;
  • El texto del error está codificado en el código. No hay acceso al diccionario por constante desde el servidor;
  • El "código antiguo" no se ha eliminado, es decir, el código que no se usa en ningún lado;
  • Las promesas no tienen un bloque catch, no hay manejo de errores si el servidor responde ok ;
  • Los componentes están alojados en node_modules;
  • Faltan los tipos de utilería o están descritos de manera inadecuada.
  • Acciones y reductores en el montón en un archivo (o en uno todas las acciones, en el otro todos los reductores). No hay división en "módulos", es decir, cada entidad: sus propias acciones y sus reductores;

Todas las soluciones con sello de tiempo


Aquí solo se indican los errores, y no se observan puntos buenos, de los cuales hay muchos, por lo que recomiendo ver todo en una fila a aquellos que se consideran "junio" en desarrollo al reaccionar.




6m00s - Arthur Donkovtsev Commit


7m40s - error tipográfico en el nombre de la función


8m07s - las solicitudes asincrónicas no se ponen en acción




9m30s - Pavel Pimkin Commit


10m07s : todas las acciones en un archivo. No dividir en módulos.


10m25s : la eliminación del icono (enumeración de datos) se realiza en el componente. Mejor en un reductor o acción.




11m42s Sergey ZackFox Commit


12m28s - inscripciones "geniales". Es mejor hacerlo "neutralmente" para que tareas similares puedan enviarse inmediatamente al empleador.


13m05s : una acción adicional que indica que la "descarga" se ha completado. Es decir, en lugar de tres acciones: SOLICITAR / ÉXITO / DETENER, puede cumplir dos: SOLICITAR / ÉXITO.




16m16s - Dmitry Petrov Commit


18m16s - usando var


18m34s - parte de la dirección URL no constante




21m15s - Yefim Bread Commit


21m17s - mensaje de confirmación erróneo


22m15s son los mismos nombres de acción.




24m16s - Katsura Vladislav se compromete


25m17s - (no es un error) - datos preparados en un reductor


27m38s - usando e.target , mejor e.currentTarget


28m20s - == , pero sería necesario ===


28m33s - usando componentWillUnmount


29m00s (no es un error): razonamiento sobre "antes de la validación del servidor".


30m05s - el código no está formateado (para un aficionado)




30m33s - Maxim Safin Commit


31m35s - utilizando un controlador "no universal", cuando corresponda.




32m02s - Sergey Regies Linkas Commit


33m42s : ninguna acción para el precargador


34m30s - el orden de los métodos en el componente. ( complemento de eslint )


35m30s - PropTypes inexistentes




35m57s - Kononov Vitaly Commit




38m02s - Renat Rysaev Commit


39m45s - no hagas lo que no es interesante




40m31s - Evgeny Sanzhiev Commit


41m20s (no es un error) - diccionario para trabajar con errores




42m46s - Vitaliy Embankment Commit


42m54s - datos de prueba no limpiados




44m50s - Compromiso de Veniamin Trepachko


Logro: diseño muy genial.


47m42s - la versión redux no está completa.




47m57s - Ingvarr6 (Igor) Commit


48m21s - sin rutas 404




51m20s - Catherine H Commit


51m30s - el error no se borra




54m48s - Compromiso palestino romano


55m30s - no hay suficientes acciones de descarga / error


56m49s - uso de efectos secundarios en un reductor


58m10s - (no es un error) sacar el ícono web usando css (¡enfermo!)




58m53s - Umyar Yusupov Commit


59m15s : uso de devolución de llamada en setState, lo que conduce a un rediseño innecesario. Es mejor validar directamente en el render.


61m01s - uso inapropiado de else si




62m13s - dsfcv d (boortcore) Commit




63m15s Konstantin Lipsky Commit


65m11s : la URL completa se pasa a la acción, es mejor pasar la identificación en esta opción.




67m14s - Ikaow Ikaow Commit


67m50s es una condición difícil en shouldComponentUpdate, puede ser más simple (verifique inmediatamente props.data y listo)


69m32s - e.preventDefault no e.preventDefault el primero en el controlador




70m01s - Ali Gasymov Commit




71m50s - Akhmetanov Albert Commit


72m20s - componentes en node_modules


73m15s - llamadas variables duplicadas




74m04s - Eugene White Commit


76m04s - privateRoute no se movió a un componente separado


76m33s : código complejo para mover iconos web


76m56s - propiedad redundante cargada




77m35s - Aladyin Alexander Commit


80m33s - error no realizado en el diccionario




81m19s - Misha Mihail Commit


81m43s - uso redundante con withRouter




83m04s - Dmitrii Shapovalenko Commit




84m00s - Daniel Commit


84m58s - división de acción redundante


85m55s - error en el nombre del método del ciclo de vida




86m58s - Poroshin Roman Commit


87m15s - uso semánticamente incorrecto de la etiqueta del article


90m46s : una llamada adicional al método de matriz




91m10s - Artem Bochkov Commit

Source: https://habr.com/ru/post/es413135/


All Articles