• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

erhnam

Frameworks Web - qual escolher?

35 mensagens neste tópico

Boa noite!

Estou prestes a começar um pequeno projecto e gostaria de saber a vossa opinião sobre que framework usar.

O "projecto" vai ser um joguito online cujos pormenores ainda não foram bem definidos, por isso não consigo adiantar muito em relação a requisitos.

Assim de repente terá de ter suporte para várias línguas e ser uma tecnologia relativamente escalável (quem sabe se não faço uma coisa assim com bué sucesso e milhares de pessoas começam a jogar... ).

Nem sei o que mais dizer, até porque nunca trabalhei com nada deste género.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para jogos online só tens duas hipóteses: PHP+CSS+Ajax (escalável quanto chegue) ou Flash.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hhmmm... essa é a "escolha óbvia".

Mas PHP preocupa-me (e muito) na parte de interface com base de dados e criação/alteração de forms.

Além disso não há IDEs decentes, e debugging é mentira.

Isto se fôr PHP simples. Sei que há frameworks, mas não conheço nenhuma e não sei se são boas a fazer o que referi.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu recomendo apenas uma: Cake

À dois anos existiam muitas candidatas, mas o Cake foi o que realmente foi crescendo e ficando mais madura. É a única neste momento que tem uma organização coerente e crescida. Symphony era outra opção mas foi claramente ultrapassado pelo Cake.

Há é sempre uma desvantagem que é o overhead que estas frameworks causam até para coisas mais simples. É algo que ando a tentar melhorar pelas minhas próprias mãos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só uma nota em relação a IDEs de PHP, o Netbeans tem um módulo que se bem que novo, é um excelente editor de PHP e o Aptana Studio, que já era um excelente IDE para XHTML/Javascript/CSS, possui também muito bom suporte para PHP. Sei que o eclipse também tinha um plugin que vi alguns programadores de PHP usarem mas não sei como está actualmente.

E é possível fazer debug em PHP, utilizando por exemplo, o xdebug

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só uma nota em relação a IDEs de PHP, o Netbeans tem um módulo que se bem que novo, é um excelente editor de PHP e o Aptana Studio, que já era um excelente IDE para XHTML/Javascript/CSS, possui também muito bom suporte para PHP. Sei que o eclipse também tinha um plugin que vi alguns programadores de PHP usarem mas não sei como está actualmente.

E é possível fazer debug em PHP, utilizando por exemplo, o xdebug

O Aptana Studio tem duas vertentes, standalone (a que uso) ou plugin para o Eclipse. Não sei se o plugin que falas po Eclipse será o mesmo ou um outro à parte nada relacionado com o Aptana.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, o plugin do Aptana não é o mesmo plugin de PHP que vi, não me lembro do nome mas posso procurar, sei que há algum tempo andei também a tentar usar mas não gostei.

Também experimentei o plugin do aptana, mas na altura que experimentei, isto nas versões milestone do apatana, ainda não era tão estável como o versão baseado na plataforma do eclipse, optei por usar a versão baseada na plataforma e desde então não tenho usado outra coisa ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está uma discussão noutro tópico sobre frameworks PHP

http://www.portugal-a-programar.pt/index.php?showtopic=17210

Mas como este tópico tem alguma especificidade adicional ficam os dois abertos.

A minha preferida chama-se codeigniter podes ler no outro tópico porque é que eu gosto dela ;)

Eu sou um dos maiores defensores do PHP aqui no fórum mas tenho que fazer o papel do diabo aqui. PHP não é a única solução.

A framework MVC que foi o epicentro desta moda foi mesmo o ruby-on-rails. Mas há outras em várias linguagens. Se fores um programador profissional de python por exemplo, é caaz de ser melhor ideia usares uma framewowork de python.

Talvez seja melhor tornar a discussão mais objectiva, que características procuras na tua framework?

Em relação aos editores, a abordagem procedimental do php faz com que funcionalidades como code completion não sejam tão fulcrais, no entanto há dezenas de editores com suporte para snippets php, o gedit é o meu preferido. Um editor que interaja bem com com um sistema de ficheiros remoto é uma boa escolha.

O plugin do netbeans permite-te ler phpdocs conforme teclas, tem code completion, dezenas de keybindings. E como estás  a usar o netbeans tens a tua disposição coisas como suporte para subversion, etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está uma discussão noutro tópico sobre frameworks PHP

