Prévia do material em texto
Avaliação de Desenvolvimento Java Web 1) O desenvolvimento back-end envolve a criação de lógica de negócio, gerenciamento de banco de dados e configuração de servidores, enquanto o desenvolvimento front-end se concentra na criação da interface do usuário e experiência visual. Com base nessas definições, assinale a alternativa correta. Alternativas: (X) O desenvolvedor back-end precisa conhecer tecnologias como Java EE e banco de dados. CORRETO ( ) A arquitetura de aplicativos web é uma preocupação exclusiva do desenvolvedor front-end. ( ) A maior parte do código que existe no mundo é o código de front-end. ( ) O desenvolvedor front-end trabalha principalmente com linguagens de programação como Java EE e PHP. ( ) No back-end, a lógica de negócio é criada utilizando linguagens como HTML e CSS. Resolução comentada: A arquitetura de aplicativos web é uma preocupação do desenvolvedor back-end, que lida com a camada de aplicação e a lógica de negócio. No back-end, são utilizadas linguagens como Java EE e PHP. O desenvolvedor back-end precisa conhecer tecnologias de programação e banco de dados, que são essenciais para sua rotina de trabalho. Por outro lado, o desenvolvedor front-end trabalha com a camada de apresentação, utilizando HTML, CSS e JavaScript. Justificativa • A arquitetura de aplicativos web é uma preocupação do desenvolvedor back-end, que lida com a camada de aplicação e a lógica de negócio. • Linguagens como Java EE e PHP são usadas no back-end, enquanto HTML, CSS e JavaScript são usadas no front-end. • O desenvolvedor back-end precisa conhecer tecnologias de programação e banco de dados, que são essenciais para sua rotina de trabalho. • O desenvolvedor front-end trabalha com a camada de apresentação, utilizando HTML, CSS e JavaScript. • A maior parte do código no mundo é de back-end, que suporta a lógica e o funcionamento dos aplicativos. 2) Sobre a arquitetura de três camadas, podemos afirmar que: I. As camadas de aplicação e de dados estão no back-end, responsáveis respectivamente pela lógica do negócio, bem como do armazenamento dos dados. II. A camada de aplicação consiste na interface do usuário, ou seja, o aplicativo que o usuário utiliza e realiza interação. III. A camada de aplicação é executada no back-end e é responsável pela conexão entre a camada de dados e a camada de aplicação. IV. As camadas de apresentação e de aplicação estão no front-end, e são responsáveis por receber os dados da camada de dados no back-end. V. A camada de dados, apesar de estar no back-end, também pode ser utilizada no front-end, a essa técnica damos o nome de back-end reverso. São verdadeiras: Alternativas: ( ) II - III. ( ) II - IV. ( ) IV - V. ( ) II - V. (X) I - III. CORRETO Resolução comentada: A afirmativa I é verdadeira, pois a Camada de Aplicação contém a lógica funcional dos negócios, o que impulsiona as capacidades essenciais de um aplicativo. É frequentemente escrito em Java, .NET, C #, Python, C ++ etc. De outro modo, a Camada de Dados compreende o sistema de armazenamento de dados e de acesso aos dados. Exemplos de tais sistemas são MySQL, Oracle, PostgreSQL, Microsoft SQL Server, MongoDB etc. A afirmativa II é falsa, pois a camada de aplicação encontra-se no back-end, e é responsável pela lógica dos negócios. Por outro lado, a camada de aplicação consiste na interface do usuário. A afirmativa III é verdadeira, pois a camada de aplicação é executada no back-end e é responsável pela conexão entre a camada de aplicação e a camada de dados. Esta conexão fica a cargo da camada de aplicação e do uso de APIs. A afirmativa IV é falsa, pois somente a camada de apresentação encontra-se no front-end. A camada de aplicação encontra-se no back-end. A afirmativa V é falsa, pois a camada de dados necessariamente precisa estar no back-end. O front- end é o computador do usuário, deste modo, se a camada de dados ficar no front-end, cada usuário necessita ter um banco de dados local. Se isso ocorrer, cada usuário terá um conjunto de dados diferente no mesmo sistema. 3) O Java EE ajuda as empresas a adotar processos Simples de desenvolvimento de aplicativos de software e reduz os custos de programação e treinamento, porque a plataforma de software ajuda os desenvolvedores a criar módulos Padronizados e Reutilizáveis. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: ( )Java EE; Diretos; Eficientes; Reutilizáveis. ( )Java; Escaláveis; Estáveis; Padronizados. ( )Java; Diretos; Eficientes; Eficazes. ( )Java; Simples; Padronizados; Estáveis. (X)Java EE; Simples; Padronizados; Reutilizáveis. CORRETO Resolução comentada: A alternativa está correta, pois a plataforma Java EE simplifica o processo de desenvolvimento de sistemas web, uma vez que possibilita a padronização e a reutilização de código, o que agiliza o desenvolvimento. 4) As consultas JPA são uma ótima maneira de abstrair nossa LÓGICA DE NEGOCIOS de nossa Camada de acessos a dados pois podemos contar com a sintaxe JPQL e permitir que nosso provedor JPA de escolha, como o hibernate, por exemplo, manipule a tradução da consulta. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: ( )JPA; Camada de acesso a dados; Lógica de negócios; SQL. ( ) SQL; Camada de acesso a dados; Lógica de negócios; SQL. ( ) SQL; Camada de negócios; Camada de acesso a dados; JPQL. (X) JPA; Lógica de negócios; Camada de acesso a dados; JPQL CORRETO ( )JPQL; Camada de negócios; Camada de acesso a dados; SQL. Resolução comentada: Na maioria das vezes, uma consulta JPA com sintaxe JPQL atende as necessidades de abstração da implementação real (lógica de negócios) do banco de dados (camada de acesso a dados). 5) Um Managed Bean contém a Lógica de negócios de uma aplicação web. Dentre as principais propriedades do Managed Bean no JSF destaca-se que ele deve possuir a anotação @ManagedBean, um construtor sem argumentos; e métodos públicos Get e set para suas variáveis privadas. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: ( ) Estrutura de dados; @ManagedBean; Com retorno; Com retorno. (X) Lógica de negócios; @ManagedBean; Sem argumentos; Get e set. CORRETO ( ) Lógica de negócios; @Override; Sem retorno; Sem retorno. ( ) Base de dados; @Override; Com retorno; Com retorno. ( ) Base de dados; @Override; Sem argumentos; Get e set. Resolução comentada: Um Managed Bean é uma classe regular Java que possui a lógica de negócios da uma aplicação. Ele deve possuir uma marcação @ManagedBean, caso contrário a classe apresentará um erro. Também deve possuir um método construtor com zero parâmetros e, por fim, métodos públicos get e set para as variáveis. 6) O JDBC é uma especificação de baixo nível se comparado ao JPA. A proposta do desenvolvimento do JDBC é de ser uma API para interagir com um banco de dados usando SQL puro - enviando consultas e recuperando resultados. Ao usar o JDBC, cabe a você traduzir o conjunto de resultados vindos do banco em objetos Java. Alternativas: JPA; JDBC; JPA; JPA. JDBC; JPA; JDBC; JDBC. CORRETO JDBC; JPA; JDBC; JPA. JPA; JDBC; JDBC; JDBC. JDBC; JPA; JPA; JDBC. Resolução comentada: JDBC é uma interface de programação de baixo nível entre um aplicativo Java e um banco de dados. Deste modo, usamos o JDBC para obter uma conexão com o banco de dados e, a partir desta conexão, podemos emitir comandos SQL puro. Logo, para utilizar o JDBC é importante que o desenvolvedor tenha um conhecimento de SQL. O JPA é uma especificação de alto nível, se comparada ao JDBC, uma vez que suas implementações são executadas acima do JDBC. 7) Leia o texto a seguir:No mundo do desenvolvimento web, a maioria dos desenvolvedores de back-end se preocupa em criar a lógica real por trás do aplicativo em que está trabalhando. Frequentemente, os desenvolvedores de front-end criarão uma interface do usuário e os desenvolvedores de back-end escreverão um código que fará com que tudo funcione. Deste modo, um desenvolvedor front-end pode criar uma tela em um aplicativo com um botão para pressionar para obter os dados do cliente. Por outro lado, um desenvolvedor de back-end pode escrever o código que faz esse botão funcionar, descobrindo quais dados buscar no banco de dados para o cliente apropriado e devolvendo-os ao front-end, onde é eventualmente exibido. Em relação às atribuições de um desenvolvedor e às necessidades em um ambiente back-end, marque a alternativa correta. Alternativas: A arquitetura de três camadas consiste em uma camada de aplicação no front-end e nas camadas de apresentação e dados no back-end. Os desenvolvedores de back-end precisam compreender profundamente de HTML e CSS, principalmente questões de design. Uma habilidade importante que os desenvolvedores de back-end precisam está relacionada aos sistemas de banco de dados. CORRETO A folha de estilo acelera o processo de desenvolvimento de aplicativos no back-end, assim como outras ferramentas, como Java EE. Tanto desenvolvedores back-end quanto de front-end compartilham das mesmas ferramentas de trabalho, por mais que o foco seja diferente. Resolução comentada: A alternativa correta é “Uma habilidade importante que os desenvolvedores de back-end precisam está relacionada aos sistemas de banco de dados”. A maioria dos sistemas back-end está conectada a algum tipo de banco de dados que armazena os dados para o aplicativo. Geralmente, é tarefa do desenvolvedor de back-end gravar, ler e processar dados de um banco de dados ou de outra fonte de dados, portanto, ter habilidades com banco de dados, por exemplo, com o SQL, é extremamente importante. 8) Sobre o modelo MVC e o desenvolvimento utilizando JavaServer Faces (JSF), analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso): (V) Managed Beans são objetos que podem ter seus valores acessados utilizando Expression Language. (V) O controller manipula as entradas do usuário, bem como realiza a interpretação e execução das tarefas requisitadas. (F) A view é responsável pela visualização, ou seja, é a interface gráfica, a qual controla o fluxo de execução da aplicação. (F) No JSF, ao utilizar Expression Language para acessar um atributo no Managed Beans, é necessário especificar o método get ou set. (V) A model é uma classe que permite a reutilização de um mesmo objeto em diversas views diferentes. Assinale a alternativa que contenha a sequência correta de V e F: Alternativas: • V – V – F – V – V. • V – V – F – F – V. CORRETO • F – F – V – V – F. • V – F – V – V – F. • F – V – F – F – V. Resolução comentada: A primeira, a segunda e a última afirmativas são verdadeiras. A terceira afirmativa é falsa, pois a view, apesar de ser a responsável pela visualização, é a interface da aplicação, não cabe a ela o controle do fluxo de execução da aplicação. Pelo contrário, cabe a ela apenas receber a entrada dos dados e apresentá-los na tela para o usuário. A quarta afirmativa é falsa, pois no JSF, você pode acessar os valores de um managed bean por meio da vinculação de valor utilizando a Expression Language (EL). No JSF, você não precisa especificar o método get() ou set(), mas apenas o nome da variável. 9) O Hibernate é um framework Java que implementa as especificações do JPA para persistência de dados. Trata-se de uma ferramenta ORM de código aberto e leve cujo objetivo é simplificar o desenvolvimento de aplicações Java para interagir com o banco de dados. Alternativas: • JDBC; As especificações; JPA - Java. • Hibernate; As especificações; JPA - ORM. CORRETO • JDBC; Os métodos; Java - Java. • JDBC; As especificações; Java - ORM. • Hibernate; Os métodos; Java - JPA. Resolução comentada: O JPA é um conjunto de especificações para persistência e acesso ao banco de dados. O JPA necessita de uma implementação de ORM (Object Relational Mapping) para trabalhar e persistir objetos em Java. Existem várias implementações do JPA e a principal delas é o Hibernate, um ORM que automatiza o mapeamento dos objetos da aplicação na base de dados. 10) JSP é útil para construir sites dinâmicos e acessar informações de banco de dados em um servidor web. Embora as páginas JSP possam ter Java intercalado com HTML, todo o código Java é analisado no servidor. Portanto, assim que a página chega ao navegador, é apenas HTML. Alternativas: • Servlet - dinâmicos - servidor web - web. • JSP - dinâmicos - servidor web - JSP. CORRETO • Servlet - web - repositório - JSP. • JSP - dinâmicos - repositório - web. • Servlet - web - servidor - web. Resolução comentada: JSPs, como servlets, são programas do lado do servidor executados dentro de um servidor HTTP compatível com Java. O JSP foi desenvolvido para criarmos conteúdo web dinâmicos, como, por exemplo, acessar um banco de dados no servidor e os retornar ao cliente. O JSP torna a criação e manutenção de páginas dinâmicas HTML muito mais fácil do que o servlet, por isso é mais conveniente para lidar com a apresentação.