Foram encontradas 57.071 questões.
Code Smells são indicadores de código de baixa qualidade, isto é, código difícil de manter, entender, modificar ou testar (Valente, 2020). Avalie o trecho de código a seguir (em linguagem JAVA).
class Cliente {
private String nome;
private int comprasNoAno;
private double valorTotal;
public int score() {
return (int) (comprasNoAno * 2 + valorTotal / 100.0);
}
public int getComprasNoAno() { return comprasNoAno; }
public double getValorTotal() { return valorTotal; }
}
class Pedido {
public int scoreDoCliente(Cliente c) {
// cálculo direto a partir dos dados do Cliente
return (int) (c.getComprasNoAno() * 2 + c.getValorTotal() / 100.0);
}
}
Fonte: dados do elaborador
Assinale a alternativa que representa o code smell melhor caracterizado no trecho de código.
Provas
Provas
Sobre os princípios S.O.L.I.D., selecione a alternativa INCORRETA.
Provas
- Fundamentos de ProgramaçãoAlgoritmosConceitos Básicos de Algoritmos
- Fundamentos de ProgramaçãoEstruturas de DadosDefinição: Estrutura de Dados
- Fundamentos de ProgramaçãoEstruturas de DadosEstrutura de Dados: Pilha
- Fundamentos de ProgramaçãoTipos de Dados
Considere a seguinte sequência de ações realizadas por um usuário:
Entrou na página A;
Entrou na página B;
Entrou na página C;
Clicou em voltar;
Entrou na página D;
Clicou em voltar;
Clicou em voltar;
Com base nesse comportamento, assinale a alternativa que representa CORRETAMENTE a página que o usuário está visualizando no momento:
Provas
Em Programação Orientada a Objetos (POO), a sobrecarga de métodos ocorre quando um mesmo identificador representa várias implementações distintas (Deitel; Deitel, 2016). Embora os identificadores dos métodos sobrecarregados sejam os mesmos, suas assinaturas devem ser diferentes.
Considere o código Java a seguir:
class Calculadora {
public int somar(int a, int b) {
return a + b;
}
}
Fonte: dados do elaborador
Todas as alternativas representam uma sobrecarga válida do método somar da classe Calculadora, EXCETO:
Provas
Sobre o método de ordenação por inserção, assinale a alternativa INCORRETA:
Provas
- Fundamentos de ProgramaçãoEstruturas de DadosDefinição: Estrutura de Dados
- Fundamentos de ProgramaçãoHashing
Considere que a i-ésima letra do alfabeto é representada pelo número i (A = 1, B = 2, C = 3, …) e que o valor da chave K é obtido pela soma dos valores das letras da palavra.
Dada a função de transformação h(K) = K mod 7, qual alternativa apresenta CORRETAMENTE os endereços gerados para as chaves CASA e BOLA, respectivamente?
Provas
Um método recursivo é aquele que chama a si mesmo, direta ou indiretamente. Métodos recursivos permitem uma descrição mais clara e concisa dos algoritmos, especialmente quando o problema a ser resolvido pode ser definido em termos recursivos. No entanto, isso não significa que um método recursivo será sempre a melhor opção para resolver um problema (Ziviani, 2012).
O código em Python, a seguir, tem como objetivo calcular, recursivamente, o n-ésimo número de Fibonacci. Esse código é extremamente ineficiente, pois recalcula o mesmo valor várias vezes. Por exemplo, para calcular fib(5) são necessários os valores de fib(4) e fib(3). Entretanto, fib(4) também chama recursivamente fib(3).
def fib(n):
if n < 2:
return n
else:
return fib(n - 1) + fib(n - 2)
Fonte: Dados do elaborador
Considerando a execução do código apresentado para n = 5, assinale a alternativa que representa CORRETAMENTE o número de chamadas de fib(5), fib(4), fib(3), fib(2) e fib(1), nessa ordem.
Provas
Considere a seguinte situação hipotética:
Uma equipe de engenharia DevOps está implantando uma aplicação web em um cluster Kubernetes, utilizando objetos do tipo Deployment para garantir alta disponibilidade e atualização controlada da aplicação.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Fonte: dados do elaborador
Durante a implantação, foi utilizado o seguinte manifesto Kubernetes:
Considerando os conceitos de Pods, Deployments e exposição de aplicações em Kubernetes, analise as afirmativas a seguir.
I. A partir do campo replicas: 3, o Kubernetes deverá manter três Pods derivados do template especificado em spec.template, cada um executando um contêiner com a imagem nginx:1.25.
II. O campo selector.matchLabels determina quais Pods pertencem ao Deployment, devendo corresponder aos rótulos definidos em spec.template.metadata.labels.
III. A definição containerPort: 80 faz com que o Kubernetes crie automaticamente um Service para permitir acesso externo à aplicação.
IV. O Deployment gerencia a execução dos Pods por meio de ReplicaSets, responsáveis por garantir que o número desejado de réplicas esteja em execução.
V. No Kubernetes, contêineres podem ser executados diretamente nos nós do cluster, sem necessidade de encapsulamento em Pods.
Assinale a alternativa CORRETA:
Provas
Em arquiteturas modernas baseadas em contêineres, aplicações web frequentemente são executadas em múltiplos serviços isolados. Um padrão comum consiste em utilizar NGINX como servidor web e proxy reverso, encaminhando requisições PHP para um contêiner que executa PHP-FPM, enquanto o banco de dados MySQL é executado em outro contêiner dentro da mesma rede Docker.
Considere o seguinte Dockerfile, utilizado para construir a imagem da aplicação PHP:
FROM php:8.2-fpm
WORKDIR /var/www/html
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader
COPY . .
VOLUME ["/var/www/html/uploads"]
EXPOSE 9000
CMD ["php-fpm"]
Considere ainda que o contêiner do NGINX está configurado para encaminhar requisições PHP ao serviço php na porta 9000, por meio de FastCGI, em uma rede Docker compartilhada.
Com base nos conceitos de contêineres Docker, comunicação entre serviços, volumes persistentes e boas práticas de construção de imagens, analise as afirmativas a seguir.
I. A instrução EXPOSE 9000 documenta a porta utilizada pelo contêiner e indica que o serviço escuta nessa porta, mas não publica automaticamente essa porta no host.
II. A comunicação entre os contêineres NGINX e PHP-FPM ocorre diretamente pelo nome do serviço (por exemplo, fastcgi_pass php:9000), desde que ambos estejam conectados à mesma rede Docker.
III. A declaração VOLUME ["/var/www/html/uploads"] permite que dados gerados pela aplicação, como arquivos enviados por usuários, sejam persistidos independentemente do ciclo de vida do contêiner.
IV. Para que o serviço php-fpm seja acessível a partir de outro contêiner na mesma rede Docker, é obrigatório que a porta seja publicada no host, utilizando a opção -p ou a diretiva ports no Docker Compose.
V. A instrução CMD ["php-fpm"] define o processo principal do contêiner, responsável por manter o contêiner em execução e processar requisições FastCGI encaminhadas pelo servidor NGINX.
Assinale a alternativa CORRETA:
Provas
Caderno Container