0

Framework: Usar ou não usar???

criado por Ricardo Gama em 07/01/2010 11:28am
Uma pergunta frequente que me faço é, usar ou não um framework... Quando tenho que usar, uso o CodeIgniter. Mas depois de começar meu curso de JAVA, e comparar com PHP, me pergunto se é valido usar um framework. Estou num projeto na empresa. Entre e o projeto já tava rolando com o CI.

Coisas esquecidas:

1 - Visibilidade (get e set nem vi ainda).
2 - Herança.

E entre outras coisas.

Um framework ajuda muito, não posso dizer o contrário disso, mas o quanto vc usa de um framework??? Ele te da 1000 coisas, vc usa as 1000???

Eu tenho minha classe que manipula banco com PDO, e pronto. Uso minhas visibilidades, métodos gets e sets, extendo minhas classes pra quem tiver que extender...

Até mesmo extender uma classe fica complicado. Ex.:

Tenho a classe funcionário. Funcionário, extende a secretaria, gerente, programador (concordam que todos são funcionarios, e métodos comuns de funcionários são extendidos a eles). Crio meu Model, mas não posso extender ele pq ele já é extendido ao core do framework.

Enfim, não sei se estou sendo claro no que quero dizer, porém é um ponto de interrogação grande pra mim. Eu não quero defender nenhuma, não quero dizer que o certo é usar, nem que o certo é não usar. Sei das vantagens do framework, mas é muito mais vantagem assim???

Acho que da pra gente debater bem sobre esse assunto, até por isso criei como uma FAQ ao invés de abrir um tópico no fórum.

Abraços, e se todos quiserem levar o assunto adiante, vamos tentar manter o nível. Já ví pessoas se sentirem ofendida por citar o não uso de framework. Cada um mostre o seu ponto de vista, e defenda-o. Simples assim

Lista de Respostas:

0
07/01/2010 11:59pm
(~14 anos atrás)
Matheus Ricelly respondeu:
Eu nunca usei framework, mas, pelo o que já li, é uma excelente ferramenta para agilizar o trabalho de desenvolvimento, pois facilita muita coisa na hora do desenvolvimento.

Já desenvolvi vários scripts e nenhum foi usando framework, como tem muitos outros profissionais que não utilizam, mas, talvez seja por opção mesmo, acostumado ao tradicional desenvolvimento "do zero" como dizem e talz...

É mais ou menos essa a minha opinião, espero que tenham gostado.

Valeu!

0
11/01/2010 5:29pm
(~14 anos atrás)
Opaaaa
Gostei do FAQ, eu até ia postar no Forum um tema para debater similar a este
Mas vou aprovetar esta oportunidade para expressa-lo aqui mesmo.

Como você disse
Framework as vezes tem 1000 coisas e as vezes usamos apenas 10...
As vezes framework atrapalha um pouco as coisas dependendo do modelo e daquilo que se pretende fazer.
Não estou generalizando, mas é que tem programadores que se adaptam ao framework, ao invés de ser o contrário.
Eu não programo mais do zero não.
Eu tenho meu próprio "Framework".
É apenas uma classe Banco de dados e outras classes para redimensionamento de imagens e etc.
São apenas alguns códigos que desenvolvi e com o tempo percebi que sempre usava os mesmos códigos e por isso decidi criar o meu próprio "Framework"
Alí eu sei tudo o que tem, sei que se houver um problema, vou direto nele, pois entendo bem dos meus códigos, e sei o que devo usar e o que não devo usar para garantir um melhor desempenho.
Se tenho um problema, não preciso me adaptar ao problema, vou lá e conserto.
Tá certo que muitos problemas que as pessoas tem com framework se dão ao fato de que as pessoas são quem não sabem utilizar o framework corretamente.

Mas agora finalmente chegando ao ponto onde queria chegar.
Tem certas coisas que eu não consigo entender.
Como por exemplo
Se quero executar uma query
Eu a escrevo e mando diretamente

$db->query("INSERT INTO tabela (campo1, campo2, campo3) VALUES ('Texto1', 'Texto2', 'Texto3')");

Simples...
Agora vem o jeito mais complicado...

$db->insert('table', 'tabela');
$db->insert('campo1', 'Texto1', DataBase::$_TEXT);
$db->insert('campo2', 'Texto2', DataBase::$_TEXT);
$db->insert('campo3', 'Texto3', DataBase::$_TEXT);
$db->execute();

O exemplo acima não cita qualquer framework, porém, apenas demonstra mais ou menos como seria um insert usando um framework.

A questão que eu quero chegar é...
O modo tradicional é muito mais simples, menos código, fica muito mais claro, e o desempenho é muito melhor, pois o código é executado muito mais rápido.
Por que eu deveria escolher o framework?
Eu gosto de pesar bem as coisas antes de aderir.
E ainda prefiro o meu próprio jeito de fazer as coisas
Que todos precisam de criar meios de agilizar os processos, isso é certo.
Mas não acredito que o que funcionou para um vá funcionar para todos
Vamos lá galera
Também estou aqui para ver opniões

Abraço a todos!!!

0
11/01/2010 5:55pm
(~14 anos atrás)
Marcos Regis respondeu:
Algumas vantagens de usar um Framework.
* Padronização de código
* Eliminação de tarefas repetitivas
* Reutilização de código
* Acelera o tempo de desenvolvimento
* Facilita o trabalho em equipe
* Facilita a documentação de um sistema

