Que outros critérios você poderia mencionar para um bom componente de biblioteca?
Frontend
Fale-me sobre a escrita de testes unitários: quando, na sua opinião, um teste deve falhar? O que exatamente um teste unitário para uma classe testada segundo a escola de Londres (com todas as dependências mockadas) deve verificar?
Começaste a aprender React, e o React é mais popular e há mais vagas de emprego nele. Por que, no final, mudaste para Angular?
Compare a injeção de dependências através de parâmetros do construtor e através da função inject: quais as vantagens e desvantagens de cada abordagem?
Existem critérios baseados na prática para determinar onde a herança é apropriada e onde não é?
Analise essa abordagem do ponto de vista da mistura de responsabilidades: o que foi feito de errado aqui e como você explicaria isso do ponto de vista dos princípios arquiteturais (em particular, o Princípio da Responsabilidade Única e a separação de apresentação e modelo)?
Pode listar todas as soluções técnicas para este problema (exceto substituir o campo por um sinal)?
Se o modelo não sabe que o valor mudou, por que adicionar o pipe async ao modelo resolve o problema de reatividade? Como isso funciona por baixo dos panos?
Conte-nos mais sobre o uso do pipe async e a assinatura manual: o que exatamente precisa fazer para que o valor seja exibido corretamente no template (incluindo o trabalho com a assinatura e seu cancelamento através de takeUntilDestroy ou ngOnDestroy)?
Pode dar um exemplo concreto de uma biblioteca que não permitia completar a compilação ao atualizar o Angular (por exemplo, para a versão 16)? Em que consistia exatamente o problema e como o resolveu?
Por que é que a herança é necessária na POO? Forneça uma justificação do porquê de a usar, se a tarefa de reutilização de lógica pode ser resolvida de outras formas (por exemplo, através de DI).
No seu currículo, indica que atualizou o Angular da versão 14 para a 20. Fale sobre algum problema que tenha ocorrido ao atualizar o Angular em um projeto, uma história da sua prática.
Por que, ao usar um sinal e chamar o método set, o valor é atualizado no template, mas na simples atribuição this.token = string - não? Explique isso ao nível do conceito de deteção de mudanças.
Está familiarizado com diagramas de classes UML? Você já lidou com tipos de ligações como associação, composição, agregação, generalização?
Por que escolheste especificamente o desenvolvimento web e Angular, em vez de, por exemplo, desenvolvimento móvel?
Disse que escreveu os testes com a ajuda de uma rede neural. Se a rede neural gerou testes que falham com qualquer alteração no código da classe, esses testes atingem seu objetivo? São úteis?
Imagine um cenário: um desenvolvedor mais experiente recebe um júnior com a tarefa de criar um componente Angular com um campo para exibir um token e um botão 'criar token'. Ao clicar no botão, uma solicitação é enviada ao servidor, um token é recebido, e o júnior escreve this.token = a string que chegou, mas o valor não é exibido e a página não é rerenderizada. O que você recomendaria para resolver esse problema e quais abordagens existem para corrigi-lo?
Se precisasse contar o número de linhas de código num projeto, como abordaria essa tarefa? Como formularia uma consulta para procurar uma solução ou para uma rede neural?
No seu emprego anterior, você disse que a parte de frontend era relativamente pequena, mas que havia 6 desenvolvedores de frontend. De onde veio exatamente a equipe de 6 pessoas e como ela se relaciona com a equipe de frontend geral da empresa?
Conte-nos como entrou na indústria de desenvolvimento: como se formou, como encontrou o seu primeiro emprego, considerando que no seu currículo indica uma especialidade não técnica?