Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

alexmgarcia

Preciso de opiniões sobre frameworks MVC

Mensagens Recomendadas

alexmgarcia

Olá,

Preciso de escolher uma framework MVC para desenvolvimento de um backoffice em que depois pretendo também fornecer uma API REST.

Pensei em Play! pois não me ia obrigar tar a aprender uma nova linguagem mas apenas detalhes da framework mas no entanto consome muitos recursos pelo menos em desenvolvimento (cheguei a ter pelo menos 600mb de ram em uso pelo java), e torna-se pouco prático estar a reiniciar o servidor de desenvolvimento de tempos a tempos.

Pondo isto de parte estou com dúvidas entre três frameworks: CakePHP, Ruby on Rails, Django

Estive a fazer umas pesquisas e muitas comparações que encontro são de versões antigas das frameworks e precisava de uma opinião mais "actual".

CakePHP ia-me fazer ler qualquer coisa de PHP (a nível de sintaxe estou habituado à sintaxe C-like); Ruby on Rails já trabalhei, mas foi tudo muito à pressa e há aspectos do Ruby e mesmo do Rails que não assimilei (e também tem o facto de não estar habituado à sintaxe do Ruby); Django nunca trabalhei, mas há uns anos trabalhei um pouco com Python (mas tinha de ler de novo documentação deste).

Tendo em conta que não tenho muito tempo para despender nisto (aprendizagem + programação), o que aconselham das três frameworks por mim aqui descritas tendo em conta rapidez de desenvolvimento e consumo de recursos?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Kohana é uma framework bastante rápida a nível de produção e desenvolvimento assim que entendes como funciona, é a que melhor se assemelha ao que realmente se passa num ambiente web a nível de nomenclaturas e procedimentos. CakePHP é, para mim, como a maioria das frameworks : além de teres de aprender como funciona, tens de aprender que nomes dá a coisas que têm já o seu nome.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
I-NOZex

Eu comecei a brincar com YII e recomendo, muito extensivel, rapida, no entanto acho que a sua aprendizagem é um pouco demorada...

mas virando para a tua pergunta sobre essas 3, ou ruby ou cake, isto a pensar a nivel de comunidades e documentaçao, em web so trabalho com php, mas sei que uma altura fui espreitar ruby on rails e pareceu-me ter uma otima documentaçao...


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Há também a questão se o @OP quer uma versão web do MVC ou uma arquitectura mais realista, que nas frameworks não é hábito (pelo menos não conheço nenhuma que o faça). Por exemplo, numa real aplicação MVC é impensável as Views conterem markup, ou os Models serem responsáveis pela lógica do domínio.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
I-NOZex

Há também a questão se o @OP quer uma versão web do MVC ou uma arquitectura mais realista, que nas frameworks não é hábito (pelo menos não conheço nenhuma que o faça). Por exemplo, numa real aplicação MVC é impensável as Views conterem markup, ou os Models serem responsáveis pela lógica do domínio.

sem querer criar offtopic, podes explicar isso melhor?

poderá tambem ser uma duvida que o autor vá ter, ou entao responde em pm, gostaria que explicasses melhor o que te referes nesses 2 ultimos pontos


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

O PHP não é realmente orientado a objectos, permite apenas um interface semelhante para atingir tal objectivo. Por essa razão, e por força da usabilidade e facilidade de compreensão, o MVC em aplicações / frameworks web foi adaptado por várias pessoas ao longo dos tempos dando origem a muitas das frameworks que se intitulam MVC, porém o MVC é mais "complexo" que a ideia da maioria.

Vou só deixar uma introdução ao assunto, que deve deixar nomes suficientes para procurarem na net.

#########

Numa aplicação estruturada com o padrão MVC existem 2 camadas : Presentation e Model.

Na camada Presentation encaixam-se os Controllers e Views, responsáveis pela apresentação da informação. Funcionam ambos numa relação 1:1, o que faz com que exista uma View por Controller. O Controller faz aquilo que o nome diz apenas, enquanto que a View, capaz de lidar com várias peças de Template, recolhe informação da camada Model e define o necessário.

A camada Model é responsável pela lógica do domínio, sendo esta escalada na aplicação em 3 partes : Domain Objects, Data Mappers e Services.

Domain Objects : responsáveis pela lógica restrita ao domínio, onde ocorrem as validações, cálculos, etc;

Data Mappers : responsáveis pelo armazenamento de informação (semelhante ao que acontece com o conceito popular de Model em que os atributos / SQL é definido / formatado para ser usado);

Services : responsáveis pelo cruzamento de dados entre Domain Objects e Data Mappers. São, por assim dizer, a parte mais "pública" da aplicação, função que na maioria das frameworks é tida pelos Controllers.

#########

Por alto é mais ou menos isto. Vale dizer que não existe realmente uma definição de MVC, e mesmo que existisse a evolução irá sempre trazer novas interpretações do mesmo objecto, mas de tudo o que li e experimentei este foi o conceito que mais sentido fez, apesar de mais confuso.

Editado por yoda
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
I-NOZex

obrigado pelo esclarecimento, é sempre bom aprender mais um pouco :D

na tua opiniao, qual a framework php que melhor aplica essa definição de MVC ?


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.