Algumas desvantagens de usar um Framework
* Curva de aprendizado (as vezes ela é bem grande)
* Necessidade de conhecimento da linguagem que vai bem além do básico ( portanto não é indicado para iniciantes)
* Necessidade de conhecimento da linguagem do Framework e as vezes do ORM embutido e até mesmo de criação de elementos visuais
* Necessidade de bom conhecimento de Orientação a Objetos e as vezes de Patterns

0
11/01/2010 6:00pm
(~14 anos atrás)
Marcos Regis respondeu:
Ahhh.. Complementando, não importa o tamanho da aplicação, usar Framework não vai onerar tanto o sistema que não valha a pena usá-lo.

E não confundir:
* Conjunto de scripts com Framework.
* scripts organizados com Framework.
* Pattern MVC com Framework MVC.


0
11/01/2010 6:26pm
(~14 anos atrás)
Ricardo Gama respondeu:
Bom, aqui onde estou atualmente estamos usando o CodeIgniter. Achei o ORM dele fraco. E na real, vejo que usaram mais pra fazer MVC. E MVC podemos fazer na mão.

Sei lá, eu fico divido. Não posso dizer que não facilita. Facilita muito. Mas me irritou algumas coisas que eu vi.

Extender classe não da, pq a model é extendiado ao model do CI, e assim vai. Sem contar que algumas coisas do CI são ilógicas...

Acho legal a gente debater isso... é uma dúvida que cresce cada vez mais!!!

0
11/01/2010 6:33pm
(~14 anos atrás)
Framework eh bom, porem uso pouco so para estudos, mais so vou usar para estudos mesmo, prefiro me aprofundar no OO para meus projetos, vc cria suas classes e usa em varios projetos, economizando tempo, custos e para mim o mais importante eh estar sempre aprendendo mais.

Esse é a minha opnião.


0
11/01/2010 8:35pm
(~14 anos atrás)
Um framework normalmente ajuda em uma área específica. PHP é uma linguagem especialmente voltada para Web e desenvolvimento de Sistemas de Informação. Logo, a maioria dos framework ajudam a desenvolver SI Web com maior agilidade.

Eu acho que para o desenvolvimento de um SI robusto, usar um framework ou correspondente é fundamental. Já para o desenvolvimento de um programa em PHP com aplicabilidade específica, é preciso checar a viabilidade.

Além de algumas vantagens já levantadas, eu ainda diria:
* Redução significativa de erros
* Redução significativa de falhas de segurança
* Maior agilidade para manutenção e melhoria do software
* Normalmente facilita a padronização da interface e navegabilidade
* Podem oferecer ferramentas de geração automática de código-fonte
* Maior previsibilidade para o desenvolvimento

E algumas desvantagens (comuns):
* Maior dificuldade para testes (até que ponto é preciso testar)
* Imposição/utilização de alguns padrões que interferem na performance
* Restrição quanto a utilização de recursos específicos (por exemplo, o framework permitir utilizar tudo que é oferecido por determinado SGBD)

Não é correto generalisar tanto ao ponto de pensar que todos framework em PHP ajudam nas mesmas coisas, só que de maneira diferente. Alguns podem ajudar em tarefas, a princípio, bastante específicas. Por exemplo: manipulação de imagens (enviadas por upload), geração de ferramentas CRUD (create, read, update, delete), geração do esquema do BD a partir das definições das entidades, etc. E nem todo framework precisa, obrigatoriamente, ser sustentado por heranças.

Uma das coisas que não gosto muito é do modelo MVC. Fazer um sistema 100% MVC dá um trabalho do cão e nem sempre acho satisfatório o custo/benefício. Eu prefiro mesclar a utilização de MVC com alternativas menos burocráticas, como a utilização de componentes.

Portanto, eu apoio a utilização de framework para aplicações onde é comportada a utilização de um. E também apoio a utilização de bibliotecas extras que permitam realizar tarefas mais específicas.

0
13/01/2010 12:50pm
(~14 anos atrás)
Matheus Ricelly respondeu:
Como todos falaram, há muitas vantagens, como muitas desvantagens também, isso acontece em tudo é claro. Mas, como o Lucas Thiago falou:

"prefiro me aprofundar no OO para meus projetos, vc cria suas classes e usa em varios projetos, economizando tempo, custos e para mim o mais importante eh estar sempre aprendendo

como o Carlos Eduardo falou:

"O modo tradicional é muito mais simples, menos código, fica muito mais claro, e o desempenho é muito melhor, pois o código é executado muito mais rápido."

As vezes o código fica organizado, mas, fica muito mais longe de se escrever e o que temos que preservar mais é o TEMPO, pois os nossos clientes querem AGILIDADE.

Então, diante desses fatos, eu nem procuro muito aprimorar em algum Framework. Estou só estudando mesmo, mas, nada que venha a pensar em utilizar por enquanto.

Gostei muito desse debate, espero ler mais opiniões aqui.

Valeu!!

0
02/03/2010 12:05pm
(~14 anos atrás)
Marcos Regis respondeu:
Matheus, o modo tradicional não é mais simples e nem tende a ter menos código. Pelo contrário. O modo tradicional tende a ter mais código digitado e quanto mais código maior o número de erros.
Com um framework você reduz significativamente a quantidade de código digitado e portanto acelera o desenvolvimento.
Aliás esta é a proposta do Framework, simplificar e não complicar.
Para mim isso é falta de profissionalismo do pessoal do PHP.
Em Java praticamente ninguém faz nada sem framework (Seam, Struts, JSF) e em .net nem tem como pois a IDE já é um Framework.
Com relação a MVC sim pode-se questionar, mas já está provado que ele é o que mais se adapta ao desenvolvimento WEB. Permite que se tenha partes de desenvolvimento que podem ser distribuídos em equipes.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)