De que se trata o artigo: Apresenta a experiência do desenvolvimento de uma aplicação web de compra coletiva usando a arquitetura MVC e explorando os recursos do framework CodeIgniter.
Em que situação o tema é útil:
O artigo destaca que manutenção e reuso de software são preocupações de um engenheiro de software e ilustra como
essas questões podem ser tratadas através da apresentação do desenvolvimento de uma aplicação web usando a
arquitetura MVC e framework CodeIgniter.
Resumo: Este artigo apresenta a engenheiros e projetistas de software os benefícios, do ponto de vista da manutenção e reuso de software, proporcionado pela arquitetura MVC no desenvolvimento de aplicação web quando implementado com os recursos oferecidos por um framework.
Software é um artefato sujeito a mudanças e manutenção de software deve ser preocupação contínua do engenheiro de software. Ao longo das duas últimas décadas, diversos esforços têm sido observados visando facilitar o desenvolvimento de software. Como exemplo disso, destacam-se as contribuições de padrões de projeto, tais como observer, composite e strategy. Principalmente no decorrer da última década, houve crescimento no uso de padrões de projetos na engenharia de software. Isso ocorreu, em parte, devido ao crescimento da complexidade dos sistemas e a necessidade de reutilização do software.
Os padrões de projetos possibilitam que classes de sistemas orientados a objetos sejam flexíveis, possibilitando ao projetista de software reutilizar componentes e/ou técnicas que já tiveram êxito em outros sistemas, como também ajudam os desenvolvedores a buscar minimizar erros cometidos em projetos anteriores.
Nota-se que esses padrões possuem um relacionamento direto com uma arquitetura que atende a necessidades da programação orientada a objeto, denominada de MVC (Model-View-Controller). O componente model dessa arquitetura é o objeto que interage diretamente com o banco de dados, enquanto que view é o objeto que representa o conteúdo exibido na tela, e controller define a maneira como a interface de usuário reage com a camada de dados. Isso possibilita um desenvolvimento em paralelo já que os três componentes são independentes, além de facilitar a manutenção.
Adicionalmente, o uso difundido do paradigma de orientação a objetos e propostas de novas arquiteturas de software tem fomentado o surgimento de frameworks que suportam um conjunto de API’s e bibliotecas, visando facilitar a reutilização e a manutenção dos códigos. Hoje, vários deles estão disponíveis para diferentes linguagens de programação. Por exemplo, na linguagem PHP existem diversos frameworks como o Cake, CodeIgniter e o Zend.
Os frameworks oferecem facilidade de desenvolvimento e há expectativa que seu uso possa propiciar minimização do esforço aos programadores, o que pode resultar em suporte à produtividade. Nesse sentido, este artigo apresenta uso da arquitetura MVC, avaliando suas vantagens e limitações no desenvolvimento de uma aplicação web de compra coletiva. Para o desenvolvimento da aplicação foi utilizado o framework CodeIgniter e a arquitetura MVC, discutida a seguir.
Arquitetura MVC
O aumento da complexidade e tamanho do software pode causar dificuldades na manutenção do software. O crescimento contínuo dos sistemas de software requer que seu desenvolvimento seja feito de maneira planejada e componentizada, de modo a tornar os sistemas mais flexíveis, facilitando a manutenção e seu desenvolvimento. Por exemplo, com o uso da arquitetura em camadas, é possível separar os dados de persistência, da lógica do sistema e da interface do usuário, facilitando o desenvolvimento e a manutenção.
A arquitetura MVC (Model-View-Controller) foi criada nos anos 80 na Xerox Parc, tendo como princípio a separação entre a camada de persistência da camada de apresentação do usuário. Para isso, foi criada uma arquitetura com três camadas, onde cada camada é representada por um objeto. O modelo é o objeto de persistência, a visão é o objeto de interface com o usuário e o controlador define como as interfaces do usuário irão reagir com o sistema. Esses objetos podem se comunicar entre si. A arquitetura MVC é atualmente utilizada em diversos frameworks de várias linguagens como JAVA, PHP e .NET devido às vantagens que oferece, tais como reuso do código e maior facilidade de manutenção do software.
Segundo Brian Kotek, MVCéum padrão de projetoque reforçaa separaçãoentre entrada, processamento esaídade uma aplicação.Para este fim,uma aplicaçãoé dividida emtrês componentes principais: o modelo, a visãoe o controlador.Cada um desses componenteslida com um conjuntoespecífico de tarefas. A Figura 1 mostra o funcionamento da arquitetura MVC.
Observa-se que as camadas View (Visão) e Model (Modelo) comunicam-se através de um Controller (Controlador) que recebe os dados de entrada do usuário através da View e envia os dados para o Model onde os dados são processados e retornados para a View. A camada View é a interface que o usuário interage. Em uma aplicação web, por exemplo, essa camada pode ser representada por um código HTML. O Model representa a camada de persistência de dados, essa camada é responsável por receber os dados vindos da View, processá-los e enviá-los de volta a View. O Controller interpreta requisições vindas do usuário através da View e faz a chamada do Model necessário para interpretar a requisição.
Segundo Gamma et al (2006), ”A abordagem MVC separa a View e Model pelo estabelecimento de um protocolo inserção/notificação (subscribe/notify). Uma View deve garantir que sua aparência reflita o estado do Model. Sempre que os dados do Model mudam, o Model notifica as Views que dependem dele. Em resposta, cada View tem a oportunidade de atualiza-se”.
A Figura 2 ilustra como as Views estão relacionadas a um único Model. Nesse exemplo, qualquer alteração do valor em Model resulta que todas as Views sejam notificadas da alteração e automaticamente atualizadas em conformidade com os dados de Model.
Nota-se ainda na ...
Confira outros conteúdos:
Teste de Acessibilidade de Software
Boas Práticas em TDD
Principais Anomalias Arquiteturais de...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.