http://www.portugal-a-programar.pt/index.php?showtopic=17210

Vou dar uma olhadela nesse tópico, mas pelo que vi já estou quase convencido a que, se usar PHP, vai ser CakePHP ou Zend. Principalmente por existirem já há bastante tempo e por isso terem já atingido alguma maturidade e terem uma grande comunidade por trás delas sempre a desenvolvê-las.

Talvez seja melhor tornar a discussão mais objectiva, que características procuras na tua framework?

A minha primeira ideia quando decidi começar isto foi: faz-se em PHP.

Mas depois lembrei-me de todos os pequenos e irritantes problemas que tenho com PHP, forms e acessos à base de dados durante os meus pequenos projectos e achei que para isto, que vai ser consideravelmente maior, não posso meter-me só com PHP simples (notepad, as funções do PHP e mais nada).

Requisitos: assim de repente são os de um jogo online, multiplayer, browser-based e parcialmente real-time.

Mais:

    *  O mínimo de SQL escrito à pata. Quero um mapeamento O-R jeitoso e o mais automático possível

    * Evitar andar a programar (e validar) forms de uma forma completamente manual. Nas páginas simples que tenho feito é uma das coisas que mais erros causa

    * Suporte para várias línguas

    * Autenticação dos utilizadores

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se orm é um requisito importante para ti então o codeigniter não é boa escolha. É pena, porque a sua classe de validação é simplesmente genial.

O symfony usa duas tecnologias em combinação para ORM: creole e propel. Basta especificares as caracteristicas da BD num YAML, correr um script e tás a andar de mota.

Certamente que o cakephp tambem deve fazer isso por ti mas deve ser de outra forma. O MX+ talvez te saiba explicar isso melhor.

Quanto ao SQL, o symfony penso que é única que tem suporte para creole,mas penso que todas elas hoje em dia já têm uma classe besada em activerecord. O CI pelo menos tem, pessoalmente acho que isso não poupa muito trabalho, mas tá-se.

Agora, uma coisa que aprendi por experiencia e que a maior parte das pessoas pensa que é diferente:

Estas frameworks seguem mais uma máxima de "boa prática de programação" do que propriamente "uma aplicação em poucos passos", se bem que todas afirmam o contrário.

O ganho é maior em organização, flexibilidade e extensibilidade de código do que em volume.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao SQL, o symfony penso que é única que tem suporte para creole,mas penso que todas elas hoje em dia já têm uma classe besada em activerecord. O CI pelo menos tem, pessoalmente acho que isso não poupa muito trabalho, mas tá-se.

Se calhar não poupa trabalho a programar na primeira vez. Mas quase de certeza que poupa muito trabalho a corrigir bugs e a fazer alterações. Falo sem experiência mas já me disseram que com Django é extremamente fácil fazer alterações em classes que são facilmente passadas para a BD e os próprios forms são mudados de acordo com as alterações.

Agora, uma coisa que aprendi por experiencia e que a maior parte das pessoas pensa que é diferente:

Estas frameworks seguem mais uma máxima de "boa prática de programação" do que propriamente "uma aplicação em poucos passos", se bem que todas afirmam o contrário.

O ganho é maior em organização, flexibilidade e extensibilidade de código do que em volume.

Apesar de não ter experiência com estas frameworks web mas da experiência que tenho de programação (ao longo de 6 longos anos num curso de Engenharia Informática), seguir boas práticas de programação pode parecer chato e trabalho inútil ao início, mas depois torna-se muito benéfico na long run. Lá está, são a flexibilidade e extensibilidade de que falaste.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Se calhar não poupa trabalho a programar na primeira vez. Mas quase de certeza que poupa muito trabalho a corrigir bugs e a fazer alterações. Falo sem experiência mas já me disseram que com Django é extremamente fácil fazer alterações em classes que são facilmente passadas para a BD e os próprios forms são mudados de acordo com as alterações.

Ora lá está uma coisa que nunca me tinha ocorrido. Pois, realmente é verdade.

Acabei de descobrir uma coisa. Estou a desenvolver uma aplicação baseada no joomla. Ando a ler a documentação e descobri que o joomla 1.5 vem com uma framework MVC 100% funcional.

