Jump to content

Frameworks Web - qual escolher?


erhnam
 Share

Recommended Posts

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

Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other sites

Já agora

http://www.google.com/trends?q=cakephp%2C+zend%2C+webobjects%2C+django%2C+ruby+on+rails&ctab=0&geo=all&date=all&sort=0

A Cake é bastante recente comparada com Django (Python) e Zend (PHP). Mas a verdade é que tem tido um crescimento bastante bom. Ruby on Rails tem altos e baixos, e parece que o crescimento está um bocado estagnado.

Link to comment
Share on other 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

Link to comment
Share on other 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.

Link to comment
Share on other 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 😉

Link to comment
Share on other 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.

Link to comment
Share on other 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

Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
Share on other 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.

Link to comment
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
 Share

×
×
  • 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.