Prévia do material em texto
Você acertou 8 de 10 questões Verifique o seu desempenho e continue treinando! Você pode refazer o exercício quantas vezes quiser. Verificar Desempenho A B C D E 1 Marcar para revisão Técnicas formais para execução de testes e análise de performance devem ser utilizadas para a garantia da qualidade do produto. Alguns problemas comuns estão relacionados ao tempo de resposta, outros ao consumo de memória, e há ainda os fatores de usabilidade do produto. Qual das alternativas define um problema relacionado ao consumo de memória? Memory leak Deadlock Promise rejection Format exception Starvation Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! G b i C d A B C D E Gabarito Comentado O termo "memory leak" ou "vazamento de memória" é um problema comum em diversos aplicativos. Ele ocorre quando sucessivas chamadas a determinados métodos resultam no consumo de pequenos blocos de memória. Esses blocos são alocados durante o processamento, mas não são desalocados ao final. Com o bloqueio gradativo das posições de memória, o sistema se torna mais lento, impactando diretamente na performance. Portanto, o "memory leak" é um problema diretamente relacionado ao consumo de memória, o que justifica a alternativa A como a correta. 2 Marcar para revisão O padrão DAO é muito importante para a arquitetura MVC, pois permite que as chamadas ao banco de dados sejam concentradas em poucas classes, viabilizando o agrupamento na camada mais apropriada, e evitando que os comandos SQL sejam repercutidos nas demais camadas do sistema. De acordo com o padrão DAO, qual seria o comando SQL associado ao método obterTodos? UPDATE CREATE DELETE INSERT SELECT Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! A B C D E Gabarito Comentado O padrão DAO (Data Access Object) é uma estratégia de design que encapsula o acesso aos dados em uma interface, isolando a lógica de negócios do acesso direto ao banco de dados. Nesse padrão, temos a concentração dos comandos SQL relacionados a uma entidade específica. Os métodos comumente considerados no padrão DAO são: incluir, que está relacionado ao comando INSERT; excluir, que tem como base o comando DELETE; alterar, que invoca o comando UPDATE; e métodos gerais de consulta, como obterTodos, que são baseados no comando SELECT, com ou sem restrições. Portanto, o comando SQL associado ao método obterTodos é o SELECT, que é utilizado para recuperar dados do banco de dados. 3 Marcar para revisão Arquiteturas de fluxo unidirecional são muito eficientes na construção de sistemas para Web ou dispositivos móveis. Criada pelo Facebook, a arquitetura Flux é um bom exemplo de modelo baseado em fluxo, e o componente Store, definido na arquitetura, é utilizado para Criar pacotes de comunicação, representando as solicitações do usuário. Exibir os dados para o usuário. Gerenciar a interatividade do usuário com o sistema. Despachar os pacotes de comunicação, para o responsável pelo processamento. Receber as solicitações e executar processos sobre os dados. Resposta correta A B C D E Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Na arquitetura Flux, o componente Store tem a função de receber as solicitações e executar processos sobre os dados. É importante destacar que, nesta arquitetura, qualquer solicitação é traduzida em uma Action, que pode ser definida como um pacote de comunicação. Este pacote é então repercutido pelo Dispatcher para algum componente Store, onde são executados os processos necessários sobre os dados. Ao final, eventos são emitidos para a atualização da View, que é o componente responsável por exibir os dados para o usuário e gerenciar a interatividade. Portanto, a alternativa E é a correta, pois afirma que o componente Store é utilizado para receber as solicitações e executar processos sobre os dados. 4 Marcar para revisão Quando um aplicativo não consegue completar as funcionalidades oferecidas por ele em prazo adequado, o usuário se sente desestimulado, pois a usabilidade fica comprometida. No entanto, existem técnicas simples que podem melhorar o consumo de memória e o tempo de resposta, como a que é citada na alternativa: Utilizar sempre implementações recursivas para as funções. Manter as mensagens via console para acompanhamento da execução. Substituir o motor de execução JavaScript pelo Hermes. Adotar figuras no formato BMP, devido à taxa de compressão. Recriar os componentes nativos a cada exibição. A B C D E Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A alternativa correta é a C, que sugere a substituição do motor de execução JavaScript pelo Hermes. O motor Hermes é conhecido por ser mais eficiente, e a sua substituição pode trazer benefícios reais em termos de performance para o aplicativo. Em relação às demais alternativas, é importante destacar que a implementação recursiva geralmente consome mais memória, as mensagens de console devem ser eliminadas para evitar sobrecarga, as figuras devem ser preferencialmente no formato PNG ou vetorial para otimizar o carregamento, e os componentes nativos, quando utilizam o mesmo conteúdo, podem ser memorizados via React.memo, diminuindo o tempo para exibição e melhorando a performance do aplicativo. 5 Marcar para revisão De forma geral, o resultado de um processo criptográfico é uma sequência binária, que apresenta dificuldades relacionadas à persistência e transmissão em rede, requerendo uma transformação para o formato texto. Qual algoritmo é tipicamente utilizado na conversão? Base64 SHA1 Runge-Kutta MD5 Euler A B C Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O algoritmo Base64 é comumente utilizado para converter uma sequência binária em formato de texto. Essa conversão é necessária para superar as dificuldades relacionadas à persistência e transmissão de dados em rede. A codificação por meio do algoritmo Base64 transforma o vetor de elementos binários em uma sequência de texto, eliminando valores nulos ou zeros, que poderiam causar problemas. Vale ressaltar que o Base64 não é um algoritmo criptográfico, mas sim um algoritmo de codificação, pois a transformação não requer a utilização de uma chave. 6 Marcar para revisão Ao efetuar a persistência em banco de dados, pode ser necessário ocultar informações de determinados campos, com a possibilidade de recuperação posterior, ou seja, devem ser adotados algoritmos de criptografia simétrica, em que o AES tem sido a principal opção para as plataformas móveis mais populares. Tendo como base a biblioteca CryptoJS, como podemos utilizar o algoritmo AES no desenvolvimento com React Native? É necessário instanciar um objeto do tipo Cipher, com a passagem do algoritmo AES, chave e IV, e utilizar os métodos encrypt e decrypt do objeto. Não é possível trabalhar com o algoritmo AES no React Native, pois a biblioteca CryptoJS não fornece um gestor apropriado para ele. Devemos invocar o método encrypt, fornecendo o valor original, chave AES e IV, ou o método decrypt, com o valor criptografado, chave e IV, sempre por meio do módulo AES. D E A B Basta invocar a classe Base64, pois os valores já são codificados no formato AES. Precisamos utilizar o método digestStringAsync, fornecendo chave AES e IV, tanto para a criptografia quanto para a recuperação da informação. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A biblioteca CryptoJS é uma ferramenta poderosa que fornece gestores de criptografia simétrica por meio de módulos. Entre esses módulos, estão incluídos AES, DES, TripleDES, Rabbit e RC4, cada um referindo-se a um algoritmo específico. Independentementedo gestor escolhido, os métodos encrypt e decrypt estão disponíveis para uso. O método encrypt é usado para criptografar a informação, enquanto o decrypt é usado para recuperar a informação criptografada. Ambos os métodos necessitam da chave e do IV (Vetor de Inicialização) para funcionar corretamente. No contexto da questão, ao trabalhar com o algoritmo AES no desenvolvimento com React Native, devemos invocar o método encrypt, fornecendo o valor original, chave AES e IV, ou o método decrypt, com o valor criptografado, chave e IV, sempre por meio do módulo AES. 7 Marcar para revisão Para a arquitetura Redux, o papel do componente Store é levemente diferente da Flux, pois ele se torna responsável pelo despacho de solicitações, eliminando a necessidade de um componente Dispatcher. Qual método deve ser utilizado para a criação do componente Store na arquitetura Redux? getStore dispatch C D E A B getState createStore subscribe Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Na arquitetura Redux, o componente Store tem um papel crucial e é criado utilizando o método 'createStore'. Este método é utilizado para inicializar o componente Store, que é responsável pelo despacho de solicitações, diferentemente da arquitetura Flux que necessita de um componente Dispatcher para essa função. As funções Reducer, definidas em um arquivo JavaScript ou TypeScript, são importadas para outro arquivo e utilizadas para inicializar o componente Store. Uma vez criado o componente Store, qualquer tela pode ser associada a ele com o método 'subscribe', permitindo que a tela receba atualizações sempre que o estado do Store é alterado. 8 Marcar para revisão A arquitetura Redux surgiu como uma alternativa ao Flux, porém, trabalha com um modelo de programação mais adequado ao ambiente do React Native. Ela deve ser utilizada quando desejamos um fluxo unidirecional de execução em um aplicativo móvel, e os componentes que fazem parte da arquitetura são View, Store, Dispatcher e Reducer. View Action Store e Reducer B C D E A B C View, Action, Store e Reducer. Action, Model e Store. Action, Dispatcher, Controller e Store. View, Action, Store e Dispatcher. Resposta incorreta Opa! A alternativa correta é a letra B. Confira o gabarito comentado! Gabarito Comentado Os componentes da arquitetura Redux são View, Action, Store e Reducer. A tela, ou View, exibe os dados representados pela Store, além de invocar solicitações, ou Actions, despachadas pela própria Store, para que sejam iniciados os processos definidos nas funções do tipo Reducer, as quais modificam os dados representados pelo componente Store. 9 Marcar para revisão Muitas vezes, precisamos testar a conexão com um banco de dados ou servidor na rede, antes que ele seja implementado. Qual instrumento de programação poderia ser utilizado para viabilizar os testes na situação descrita? Modificador async Função expect Operador toEqual D E A Componente mock Função test Resposta incorreta Opa! A alternativa correta é a letra D. Confira o gabarito comentado! Gabarito Comentado Os objetos mock, também conhecidos como simulados, são utilizados para desviar o fluxo de execução normal, fornecendo as respostas previstas por um determinado servidor. O uso de um componente mock é extremamente útil, pois elimina a necessidade de construir um servidor físico para realizar testes nas fases iniciais do desenvolvimento. Além disso, mantém a compatibilidade com os processos normais de verificação. Portanto, na situação descrita no enunciado, onde é necessário testar a conexão com um banco de dados ou servidor antes de sua implementação, o componente mock seria o instrumento de programação mais adequado para viabilizar esses testes. 10 Marcar para revisão Considere o trecho de código apresentado a seguir, que tem como base a utilização da biblioteca de testes unitários Jest: Qual será o resultado da execução dos testes, via npm test? O teste irá falhar, pois o resultado da soma deveria ser menor que o valor de teste. B C D E O teste será executado com sucesso, pois o resultado da soma será maior que o valor de teste utilizado. O teste será executado com sucesso, devido ao fato de que o resultado da soma é igual ao valor de teste utilizado. O teste irá falhar, pois o resultado da soma será menor que o valor de teste utilizado. O teste irá falhar, pois o retorno da soma não é igual ao valor de teste utilizado. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Com base na biblioteca Jest, temos diversos operadores para as comparações utilizadas nos testes. No fragmento de código, é utilizado o operador toBeGreaterThan, que verifica se o resultado é maior que o valor de teste. Como a soma retornará o valor quinze, e o valor de comparação é um, o teste será executado com sucesso.