Designação de teste de revisão de código de desenvolvedores junior react

O que é isso


Esta é uma revisão de código das soluções da segunda tarefa de teste . O vídeo mostra soluções e erros bem-sucedidos, além de dicas para corrigi-los. Esta nota identifica problemas comuns e fornece links com um "carimbo de data / hora".


escolheu uma reação


Vídeo

Problemas comuns


  • Leiame incorreto;
  • Existem avisos eslint, console.log extra (o redux-logger não conta);
  • Ícone da Web não avançado (leitura desatenta da tarefa);
  • O ícone da Web é empurrado para a frente no componente (e seria melhor no redutor ou na ação);
  • A senha não será limpa se a solicitação retornar com um erro;
  • Um botão de envio no formulário de login estará disponível se os campos estiverem vazios (ou um dos campos);
  • O botão Enviar no formulário de login não suporta pressionar Enter;
  • Não há divisão em componentes / contêineres (não se aplica a quem compartilha de outras abordagens);
  • A URL para solicitações ao servidor é completamente transmitida (não há registro da parte repetida da sequência como uma constante);
  • Erro / notificação "nome de usuário / senha incorretos" - não é limpo;
  • Erro "nome de usuário / senha incorretos" - é gerado por uma constante do servidor;
  • O texto do erro está codificado no código. Não há acesso ao dicionário por constante do servidor;
  • O "código antigo" não foi excluído, ou seja, código que não é usado em nenhum lugar;
  • As promessas não têm um bloco de captura, não há tratamento de erros se o servidor responder que não está ok ;
  • Os componentes são hospedados em node_modules;
  • Os tipos de suporte estão ausentes ou estão descritos inadequadamente.
  • Ações e redutores na pilha em um arquivo (ou em uma em todas as ações, na outra em todos os redutores). Não há divisão em “módulos”, isto é, cada entidade - suas próprias ações e seus redutores;

Todas as soluções com registro de data e hora


Somente erros são indicados aqui, e bons pontos não são anotados , dos quais existem muitos, por isso recomendo assistir tudo seguidamente àqueles que se consideram "junho" em desenvolvimento ao reagir.




6m00s - Compromisso de Arthur Donkovtsev


7m40s - erro de digitação no nome da função


8m07s - solicitações assíncronas não colocadas em ação




9m30s - Compromisso Pavel Pimkin


10m07s - todas as ações em um arquivo. Não há divisão em módulos.


10m25s - a remoção do ícone (enumeração de dados) é feita no componente. Melhor em um redutor ou ação.




11m42s Sergey ZackFox Commit


12m28s - inscrições "legais". É melhor fazê-lo "de maneira neutra", para que tarefas semelhantes possam ser enviadas imediatamente ao empregador.


13m05s - uma ação extra indicando que o "download" foi concluído. Ou seja, em vez de três ações: SOLICITAR / SUCESSO / PARAR, você pode conhecer duas: SOLICITAR / SUCESSO.




16m16s - Dmitry Petrov Commit


18m16s - usando var


18m34s - parte do endereço URL não constante




21m15s - Compromisso de pão de Yefim


21m17s - mensagem de confirmação incorreta


22m15s são os mesmos nomes de ação.




24m16s - Katsura Vladislav Commit


25m17s - (não é um erro) - dados preparados em um redutor


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


28m20s - == , mas seria necessário ===


28m33s - usando componentWillUnmount


29m00s (não é um erro) - raciocínio sobre "antes da validação do servidor".


30m05s - o código não está formatado (para um amador)




30m33s - Maxim Safin Commit


31m35s - usando um manipulador "não universal", quando apropriado.




32m02s - Sergey recupera o compromisso de Linkas


33m42s - nenhuma ação para o pré-carregador


34m30s - a ordem dos métodos no componente. ( plugin eslint )


35m30s - PropTypes inexistentes




35m57s - Kononov Vitaly Commit




38m02s - Renat Rysaev Commit


39m45s - não faça o que não é interessante




40m31s - Evgeny Sanzhiev Commit


41m20s (não é um erro) - dicionário para trabalhar com erros




42m46s - Confirmação de Aterro Vitaliy


42m54s - dados de teste não limpos




44m50s - Veniamin Trepachko Commit


Realização: design muito legal.


47m42s - a versão redux não está cheia.




47m57s - Confirmação de Ingvarr6 (Igor)


48m21s - sem 404 rotas




51m20s - Catherine H Cometer


51m30s - erro não é limpo




54m48s - Compromisso Romano-Palestino


55m30s - ações / erro de download insuficientes


56m49s - usando efeitos colaterais em um redutor


58m10s - (não é um erro) remover o ícone da web usando css (doente!)




58m53s - Umyar Yusupov Commit


59m15s - usando retorno de chamada em setState, o que leva a um redesenho desnecessário. É melhor validar diretamente na renderização.


61m01s - uso inadequado de else if




62m13s - dsfcv d (pontuação inicial)




63m15s Konstantin Lipsky Commit


65m11s - o URL inteiro é transferido para a ação, é melhor apenas passar o ID nesta opção.




67m14s - Ikaow Ikaow Commit


67m50s é uma condição difícil no shouldComponentUpdate, pode ser mais simples (verifique imediatamente em props.data e pronto)


69m32s - e.preventDefault não e.preventDefault o primeiro no manipulador




70m01s - Compromisso Ali Gasymov




71m50s - Akhmetanov Albert Commit


72m20s - componentes em node_modules


73m15s - chamadas variáveis ​​duplicadas




74m04s - Eugene White Commit


76m04s - privateRoute não movido para um componente separado


76m33s - código complexo para mover ícones da web


76m56s - propriedade redundante carregada




77m35s - Aladyin Alexander Commit


80m33s - erro não cometido no dicionário




81m19s - Compromisso de Misha Mihail


81m43s - uso redundante com o withRouter




83m04s - Compromisso de Dmitrii Shapovalenko




84m00s - Compromisso de Daniel


84m58s - divisão de ação redundante


85m55s - erro no nome do método do ciclo de vida




86m58s - Compromisso romano de Poroshin


87m15s - uso semanticamente incorreto da tag do article


90m46s - uma chamada extra para o método array




91m10s - Artem Bochkov Commit

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


All Articles