Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisar envio do teste: ATIVIDADE 2 (A2) Teste ATIVIDADE 2 (A2) Status Completada Resultado da tentativa 9 em 10 pontos • Pergunta 1 1 em 1 pontos Para o envio das informações fornecidas pelo usuário por meio dos campos do formulário, pode-se contar com dois métodos: o método POST e o GET. O uso do método é especificado no argumento “ method ” da tag <form>. Para essa questão, analise as afirmações a seguir, associando o valor “V”, para o que for verdadeiro e, o valor “F”, para o que for falso. (_) A coleta do valor deve ser realizada por meio de uma função específica, da seguinte forma: var v = getDataForm(método, nome_campo); No caso, o método passado como argumento diferenciará entre “POST” e “GET”. (_) Para coletar a informação, basta acessar a variável “$_GET” ou “$_POST”, referenciando o nome do campo do formulário da seguinte forma, por exemplo, para acessar um campo denominado “telefone” do formulário: var v = $_POST(“telefone”). (_) É possível passar, ao servidor, informações ocultas ao usuário por meio de campos com atributo “ hidden ” ao parâmetro type . (_) Pode-se usar diretamente os nomes dos campos definidos na criação do formulário, porém, para isso, é aconselhável usar, antes, o método import_request_variables(). Assinale a opção que contenha a sequência correta. Resposta Selecionada: F; V; V; V. Resposta Correta: F; V; V; V. Feedback da resposta: Resposta correta. Sua resposta está correta. Realmente a coleta dos valores do formulário poderá ser feita de duas formas: utiliza-se as variáveis super globais “$_POST” ou “$_GET” ou, ainda, pode-se utilizar as variáveis que o desenvolvedor atribuiu aos campos do formulário. Porém, neste último caso, deve-se sincronizar as variáveis pelo uso do método import_request_variables() ou garantindo-se que a diretiva do PHP “register_globals” esteja setada. • Pergunta 2 1 em 1 pontos Muito se fala em aplicar padrões de projeto ( design pattern ) para o desenvolvimento de sistemas computacionais, dentre os quais encontram-se as páginas web . Para essa questão, considere as afirmativas abaixo. I. Possibilidade de reutilização de código, ou seja, usar componentes já utilizados em outros projetos; II. Decomposição do sistema em camadas funcionais; III. Separação de partes dependentes daquelas independentes do ambiente no qual o sistema será executado. IV. Possibilidade de uma documentação mais completa e concisa. Associe as afirmativas acima com as possíveis consequências: (_) melhor abstração do sistema, deixando-o mais legível para a codificação, depuração, correção e manutenção; (_) maior facilidade para a portabilidade dos sistemas para outros ambientes computacionais; (_) facilitar o diálogo entre as equipes que atuarão no desenvolvimento do projeto; (_) diminuição do tempo gasto para a implementação do sistema, acarretando, consequentemente, diminuição dos gastos. Assinale a opção que contenha a sequência correta de relações entre as afirmativas e as consequências. Resposta Selecionada: II; III; IV; I. Resposta Correta: II; III; IV; I. Feedback da resposta: Resposta correta. Sua resposta está correta. Realmente a adoção de padrões de projeto acarretam em vários benefícios, tais como: benefícios em prol da diminuição dos custos, melhor manutenibilidade, mais praticidade para a portabilidade do sistema para outros ambientes. Um fator que não podemos deixar de citar é a documentação que os padrões produzem, propiciando trabalhos futuros mais profícuos, não somente em relação ao próprio projeto, como também em projetos futuros, que poderão ser espelhados além de que, uma boa documentação facilita a interação entre os diversos membros e grupos que atuarão no desenvolvimento do projeto. • Pergunta 3 1 em 1 pontos Várias páginas oferecem a possibilidade de interação com o usuário por meio de formulários. Para um processamento correto, as informações fornecidas devem ser validadas, para que possam ser processadas no servidor. Considerando isso, analise as afirmações a seguir. I. Em um modelo de III camadas, a validação do formulário deve ocorrer na camada I, tanto em relação à estrutura, quanto em relação à regra de negócio. II. A validação de estrutura deve ocorrer na camada I e a validação em relação às regras de negócio na camada II. III. É comum usar, para a validação em relação à estrutura, JavaScript e, para as regras de negócio, comumente usa-se PHP. IV. Toda validação é realizada na camada II, aplicando-se funções escritas em PHP. A partir das observações realizadas, marque a alternativa correta. Resposta Selecionada: As afirmativas II e III são verdadeiras. Resposta Correta: As afirmativas II e III são verdadeiras. Feedback da resposta: Resposta correta. Sua resposta está correta. Realmente, para uma melhor estruturação, aproveitamento dos recursos (tanto de processamento, quanto de comunicação), divide-se o sistema em camadas. A camada I, mais próxima ao usuário, é responsável pela interatividade. Dessa forma, encontramos nela, os formulários. Sendo assim, a parte da estrutura das informações fornecidas deverá ser tratada nesta camada. Por outro lado, as regras de negócio são específicas a cada aplicação. Desta forma, a validação e o processamento inerente às regras de negócio fazem parte da camada II. • Pergunta 4 1 em 1 pontos Em algumas páginas, após um tempo de inatividade, surgem alguns elementos como, por exemplo, a abertura de uma janela de chat oferendo ajuda para navegar na página. Para essa questão, suponha o código a seguir, para implementar esse recurso do chat: <html> <head> <title>Inicia Página</title> <script language="JavaScript"> function IniciaPagina() { ___(___, 1000); } function AbreChat() { //aqui conteria o código do chat... } </script> </head> <body ___="___()"> Restante da página... </body> </html> Preencha os espaços com os elementos abaixo enumerados. I. onload II. IniciaPagina III. setTimeout IV. setInterval V. AbreChat Assinale a opção que contenha a sequência correta. Resposta Selecionada: III; V; I; II. Resposta Correta: III; V; I; II. Feedback da resposta: Resposta correta. Sua resposta está correta. Para eventos que ocorram apenas uma vez, usa-se o setTimeout. Por outro lado, para eventos periódicos e cíclicos, usa-se o método setInterval. • Pergunta 5 1 em 1 pontos Páginas responsivas poderão ser construídas por meio da combinação de scripts JavaScript com as folhas de estilo CSS. Uma das formas é adicionar ou retirar regras CSS. Porém, quando se codifica páginas, sempre há uma preocupação frente à versão ou ao tipo de navegador que o usuário poderá usar para abrir as referidas páginas. Para essa questão, analise os elementos de codificação que poderão ser usados em suas páginas. I. if(obj.addRule) {obj.addRule(seletorCSS,defEstilo, índice);} else {obj.insertRule(seletorCSS,defEstilo, índice);} II. $(document).ready(function(){ código para verificar o tipo do ambiente para, depois, manipular CSS }); III. var v = document.createElement(“style”); body.appendChild(v); IV. var v = document.createElement(“style”); head.appendChild(v); Marque a opção correta. Resposta Selecionada: Pode-se usar os códigos numerados como I, II e IV. Resposta Correta: Pode-se usar os códigos numerados como I, II e IV. Feedback da resposta: Resposta correta. Sua resposta está correta. A afirmação I codifica a adição de uma regra CSS. Porém, dependendo do navegador, é implementado o método “addRule” ou “insertRule”. Sendo assim, há um teste para verificar se o método “addRule” existe.Na codificação da afirmação II, as alterações de CSS é realizada apenas após o teste de verificação de ambiente. Por fim, no código da afirmação III, existe um erro no local da inserção. Na verdade, deveria ser head.appendchild() • Pergunta 6 1 em 1 pontos Suponha que você tenha que implementar um projeto que relaciona a classe pessoa (que contém o método locomover ) a três tipos de veículos: carro (métodos acelera e freia ), bicicleta (métodos pedala e freia ) e moto (métodos acelera e freia ). Para melhorar o projeto, pode-se, por exemplo, adotar o padrão strategy . Para essa questão, suponha as afirmativas abaixo. I. A nova versão implementaria uma interface do tipo veículo , que contém os métodos acelera e freia. II. A nova versão implementaria uma nova classe do tipo veículo , que contém os métodos acelera e freia. III. Na nova versão, as classes carro , bicicleta e moto implementariam a interface veículo. IV. Na nova versão, as classes carro , bicicleta e moto fariam parte da composição da classe veículo . V. Na nova versão, as classes carro , bicicleta e moto fariam um relacionamento de cardinalidade 1:1 para a interface veículo. Assinale a alternativa correta. Resposta Selecionada: As afirmativas I e III são verdadeiras. Resposta Correta: As afirmativas I e III são verdadeiras. Feedback da resposta: Resposta correta. Você assinalou a alternativa correta. O padrão strategy sempre implicará em criação de uma interface para que haja apenas um ponto de relacionamento entre o agente e os métodos relativos às classes aglutinadas pela interface. • Pergunta 7 1 em 1 pontos Temos inúmeros padrões de projeto que podemos aplicar no desenvolvimento de nossas páginas, dentre os quais, podemos mencionar o padrão GOF e o padrão MVC. Analise as afirmações abaixo, classificando-as como “V”, se forem verdadeiras, ou “F”, se forem falsas. (_) O padrão GOF é mais restritiva, ou seja, analisa um aspecto em específico. (_) O padrão GOF contempla três grupos: criação; estrutural e comportamental. (_) O padrão GOF é o preferido para a implementação de páginas. (_) O padrão MVC é totalmente divergente em relação ao GOF. Assinale a alternativa que que apresenta a sequência correta. Resposta Selecionada: F; V; V; F. Resposta Correta: F; V; V; F. Feedback da resposta: Resposta correta. Resposta correta. Realmente o padrão MVC é o preferido para a implementação das páginas, pois realiza a abstração do sistema sob vários pontos de vista. Essa decomposição funcional e estrutural, utilizando elementos do GOF, permite que os vários aspectos demandados pelas páginas possam ser supridos. • Pergunta 8 1 em 1 pontos Dentro da programação, independentemente de ser a codificação de um sistema baseado em páginas web ou não, temos sempre a preocupação de sua escalabilidade. Por exemplo, vamos supor que temos a necessidade de criar uma página para e-commerce e que são estabelecidos descontos diferenciados para cada tipo de forma de pagamento. Suponha que um programador fez uma primeira versão da seguinte forma (código em PHP): public function retornaDesconto($formaPG,$valor_compra) { if($formaPG==”Boleto”) {return $valor_compra*0.9;} else if($formaPG==”Debito”) {return $valor_compra*0.95;} else {return $valor_compra;} } Na implementação acima, temos o inconveniente de que, quando houver a necessidade de adicionar mais uma forma de pagamento, deveremos adicionar mais uma estrutura do tipo “else if... else”. Diante da situação, foram apresentadas algumas soluções: Solução 1: criar uma classe para cada tipo de forma de pagamento. Todas as classes teriam um método para retornar o valor com desconto – o nome e a lista de parâmetros seriam os mesmos para todas as classes. Por exemplo, para a classe boleto, a implementação seria: class Boleto { public function ValorComDesconto($valor_compra) { return $valor_compra*0.9; } } Solução 2: criar uma interface na qual todas as classes devem implementá-la. Assim, a solução ficaria: interface formaPG { public function ValorComDesconto($valor_compra); } class Boleto implements formaPG { public function ValorComDesconto($valor_compra) { return $valor_compra*0.9; } } Diante dessas duas versões de implementação, analise as afirmações a seguir. I. Não implementaria a “solução I” pois, assim que for determinado o tipo de pagamento, para criar um objeto relativo à classe pertinente deve-se fazer uma estrutura de “if...else if...” II. Implementaria ambas as soluções, pois ambas apresentam as mesmas vantagens e desvantagens. III. Não implementaria a “solução II” pois as classes ficariam não flexíveis, ou seja, todas deveriam seguir o mesmo padrão, o que dificultaria a reutilização do código. IV. Implementaria a “solução II”, pois a modificação do código para inserir ou retirar uma forma de pagamento, ficaria mais ágil e fácil de ser realizada. V. Implementaria a “solução I”, pois é mais fácil de entender. Diante das afirmações acima, selecione a opção correta. Resposta Selecionada: As afirmativas I e IV são verdadeiras. Resposta Correta: As afirmativas I e IV são verdadeiras. Feedback da resposta: Resposta correta. Sua resposta está correta. A “solução 2” representa um padrão chamado de Strategy (estratégia). É um dos padrões GOF usados para a linha comportamental do sistema. • Pergunta 9 1 em 1 pontos Às vezes, programar diretamente usando JavaScript, principalmente quando temos que manipular CSS torna-se uma tarefa árdua. Sem contar pelo fato de que o JavaScript pode ter problemas de compatibilidade entre os navegadores. Diante destes e outros motivos, surgiu a biblioteca JQuery. Analisando as afirmativas a seguir, assinale com “V”, o que for verdadeiro e com “F”, o que for falso. (_) Pelo fato de ser inserida uma camada a mais (representada pelo JQuery), o tempo de processamento foi aumentado em demasia – não compensando o uso de JQuery. (_) O JQuery substituiu, com grande vantagem, as animações em Flash. (_) O JQuery, em relação ao lado do programador, fez com que fossem economizadas várias linhas de código. (_) O JQuery mantém compatibilidade com diversos tipos e versões de navegadores. Assinale a opção que contenha a sequência que você julgue como sendo a correta. Resposta Selecionada: F; V; V; V. Resposta Correta: F; V; V; V. Feedback da resposta: Resposta correta. Sua resposta está correta. O JQuery é uma biblioteca pequena que não introduziu atrasos significativos e nem consumo excessivo extra de memória para o seu processamento. Substituiu o Flash e consegue ter uma compatibilidade cross-browser (entre navegadores). • Pergunta 10 0 em 1 pontos Padrões de projeto tem o objetivo de auxiliar o processo de projeto e implementação de sistemas computacionais, dentre os quais podemos relacionar as páginas web . Dentre os padrões existentes, podemos citar o GOF que consiste de uma coleção de padrões classificados em padrões de criação, padrões estruturais e padrões comportamentais. Muitos destes padrões compõem, ainda, o padrão MVC. Para essa questão, encontramos, abaixo, uma definição sumária de quatro destes padrões: I. Composite : permite a composição de objetos estabelecendo-se uma árvore de hierarquia e relacionamentos entre objetos que compõem a estrutura. II. Applicability : independentemente da estrutura do objeto, todos os objetos de uma estrutura são tratados de forma uniforme, desprezando-se as diferenças entre eles. III. Facade : esse padrão objetiva a construção de uma interface unificada para a integração de um conjunto de interfaces. IV. Data Access Object : realiza a mediação entre a aplicação propriamente dita e a base de dados. Dados os exemplos de uso, numere-os de forma a estabelecer um relacionamentoentre os padrões apresentados acima e os exemplos de uso. (_) Permite um baixo acoplamento e uma simplificação em relação à manutenção do sistema. (_) Pode ser usado em ambientes que permitam uma editoração gráfica, na qual a figura consiste de uma árvore de objetos. (_) Criar subcamadas do sistema, permitindo uma abstração em um nível acima. (_) Em um editor gráfico, todos os objetos gráficos, independentemente de suas composições, podem ser reunidos em uma classe abstrata, que incorpora as particularidades de todos os abrangidos. Assinale a alternativa que contenha a sequência correta. Resposta Selecionada: III; I; IV; II. Resposta Correta: IV; I; III; II. Comentários da Resposta: Respostas incorretas. Sua resposta está incorreta. Para essa questão, dê atenção aos nomes e à própria descrição do padrão. A seguir, tente imaginar, no cenário da aplicação, as funcionalidades do padrão.
Compartilhar