Vamos Falar Sobre Frameworks

27 06 2008

Saudações a todos!

Hoje quero compartilhar com vocês alguns pensamentos sobre frameworks:

O que é Framework?

Bom as melhores definições sobre o que é um framework eu encontrei foi nesse site, em resumo podemos dizer que:

  • Provê uma solução para uma família de problemas semelhantes;
  • É uma aplicação quase completa, mas com pedaços faltando que serão desenvolvidos pelo programador.

Vamos tomar emprestado também a definição da wikipedia:

No desenvolvimento do software, um framework ou arcabouço é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para auxiliar no desenvolvimento e unir diferentes componentes de um projeto de software.

Como Eles Funcionam?

Eles geralmente seguem o princípio de Hollywood “Don’t call us, we’ll call you” (Não nos ligue, nos ligamos para você). Ele disponibiliza elementos que o programador chama de dentro da sua aplicação.

Exemplos de Frameworks

Bom atualmente existem frameworks para as mais diversas área, vou citar aqui alguns frameworks que eu já utilizei:

  • Prototype: ótima biblioteca para facilitar a programação em Javascript;
  • Ext: criação de belas interfaces utilizando Javascript;
  • PHP Class Genetaror: uma classe que ajuda a gerar classes DAO a partir do banco de dados;
  • Symfony: um dos maiores e melhores frameworks para o desenvolvimento de aplicações em PHP;
  • Seam: framework para o desenvolvimento de aplicações Web em Java;
  • Wegenium Framework: este é o framework utilizado e desenvolvido pela equipe da Webgenium System para alguns projetos específicos;

O Que Tira o Meu Sono?

Quando você opta por utilizar um framework nem tudo são flores como geralmente argumentam os próprios programadores do framework. O primeiro problema é que o programador que irá utilizar o framework fica “preso” na estrutura estabelecida pelo framework e se você quiser fazer as coisas de uma forma diferente é geralmente muito complicado. Em segundo lugar os códigos que você desenvolve utilizando o framework X não funcionam sem o framework X ou seja você fica mais uma vez “preso”.

Olha a História

Vou contar aqui uma história, alguns fatos já aconteceram comigo outros não mas eu imagino que muitos vão se identificar com ela.

Um jovem universitário programador faz uns “freela” para 2 clientes, a empresa A e a empresa B, ele já desenvolveu um sistema para a empresa A e para isso utilizou o framework X. Com o passar do tempo ele acabou conhecendo todos os pontos fortes e fracos do framework X e ficou emocionalmente abalado com os pontos fracos.

Algum tempo depois surge uma dupla oportunidade, a empresa A e a empresa B necessitam de sistemas exatamente iguais, vamos chamar este sistema de módulo Z. Na empresa A o módulo Z seria apenas mais um módulo e ele passaria a fazer parte do sistema já existente e na empresa B o módulo Z seria praticamente a totalidade do sistema que ele irá desenvolver. Ai entra a questão!

Ele deve desenvolver o sistema para a empresa B utilizando o framework X arcando com todas as deficiências já conhecidas do framework X MAS garantindo assim a compatibilidade do módulo Z com o sistema da empresa A ou ele deve chutar o balde e mudo de framework?

Bom se você está passando por este dilema em sua vida eu te digo:

Desenvolva o sistema da empresa B com o framework X, mantendo assim o código do módulo X compatível com o sistema das duas empresas e digo mais se ele for um framework de código aberto junte-se a comunidade de desenvolvimento e melhores o Framework X.

E se você não concorda com isso e acha que ele deve chutar o balde poste ai o seu comentário.

[]’s Anselmo Battisti

Anúncios

Ações

Information

8 responses

27 06 2008
Cairo Noleto

Olá, primeiramente quero parabenizar pelo belo artigo.

Realmente a melhor de fazer o framework que você tem certeza que dos pontos negativos, é fazer ele se tornarem positivos.

Tem desenvolvedores que apenas “usam” o framework, geralmente eles usam e não estão ligados na performance, no consumo de memória, ou fazer com que esse sistema funcione melhor de uma maneira melhor!

Agora existem os desenvolvedores que levam os frameworks a um outro estagio.Primeiro eles conhecem os frameworks, depois fazem maravilhas com ele, mas sempre faltando alguma coisa, e por ultimo, eles começam a fazer correções, atualizando o Core, fazendo o framework crescer.

Eu uso o CodeIgniter e faço parte no desenvolvimento de um framework ORM na empresa que trabalho. Em breve este framework estará tendo seu primeiro release beta e a abertura para a comunidade OpenSource.

