Ir para o conteúdo
erhnam

Frameworks Web - qual escolher?

Mensagens Recomendadas

erhnam    0
erhnam

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
erhnam    0
erhnam

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MX+    0
MX+

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knitter    101
Knitter

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nazgulled    8
Nazgulled

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knitter    101
Knitter

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 ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
erhnam    0
erhnam

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
erhnam    0
erhnam

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
erhnam    0
erhnam

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MX+    0
MX+

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MX+    0
MX+

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
djthyrax    11
djthyrax

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

?!?!?! Baseada em RoR?!

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade