O padrão MVC é muito usado na indústria? Qual é todo o hype? [fechadas]

16

Sou estudante, mas espero estar mudando para a indústria de software em breve. Parece haver muita publicidade sobre o padrão de software MVC. Percebi que os frameworks PHP geralmente são MVC, e as linguagens que não são da Web ... é o mesmo com elas? Para minha dissertação de mestrado (C ++), escolhi o padrão MVC porque ele separa bem a lógica e a interface do usuário.

Na indústria é usado muito? Em caso afirmativo, quais são os principais motivos e quais são outros designs populares e concorrentes?

cerveja
fonte
13
MVC é simplesmente uma implementação popular de separação de preocupações. SoC é o que é importante, não o próprio MVC.
Raynos
1
Você pode querer verificar 'Catálogo de arquitetura de aplicações corporativas' de Martin Fowler para algumas alternativas / variações sobre MVC que pode atender aplicações mais específicas: martinfowler.com/eaaCatalog/index.html
Mchl
3
Observe também que muitas coisas rotuladas como 'MVC' na verdade não são realmente MVC, mas seguem o modelo de aplicativo multicamada (mais recente): armazenamento de dados - lógica - apresentação (que, de qualquer maneira, IMHO, faz mais sentido).
tdammers
O MVC é anterior à programação da Web, se isso lhe disser alguma coisa.
Jeremy

Respostas:

6

O MVC recebe muito hype e uso porque é um padrão muito útil para seu domínio.

O MVC incentiva a separação de preocupações. Isso pode simplificar o desenvolvimento se for feito corretamente. Qualquer aplicativo que exiba e / ou modifique os dados contidos em um armazenamento de dados terá a funcionalidade MVC, mas não poderá ser separado. Não dividir os componentes provavelmente introduzirá acoplamentos indesejáveis ​​entre as preocupações.

Com o MVC, deve ser relativamente fácil alterar a interface front-end (Visualização) de um aplicativo sem modificar o controlador ou o modelo. Isso pode ser desejável se você precisar permitir o acesso de um smartphone, da Web e de um ou mais aplicativos.

Para equipes grandes, o MVC pode permitir um melhor uso dos recursos, pois os desenvolvedores podem receber tarefas em uma das camadas e podem não precisar de muita habilidade nas outras camadas. Dependendo da sobrecarga dos recursos de coordenação, isso pode ser mais eficiente.

BillThor
fonte
12

Sim, é muito usado. Os aplicativos para iPhone / iPad são configurados como MVC. Eu tenho visto muitos aplicativos asp.net MVC ultimamente.

O MVC permite mais flexibilidade no caminho e realmente incentiva os desenvolvedores a escrever código separado para cada função. Facilita a manutenção.

Trevor
fonte
A estrutura Cocoa da Apple (usada no MacOS X) é a evolução do NextStep, que data do final dos anos 80. NextStep, Cocoa e Cocoa Touch (usados ​​no iOS) compartilham o uso pesado do MVC.
Caleb
4

Está em voga no momento.

Nunca subestime o poder do hype. Em breve, alguém descobrirá algo mais novo, mais brilhante e fácil de entender, e todo mundo estará condenando o MVC como a raiz de todo mal (aconteceu com os webforms), ou haverá tantas pessoas usando isso que os veteranos mais grisalhos decodifique-o como uma coisa "touro de gerenciamento * * " (aconteceu com o XML). Ou haverá uma mudança para outro padrão, porque o MVC "não é flexível o suficiente para o problema super difícil que eu preciso resolver" (linguagens de tipo estático versus linguagens dinâmicas).

No final do dia, o MVC é uma abordagem de estrutura adequada para vários problemas que a programação da web apresenta. Ficará por aí por um tempo, mas imagino que a razão pela qual a maioria das pessoas o esteja usando seja a conformidade com os chavões.

EDITAR

Observe: estou ciente de que o padrão MVC existe há anos e foi usado em estruturas antes do asp.net MVC. Só estou dizendo que é bastante popular no momento, por isso está ganhando mais destaque do que outras abordagens. Uso o MVC para todos os meus projetos pessoais e também o utilizo em projetos comerciais (sou desenvolvedor .net).

