Existe algum padrão de design, exceto MVC para web?

14

Eu quero saber se existem padrões de design para web além do MVC?

Eu sei que existem padrões de projeto como: Registry, Observer, Factory, ActiveRecord, ... e MVC, um conjunto de outros padrões de projeto e estrutura de pastas.

Existe um padrão de design como o MVC que é um conjunto de outros padrões de design?

Editar: minha linguagem de programação é PHP.

    
por smoqadam 26.07.2012 / 06:01
fonte

8 respostas

25

Existem diferentes padrões no desenvolvimento de software; MVP, MVVM, MVC, etc. são alguns dos mais conhecidos. No entanto, você precisa definir o problema específico ou a tecnologia que pretende resolver ou usar.

Cadaumdessespadrõesébompararesolveralgunsconjuntosespecíficosdeproblemas.Porexemplo,opadrão MVP (Model View Presenter) ajuda a introduzir a separação de interesses em Desenvolvimento de WebForms do ASP.NET. Consiste em dividir as responsabilidades de reunir, exibir e armazenar dados de uma página da Web em objetos separados: um objeto Model, um objeto View e um objeto Presenter.

O mais famoso livro de receitas gerais de padrões de design é padrões de design da Gang of Four (GoF) .

Editar: eu suponho que você esteja mais interessado em implementar padrões de projeto na plataforma .NET

    
por 26.07.2012 / 06:13
fonte
7

Um bom padrão, que eu vi em algumas semanas atrás, é MOVE . Parece um pouco mais sofisticado como MVC, mas é baseado no mesmo princípio. Uma desvantagem do MVC é que seus controladores podem ficar realmente grandes. Usando o padrão MOVE, você lidará com esse problema um pouco.

Outros padrões, nomeados pelos outros, também são boas alternativas.

    
por 26.07.2012 / 09:40
fonte
4

A primeira coisa a estabelecer é exatamente o que você precisa fazer, para decidir se um framework e / ou MVC (ou outro padrão de design) seria benéfico ou não.

Estruturas estão lá para fornecer uma plataforma consistente para o desenvolvimento, enquanto normalmente fornecem soluções para requisitos comuns de programação (como interação com o banco de dados, criação e validação de formulários, autenticação de usuários, etc.)

Para PHP, pelo menos, o MVC / HMVC tende a dominar as estruturas principais disponíveis (por exemplo, Zend , CakePHP , CodeIgniter etc.) mas existem muitos padrões de design diferentes que podem ser usados.

O MVC é tão popular porque oferece uma maneira estabelecida e compreendida de separar a modelagem de dados e a lógica de processamento da camada de visualização / apresentação (algo que é considerado desejável para produzir aplicativos robustos e escaláveis).

É importante notar (e como foi expressado por @Marjan Venema em um comentário à resposta de @ ElYusubov) que MVC, MVP, MVVM e os outros padrões MV x são (pelo menos em princípio) todos os mesmos 'padrões de design'.

Tipicamente, padrões de design diferentes servem (com muitas sutilezas) finalidades diferentes e, em vários casos, foram desenvolvidos com uma linguagem específica em mente. No entanto, um verdadeiro 'padrão de design' não é uma regra rígida e rápida para a programação e é realmente mais uma compreensão filosófica / idealógica da implementação de programas e requisitos de design e funções lógicas.

A pesquisa é a melhor maneira de descobrir diferentes princípios de programação e melhores práticas, aqui estão alguns links da Wikipédia para você começar:

Na prática, não há nada que impeça você de implementar seu próprio 'padrão'. A melhor maneira é aprender fazendo, pelo menos para mim eu não entendi completamente o padrão MVC até que comecei a escrever um site usando isso.

Depois de entender alguns dos conceitos de programação e melhores práticas, você pode usá-los para construir seu próprio sistema para resolver os problemas específicos que você está enfrentando e para atender às suas necessidades, esteja ou não em conformidade com um padrão estabelecido.

Se você não tem um conjunto específico de problemas para resolver, aprender uma das estruturas comuns é a sua melhor aposta.

    
por 26.07.2012 / 13:43
fonte
3

Um dos exemplos mais famosos é o Knockout.js que é um framework javascript que usa o padrão de design do MVVM . Há um ótimo artigo aqui no estouro de pilha comparando a estrutura do MVC Backbone.js vs Knockout.js .

Uma nota é que o padrão de design MVVM originou-se da Microsoft como uma especialização do padrão de projeto PM de Martin Fowler. O MVVM é usado extensivamente por aplicativos WPF.

    
por 26.07.2012 / 08:41
fonte
0

Como ElYusubov apontou, o framework ASP.Net tem padrões MVP e MVVM há muito tempo, se você estiver procurando por exemplos relativamente mainstream. Uma das principais diferenças entre MVC e MVVM é como suas entidades são atualizadas; O MVC é mais adequado à tradicional abordagem sem estado ou semi-stateless de aplicativos da web. O ASP.NET framework tentou contornar isso mantendo seu estado incorporado em um formulário (para que pudesse ser restaurado em cada solicitação), o que fazia com que os padrões MVP e MVVM fizessem mais sentido lá.

Com o HTML5, os aplicativos estão ficando cada vez mais carregados de JavaScript, com grande parte do estado deles no cliente. Isso pode levar a um ressurgimento dos frameworks MVVM, e o Knockout JS é um exemplo.

    
por 26.07.2012 / 08:17
fonte
0

A maioria dos padrões na natureza são MVC, ou algum sabor de MVC. Afinal, faz sentido dividir seus dados (Model), a representação (View) e interação com ele (Controller). Se você der uma olhada no MVC como ele foi fundado nos anos 80, você descobrirá que ele nunca foi feito para ser um framework web. Assim, achei que era muito sobrecarregado na web.

Um outro padrão bem conhecido seria a Arquitetura Orientada a Serviços (SOA). Construído sobre isso, uma abordagem moderna seria ter um MVC (ou sabor) no seu servidor, apenas para expor um serviço que você pode trabalhar. No lado do cliente, haveria um outro aplicativo de estilo MVC, por exemplo, um aplicativo da web com HTML5 e JavaScript (Twitter ou Linked In, por exemplo). O aplicativo cliente usaria seu serviço do lado do servidor (a "Visualização" do servidor) como seu Modelo. IMHO, isso seria estado da arte e, provavelmente, empurrar lado do servidor apenas MVC de lado.

    
por 26.07.2012 / 08:22
fonte
0

Estou pessoalmente procurando implementar algo que use a idéia da Representação de métodos de recursos , embora nesta fase seja principalmente apenas uma experiência mais do que qualquer outra coisa. Ele tem alguns pontos convincentes em que modela uma solicitação / resposta HTTP melhor que MVC (que é destinado a aplicativos de longa duração executados em um único computador, em oposição a sessões de solicitação / resposta de curta duração). No entanto, ele tem a desvantagem de que, se você colocar métodos em seus recursos para manipular GET, POST, PUT, DELETE, etc, seus recursos se tornarão acoplados ao front end. Estou pensando em separar isso em outra camada.

    
por 26.07.2012 / 09:43
fonte
0

Existem mais de 1000 maneiras, exceto MVC, algumas delas são similares a MVC e algumas totalmente diferentes

por exemplo:

  1. Model-Template-View - MTV
  2. Model – view – presenter - MVP
  3. Modelo Hierárquico – view – controller HMVC
  4. Visão do modelo ViewModel-MVVM

etc

    
por 19.05.2016 / 14:10
fonte