Pessoalmente o joomla é o exemplo de software que eu não gosto, bloated ao máximo, complicado para aquilo que faz e estupidificante. Mas foi um requisito do cliente... tenho que o usar.

Anyway, usar esta framework pode ter a vantagem de poderes integrar a tua aplicação com muitas funcionalidades disponiveis para o joomla. Se bem que estas incidam essencialmente sobre a parte que não é o teu jogo, como é natural.

Não sei, daqui a umas semanas digo-te qualquer coisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também podes ver algumas frameworks de Perl, por exemplo, a Catalyst ou a Mason.

Em particular, a Catalist (a que eu conheço minimamente), dispões de uma quantidade enorme de plugins que te permitem adicionar as mais variadas funcionalidades (autenticação, bases de dados, templates, etc.), dando-te a possibilidade de escolher os componentes que queres para disponibilizar uma determinada funcionalidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para jogos online só tens duas hipóteses: PHP+CSS+Ajax (escalável quanto chegue) ou Flash.

Também tens o Java, para o lado do cliente.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também tens o Java, para o lado do cliente.

E para o lado do servidor também, há quem goste de Java Servlets...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Java está fora de questão tanto do lado do cliente (porque requer andar a instalar coisas e é pesadão) e do lado do servidor (porque... err... é pesadão).

A única coisa que envolve Java que eu ainda considerei foi o GWT, em que se programa em Java e o código é convertido para Javascript. Mas a modos que o tipo de aplicação não é o mais adequado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Java está fora de questão tanto do lado do cliente (porque requer andar a instalar coisas e é pesadão) e do lado do servidor (porque... err... é pesadão).

O conceito de pesado é subjectivo, mas vamos lá ver que o PHP não é propriamente leve.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O php é na verdade incrivelmente leve. Tem que ser leve pois a sua arquitectura é pesada.

Eu explico:

A forma de correr uma aplicação PHP consiste tipicamente em receber os pedidos HTTP, com base neles processar um script e enviar o output para o ip que fez o request via HTTP.

Isto implica que se, mil pedidos são feitos num minuto ao mesmo script, o php tem que ser processado 1000 vezes para fazer o mesmo output.

Tendo em conta os recursos que isto implica, o php é incrivelmente leve.

Mas esta arquitectura não é a melhor para uma aplicação de acesso massivo. Por exemplo uma aplicação em java pode ser compilada, com isso evita-se que se esteja a processar o mesmo código vezes sem conta. Para muitas situações é uma solução muito mais robusta e que responde muito melhor a grendes necessidades de trafego. Pelo menos concpetualmente, tambem andam por aí instalações de aplicações em php que respondem a tráfego elevadissimos, o yahoo por exemplo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pedrotuga, o PHP acaba por "compilar" os ficheiros, tal como o Java. Se o ficheiro PHP não foi alterado o daemon do php usa uma versão do ficheiro já compilada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é só se usares fastcgi, se não estou em erro.

Ainda assim o apache tem que estar sempre a chamar o php para interpretar ou usar a versão anteriormente compilada do script.

Uma aplicação em java é pre-compilada e responde ele própria aos pedidos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma aplicação em java é pre-compilada e responde ele própria aos pedidos.

Tenho 80% de certeza no que vou dizer, mas penso que em Java a Virtual Machine também é sempre chamada. Os ficheiros em .class (bytecode) não correm sozinhos têem de ser corridos sobre a máquina virtual.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho 80% de certeza no que vou dizer, mas penso que em Java a Virtual Machine também é sempre chamada. Os ficheiros em .class (bytecode) não correm sozinhos têem de ser corridos sobre a máquina virtual.

Eu quando disse compilada, estava a referir-me a compilar para bytecode. Tanto quanto tenho conhecimento não há forma de compilar código java para código máquina compativel com nenhuma arquitectura física existente. A tecnologia java toda ela se baseia numa máquina virtual.

Mas já estamos a desviar-nos um pouco do tópico.

O pessoal mais experiente em java pode partilhar o seu conhecimento sobre frameworks web java. Há algumas já com uns bons anitos de desnvlvmento em cima, mas não sei se existe alguma baseada em rails.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Há algumas já com uns bons anitos de desnvlvmento em cima, mas não sei se existe alguma baseada em rails.

?!?!?! Baseada em RoR?!
0

Partilhar esta mensagem


Link 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