Jump to content
JoaoNascimento

Qual é a importância do MVC na criação de aplicações?

Recommended Posts

JoaoNascimento

Abri este tema de discussão para proporcionar a discussão sobre a importância do MVC na construção de aplicações.

Acham que é importante? Porque? Quais as vantagens e desvantagens?

Share this post


Link to post
Share on other sites
Rui Carlos

Uma das vantagens é a modularidade. O MVC advoga uma forma de separar a aplicação em componentes, que tornam a aplicação mais organizada, e mais fácil de manter.

Share this post


Link to post
Share on other sites
JoaoNascimento

Exacto, mas por exemplo, existem várias formas de implementação do MVC, desde a ser o Controller a receber as interacções e a view apenas mostra-as até ao controller controlar todas as intercções do programa e o model não conhece a view nem vise-versa, passando pela arquitectura que a view vai buscar os dados ao model e apresenta-os no ecrã sem passar pelo controller.

Para equipas grandes de programadores não será difícil, ou não poderá dar problemas o facto de muitas vezes não saberem bem qual é a arquitectura do mvc que os outros programadores da equipa estão a  usar?

Share this post


Link to post
Share on other sites
Rui Carlos

Nunca trabalhei nunca equipa grande, mas diria que uma equipa grande tem primeiro que acordar nos detalhes (mas não sou propriamente um especialista em MVC).

Pessoalmente, prefiro que o model e o view não se conheçam, de modo a minimizar as dependências entre componentes. Mas como disse, não sou propriamente um especialista em MVC ;)

Share this post


Link to post
Share on other sites
JoaoNascimento

Nunca trabalhei nunca equipa grande, mas diria que uma equipa grande tem primeiro que acordar nos detalhes (mas não sou propriamente um especialista em MVC).

Pessoalmente, prefiro que o model e o view não se conheçam, de modo a minimizar as dependências entre componentes. Mas como disse, não sou propriamente um especialista em MVC ;)

Ninguém deve ser especialista em MVC, pois não é algo em que se trabalhe, é algo que se usa para esquematizar o trabalho de forma mais fácil e em cima dele é que se assenta todo o esquema. Pois, existem muitas maneiras de implementar na minha opinião e todas elas devem ter o seu sentido,.

Share this post


Link to post
Share on other sites
martinhocosta

qual seria a arquitectura MVC mais eficas, a de 1988 ou a de 2008?

Quais as vantagens na de 1988?

Cumprimentos

Share this post


Link to post
Share on other sites
JoaoNascimento
KTachyon

Ninguém deve ser especialista em MVC, pois não é algo em que se trabalhe, é algo que se usa para esquematizar o trabalho de forma mais fácil e em cima dele é que se assenta todo o esquema. Pois, existem muitas maneiras de implementar na minha opinião e todas elas devem ter o seu sentido,.

Não percebi exactamente o sentido dessa afirmação. Tecnicamente, quem programa nativamente para Mac e/ou iOS, MVC já deverá fazer parte do estilo de vida ;)

Basicamente, o verdadeiro objectivo do MVC é mesmo separar o Model da View, ou seja, toda a interacção entre estes deve ser feita através de um Controller. Alterar o Model não deve ter qualquer efeito na View, nem vice-versa.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
KTachyon

Não desculpo! ;)

Mas, este tipo de tópicos é um daqueles que pode causar imensa discussão devido às definições de MVC. Cada um pode puxar a brasa à sua sardinha, por assim dizer. O MVC fragmentou-se nas recomendações de design patters e modo de utilização das mesmas consoante o modo de utilização pretendido por quem começou a aplicar essa arquitectura no processo de desenvolvimento. Nalguns casos essa fragmentação gerou arquitecturas com nomes distintos, noutros casos não. Lá bem no fundo, o MVC corresponde a um conjunto de design patterns e a uma forma de utilização recomendada (leia-se obrigatória) das mesmas. Mais ou menos restrito em relação ao modelo tradicional, continua a ser considerado MVC. Dois exemplos abaixo (repare-se nos nomes das design patterns associadas directamente a cada uma das componentes, nas diferentes definições):

MVC "Tradicional":

traditional_mvc.gif

Cocoa MVC:

cocoa_mvc.gif

Eu, sinceramente, não vejo grande utilidade na interacção directa entre a View e o Model. A meu ver acho que devem estar sempre separadas. Inclusivé, no iOS (e OS X apps) é comum programarem-se as Views para nem sequer realizarem quaisquer operações, sendo estas delegadas a Controllers que tratam de responder às interacções.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
JoaoNascimento

Tudo o que disseste foi com razão, eu por exemplo utilizo muito o MVC "tradicional" desde o inicio deste ano, mas como já começo a ter um conhecimento maior sobre a matéria, realmente penso que se o controlador existe deveria ser usado para controlar todos os tipos d interacções.

Quando ao que referiste sobre várias arquitecturas do mvc ainda ontem ouvi uma que me fiquei a perguntar qual era a diferença, mas que tinha um nome diferente, MVP se não estou em erro.

Share this post


Link to post
Share on other sites
shumy

A ligação directa entre a View e o Model é muitas vezes utilizada como simples bindings.


Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Share this post


Link to post
Share on other sites
yoda

Nunca trabalhei nunca equipa grande, mas diria que uma equipa grande tem primeiro que acordar nos detalhes (mas não sou propriamente um especialista em MVC).

MVC é um paradigma apenas, maioritariamente uma forma de organizar o código, tal como HMVC. Não é preciso sequer seguir esse paradigma numa aplicação que siga esses parâmetros (a menos que a própria obrigue a isso, mas nunca consegue pelo menos em PHP)

Pessoalmente, prefiro que o model e o view não se conheçam, de modo a minimizar as dependências entre componentes. Mas como disse, não sou propriamente um especialista em MVC ;)

Há muitos conceitos diferentes de MVC, cada pessoa interpreta aquilo como quer, o que significa que a integridade / organização de uma aplicação continua a estar ao critério do programador / analista. A maior parte dos paradigmas que tenho visto de MVC fogem ao que o MVC é. Pessoalmente prefiro tratar as Views como objectos, que tratam de definir as variáveis que constituem cada parcela de um template. Dá mais trabalho, mas fica bastante simples de manter / entender posteriormente, que é outro dos objectivos do MVC.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.