Este não era um discurso retórico.

Ed James
fonte
7
-1 para: 'No momento', a menos que você considere, por exemplo, o início do Smalltalk ou Java / Swing como uma tecnologia do momento, o MVC é um pouco velho demais para isso.
keppla
4
Exceto que "no momento" é bastante preciso; Até pouco tempo, o MVC estava acostumado, exceto no mundo Java. Em qualquer outro lugar, não foi usado até quando o Rails se tornou popular.
Wayne Molina
4
A maioria dos frameworks de GUI (não-html) que encontrei usava MVC, não parecia 'pouco usado' para me reunir nos últimos 10 anos.
keppla
1
Na verdade, o MVC já foi superado pelo MVP em algumas partes do universo.
Tom Anderson
3
Pessoalmente, eu odiava Webforms muito antes do ASP.NET MVC ser um conceito. Às vezes, as coisas são populares porque na verdade são a melhor opção na maioria dos casos - e sim, elas podem ser substituídas por algo mais novo e mais poderoso, mas e daí? Isso é progresso, não hype.
Aaronaught
3

Pela minha experiência, ele não é usado tanto quanto deveria. É um modelo muito melhor do que algumas das alternativas, mas está recebendo muito hype nos últimos anos; por causa disso, existem muitos itens herdados que as pessoas têm medo de converter para MVC ou de usar MVC para trabalhos futuros, porque estão fora da zona de conforto.

Wayne Molina
fonte
1

Acho que você descobrirá que a família Stack Exchange é executada no MVC

Garry
fonte
Incrível, não sabia que +1
ale
1

O ASP.NET MVC ganhou muito destaque nos aplicativos da Web, pois o .NET é muito usado no setor.

Os aplicativos Web da Microsoft evoluíram do ASP clássico para o ASP.NET, que é baseado em Web Forms (para permitir que as habilidades que os desenvolvedores do VB6 Win Forms já precisavam ser facilmente traduzidas para a nova fronteira da Web).

Infelizmente, os Web Forms são baseados em estado e o HTTP (no qual a web é baseada) é sem estado, portanto, foram necessárias muitas soluções desagradáveis ​​devido a coisas como os estados de exibição.

O ASP.NET MVC permite que as habilidades dos desenvolvedores dos WebForms sejam traduzidas para uma estrutura da Web com bom SoC e que tenha se esforçado bastante para ser testável (como o WebForms não é muito testável, a equipe do MVC colocou muitos esforço na estrutura).

Dito isto, não é uma bala de panacéia / prata e, como em qualquer estrutura, há momentos para usá-lo e momentos para não usá-lo. Espero que as pessoas não o usem para tentar resolver tudo, afinal: quando sua única ferramenta é um martelo, todo problema parece um prego.

StuperUser
fonte
1

É apenas um momento na história, pois o MVC é um par de conceitos muito simples que, por acaso, receberam hype de algumas estruturas específicas, que o destacam em seu material de marketing. Também acontece com muitas das boas práticas que surgiram no desenvolvimento de software. Isso se aplica duas vezes ao desenvolvimento pseudo-stateful, como HTTP; tanto que só conheço outro "padrão" verdadeiramente diferente usado no mundo da web - o modelo baseado em eventos muito difamado do ASP.Net WebForms.

Sinceramente, estou um pouco surpreso que exista o suficiente para toda uma dissertação.

Mas para responder sua pergunta. O WebForms é uma fatia estreita do web pie, principalmente para os aplicativos de negócios da intranet. Páginas codificadas com espaguete sem padrão real provavelmente compõem uma quantidade decente do diagrama de Venn, mas praticamente qualquer coisa que seja uma estrutura é pelo menos fortemente influenciada pelo MVC; portanto, sua resposta curta seria um SIM retumbante .

George Mauer
fonte
@geroge: Obrigado pela resposta. Ha .. não se preocupe, o software incluído na minha dissertação usa MVC .. não está realmente no MVC!
ale