Prévia do material em texto
Você acertou 10 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
A
B
1 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
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.
2 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.
Questão 1 de 10
Corretas �10�
Em branco �0�
1 2 3 4 5
6 7 8 9 10
Lista de exercícios Tópicos Avançados Em React Native Sair
C
D
E
A
B
C
D
E
Action, Model e Store.
Action, Dispatcher, Controller e Store.
View, Action, Store e Dispatcher.
Resposta correta
Parabéns, você selecionou a alternativa correta. 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.
3 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
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.
4 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?
A
B
C
D
E
A
B
C
D
E
Memory leak
Deadlock
Promise rejection
Format exception
Starvation
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
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.
5 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!
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
A
B
C
D
E
A
B
C
D
E
sem restrições. Portanto, o comando SQL associado ao método obterTodos é o SELECT, que é
utilizado para recuperar dados do banco de dados.
6 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
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.
7 Marcar para revisão
Entre os requisitos de segurança da plataforma Android, atualmente não é aceitável que o mesmo IV seja
utilizado na geração sequencial de chaves. Ao utilizar a biblioteca CryptoJS, portada para React Native
de sua versão NodeJS, qual comando seria utilizado para criar um IV formado por valores aleatórios?
CryptoJS.lib.generateIV�128/8�
CryptoJS.IV.getVector(128)
CryptoJS.lib.ByteArray.createIV��128,16��
CryptoJS.lib.IV.createFrom(''randomBytes'')
CryptoJS.lib.WordArray.random(16)
A
B
C
D
E
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
A biblioteca CryptoJS oferece o módulo lib, que contém diversas classes e métodos utilitários para
auxiliar emprocessos criptográficos, como a geração de números aleatórios. Esses números podem
ser utilizados na construção do IV e do SALT. O método random, pertencente à classe WordArray e
acessado através do módulo lib de CryptoJS, retorna um vetor de números aleatórios de 32 bits
�Word�, cujo tamanho é fornecido como parâmetro. Portanto, o comando
CryptoJS.lib.WordArray.random(16) é o correto para criar um IV formado por valores aleatórios.
8 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.
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.
9 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:
A
B
C
D
E
A
B
C
D
E
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.
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.
10 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.
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. Independentemente do 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.