Abraços.

27 06 2008
battisti

Saudações

É fato que usar um framework ajuda durante o processo de desenvolvimento de um software e que já possui várias idéias encapsuladas e prontinhas para serem usadas, mas acredito, assim como você que para usar um framework é necessário conhecer como ele funciona senão é um tiro no pé.

[]’s Anselmo Battisti

27 06 2008
Maurício rech

a gente ta desenvolvendo um framework aqui na fluxo tbm, ta ficando a cada dia melhor 😀 mto bom 😉

27 06 2008
battisti

Nós também temos um framework interno como citei no texto o X da questão foi levantada pelo micox (http://forum.ievolutionweb.com/lofiversion/index.php/t10062.html)

Ele disse:
E porque não crio meu próprio framework?
– Construir um framework é complexo
– Re-uso não vem sozinho: deve ser planejado
– É mais complexo e demora mais fazer uma aplicação tendo que construir um framework em vez de fazer a aplicação do zero
– Benefícios são realizados em longo prazo

O que mais pegou ai foi o item 2 Re-uso não vem sozinho tem que ser planejado e durante o desenvolvimento do fw se você estiver construindo um software real você inevitavelmente tendnecia o seu framework.

Isso aconteceu muito durante o desenvolvimento do nosso fw e hoje depois de muito apanhar e usar outros frameworks que fazer um framework bom sozinho é muito difícil.

28 07 2008
Rafael

Cara, eu to usando o Rails e gostando bastante. Acho que vale a pena usar um framework próprio pra coisas bem especificas.

7 09 2008
Klederson Bueno

Bom, eu concordo com o cairo existem usuários e USUÁRIOS, nós na Add4 Comunicação utilizamos diversos frameworks como Lumine, CI, SimplePie, e phpBURN ( em producão própria ) mas não nos reduzimos a isso, quando surge uma nescecidade não suprida pelo(s) framework(s) ( como por exemplo o citado pelo Cairo.

O uso de memória que foi corrigido ou melhorado por ele ou níveis mais básicos como os relacionamentos mais simples ou mesmo paginação em relacionamentos.. afinal ninguem quer 1000 itens de um relacionamento, apenas os 10 primeiros ou mesmo paginar os mesmos, sei lá quaisquer necessidades básicas ) vamos um pouco além, o modificamos, o alteramos à nossa necessidade, então por exemplo temos um repositorio público do lumine por exemplo que está anos luz da versão convencional ( assim como a ibm faz com n softwares opensource como por exemplo o eclispe* ) então não acho que utilizar um framework seja um problema, o problema é se acomodar, aceitar erros e limitações:
– Alias é um problema sério dos desenvolvedores PHP** brazucas INFELIZMENTE ANÚNCIO: Se vc é diferente desse perfil “padrão” entre em contato conosco através do site ou contribua com os projetos openSource como o phpBURN.

A maioria dos desenvs ( principalmente em PHP e SIM, nós conhecemos outras linguagens o.O como rails, java, javascript, actionscript, .NET ( C#, VB, etc… e salvando as devidas proporções eles são mais “dinâmicos” ou ao menos sabem usar melhor o google e documentacao de suas api’s ) então minha conclusão sobre o uso de frameworks é que eles são muito úteis e quando chegam ao limite de uso é preciso adapta-los afinal são OpenSource sob licença GPL ou MIT ou CREATIVE então enjoy.

Frameworks ORM:
phpBURN: http://svn.phpburn.com/ ( made in Brazil by ADD4 Comunicação ) ainda em fase alpha e a propósito aceitamos contribuições de bom grado pois eh um projeto OpenSource 😉

Lumine (Customizado) o SVN é http://lumine.add4.com.br ( possível incompatibilidade com a versão corrente do site oficial porem tentando ser o mais compativel possível ) e não nos responsabilizamos pelo seu uso. Use por sua conta e risco 😀 pois eh uma versão beta ( moda da internet by google )

CastleProject ( .NET sim M$ é a mensageira do apocalipse mas não se pode esquecer de que vivemos num mundo capitalista e o mercado manda )

Hibernate e NHibernate ( inspirações para o phpBURN e para o Lumine )

27 02 2009
Gabriela

Parabens pela materia, me esclareceu bastante algumas duvidas.. Abs. Sucesso. Sou novata em ruby on rails.. e o artigo me ajudou bastante sobre o conceito de frameworks..

26 08 2016
Thiago Montijo

Parabéns pelo artigo e pelos comentários construtivos, assim como nossa amiga Gabriela, sou novato e aprendi muito com vocês. Um abraço!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: