Pergunta

disponíveis estes dias, para praticamente todas as línguas lá fora . Em sua experiência, quais são os seus pontos fortes, pontos fracos, e características únicas? Assumindo o luxo de escolha, quais os fatores que iria levá-lo a considerar um sobre o outro outro?

Eu estou mais interessado na experiência direta das pessoas com um ou mais quadros, em vez de uma comparação exaustiva de tudo lá fora. Esperemos que a comunidade SO tem programadores que têm boas e más experiências com coisas como Rails , ASP.NET , Django , TurboGears , ou JSF . Também seria ótimo para ouvir se alguém está usando um dos quadros menos tradicionais, como Mar ou Weblocks .

Linguagem de Programação é uma diferença óbvia, mas um Java vs Rubi flamewar não vai ser muito divertido, ea maioria destes quadros parecem ser pelo menos tanto quanto um investimento em tecnologia, ferramentas e complexidade como sua língua de escolha; então eu estou mais interessado em coisas como:

  • velocidade de Desenvolvimento e conveniência
  • As barreiras à entrada - tanto em termos de treinamento de desenvolvedores e de infra-estrutura necessária
  • Lock-in - a quantidade de código você poderia manter se você tivesse que estruturas de switch
  • ?
  • Flexibilidade - é que o quadro ditar a sua arquitetura ou design? (Se isso seria um bom ou mau coisa é provavelmente melhor deixar para uma discussão em separado.)
  • Performance, escalabilidade e estabilidade -, obviamente, dependendo dos desenvolvedores
Foi útil?

Solução

Vou abordar brevemente cada área por três estruturas Python populares. Isso só é baseado em minhas experiências e observações pessoais.

velocidade de Desenvolvimento e conveniência

Para TurboGears , Pilões e Django , a velocidade de desenvolvimento é mais ou menos igual. Sendo estruturas modernas, é fácil começar em um novo site e começar a atirar páginas juntas. Python é famosa rápido para desenvolver e depurar e eu iria colocar qualquer estrutura Python como tendo um tempo de desenvolvimento mais curto do que qualquer outra configuração que eu já trabalhei com (incluindo PHP, Perl, incorporado Perl e C # / ASP.Net).

Barreiras à entrada - treinamento de desenvolvedores e infra-estrutura

Se você sabe Python e estão dispostos a assistir a um 20 minutos de vídeo tutorial , você pode criar um site do tipo wiki bastante completo a partir do zero. Ou você pode andar através de uma site social-bookmarking tutorial em 30 minutos (incluindo a instalação ). Estes são exemplos TurboGears, mas os outros dois quadros têm tutoriais quase idênticos também.

A infra-estrutura de teste / desenvolvimento que sai da caixa com estes quadros é geralmente suficiente para completar a maioria dos sites. A qualquer momento, você pode trocar componentes para atender às suas exigências ambiente de produção. Por exemplo, SQLite é bom para a criação de seus modelos e os dados de teste de carga, mas você vai querer instalar MySQL (por exemplo) antes de ir ao vivo ou armazenar grandes quantidades de dados.

Em todos os casos, os requisitos são muito baixos e ditou inteiramente por seus requisitos de escalabilidade e não quaisquer peculiaridades do quadro. Se você estiver confortável com um certo modelo de linguagem ou ORM, ele provavelmente irá ligar à direita.

lock-in

Este é um problema generalizado em todos os frameworks. Quando você selecionar um idioma, você limita suas opções de código de reutilização. Quando você seleciona um templater, você está novamente fechado em (apesar de que é mais fácil de mudança, em geral, do que outras coisas). O mesmo vale para o seu ORM, banco de dados, e assim por diante. Não há nada estes quadros fazer especificamente que vai ajudar ou atrapalhar lock-in.

Flexibilidade

É tudo sobre MVC com estas três estruturas. Como você disse, isso é uma discussão muito diferente!

Performance, escalabilidade e estabilidade

Bem, se você escrever um bom código, o site terá um bom desempenho! Mais uma vez, este é um problema em todas as estruturas dirigidas por técnicas de desenvolvimento diferentes e é provavelmente maneira fora do âmbito desta resposta.

Outras dicas

Django vs Struts.

velocidade de Desenvolvimento e conveniência.

Django - instalado e funcionando no tempo necessário para construir o modelo (em Python), definir os mapeamentos de administrador (2-3 linhas de código por classe de modelo) e criar modelos HTML para trabalhar com as visualizações padrão mestre-detalhe.

Struts - tem que definir um banco de dados SQL, em seguida, definir mapeamentos ORM em iBatis. Em seguida, definir, testar e construir vários componentes de aplicação, utilizando classes de ação e páginas modelo JSP. Oh, e eu preciso para definir EJB de mover dados de aplicativo de JSP do. É tudo tem que compilar e eu tenho que trabalhar através de numerosos detalhes apenas para obter algo que se encaixa a regras de compilação.

Barreiras à entrada - tanto em termos de treinamento de desenvolvedores e de infra-estrutura necessária

constante em todos os frameworks e linguagens. Isso é muito bonito um artigo não se importam. Nenhuma linguagem ou estrutura é inerentemente fácil de treinar. Todos os frameworks web têm requisitos de infra-estrutura semelhantes.

lock-in -? A quantidade de código que você poderia manter se você tivesse que mudar estruturas

Isto não faz muito sentido. Se você mudar de Tomcat a qualquer um dos derivados do Tomcat, você pode preservar um monte de código Java. Caso contrário, você geralmente não preservar muito código quando você alternar quadro.

Flexibilidade - é que o quadro ditar a sua arquitetura ou design? (Se isso seria um bom ou mau coisa é provavelmente melhor deixar para uma discussão em separado.)

Na verdade, isso não é uma discussão em separado. Essa é a questão. Frameworks ditar a sua arquitectura - e isso é uma coisa boa. Na verdade, o quadro é o código que você não tem que escrever, testar, depurar ou apoio. É uma coisa boa que a sua candidatura está confinada pela estrutura para uma estrutura comprovada, viável.

Performance, escalabilidade e estabilidade - obviamente dependendo dos desenvolvedores

Performance é a linguagem (não-quadro). É design. Até certo ponto, a sua configuração implementação também.

A escalabilidade é quadro (não idioma). O seu design e configuração.

A estabilidade é através da placa:. OS, linguagem, estrutura, design, programação, configuração QA e implementação

Esta é uma questão extremamente subjetiva .. e isso é uma tag que você deve adicionar à sua pergunta. Como vários comentários já sugeri, você já especificou um guia muito bom; o que você está realmente pedindo? Há um bilhão de opiniões sobre este tipo de coisa e resposta definitivamente o direito!

Pessoalmente, eu comecei a usar .html, mudou-se para PHP, Ruby tentou (odiado), descobriu Python / Django .. e tenho sido feliz desde então. Isso é um caminho muito original para levar embora (provavelmente) assim que sua milhagem pode variar:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top