Por que usamos frameworks e por que eles são úteis?
Frameworks são muito populares, e não é por acaso.
Eles fornecem código que resolve casos específicos e que podem ser usados em nossos programas.
Usamos frameworks para não ter que reinventar a roda, dessa forma, podemos focar na funcionalidade de alto nível (lógica de negócio) e não nos preocupar com código de baixo nível (low level).
Ser um bom programador em várias áreas exige também conhecer a linguagem de programação e os frameworks relacionados a ela.
Se você quer avançar na sua carreira e construir software trabalhando profissionalmente com programação, estude sobre frameworks na sua linguagem de programação.
Com minha experiência, já tendo trabalhado com vários web frameworks, posso dizer que eles são fundamentais para desenvolver uma aplicacao de tamanho medio ou grande de forma robusta.
Ignore quem te diz que não precisamos de frameworks.
Update: https://www.linkedin.com/posts/samuel-teixeira-b63a621b_por-que-usamos-frameworks-e-por-que-eles-activity-7287644766631018496-H_VT?utm_source=share&utm_medium=member_desktop , mesmo texto no Linkedin
Em resposta ao @user1: https://www.tabnews.com.br/user1
Acredito que voce esta falando sobre overengineering. Isso pode acontencer mas nao podemos culpar os frameworks, nesse caso seria problema do uso.
Pra te demonstrar o outro lado te conto algo que vive pessoalmente. Uns anos atras trabalhei pra uma empresa que estava migrando um sistema ASP net pra Java. Participei desse processo de migracao, no caso nao peguei no inicio. O dono muito sabido pegou um Java Dev (Heroi) pra fazer o framework "in House", toda a parte de seguranca, comunicacao com o DB, ate a parte da UI era gerado no Java. Sistema criado por uma pessoa do zero, eles nao usavam nenhum framework do Mercado.
O Dev Hero era o gargalo pq nao tinha documentacao de nada e so ele sabia como fazer qualquer operacao simples. Entao nao adiantava contratar um Dev Senior pq o tempo dessa pessoal aprender todo esse sistema inventado era gigante. Uma das piores experiencias que eu tive como Dev Java de longe. E pra completar ele estava copiando codigo do Spring :D
Update2: Com minha experiência, já tendo trabalhado com vários web frameworks, posso dizer que eles são fundamentais para desenvolver uma aplicacao de tamanho medio ou grande de forma robusta.
Os negativos provavelmente são por esta frase:
Ignore quem te diz que não precisamos de frameworks.
Possivelmente a forma simplória de defender uma visão pode ter contribuído também. Ele direciona as pessoas para o que elas já estão fazendo e estão se ferrando, tem que direcionar para o contrário. Mas o inexperiente não consegue entender isso.
Ainda que a frase tenha sido colocado em tom de hipérbole, ela leva pessoas inexperientes ao erro. E as inexperientes costumam ficar assim por anos, décadas, a vida toda, porque compra ideias erradas a vida toda. Éo que eu falo, de treinar o erro, é só ele que a pessoa quer. É assim que nasce terraplanismos.
Outra frase que complica:
eles são fundamentais para desenvolver um software robusto
Isso não é verdade, o que é fundamental é ter desenvolvedores bons, com fundamentos em ordem, com capacidade de raciocínio, domínio da computação e outras ciências. Framework pode ajudar alguns casos, mas frequentemente só da á a sensação que está fazendo algo bom. Inclusive vejo frequentemente a pessoa correr mais porque o carro tem airbag (isto é uma analogia). Quem faz algo baseado em crenças e receitas de bolo/modinhas não entende isso.
Deve existir, mas não lembro de nenhuma pessoa realmente experiente defender o uso de frameworks. Isso não quer dizer que a pessoa diz que você não deve usar, mas é uma defesa que você deve saber fazer sem ele, e ele ser só algo que pode ajudar e ter certeza que está ajudando mais que atrapalhando, até porque a pessoa só vê atrapalhar muito tempo depois, quando vê, porque a inexperiência dela não deixa ver. A pessoa usa o framework pelo prqazer imediato sem pensar nas conseuências, ela faz isso porque acha que vai arrumar emprego mais fácil. Experientes fazem ponderações.
Essencialmente a defesa dos frameworks é feita por inexperientes, e sempre de forma rasa, só olhando um lado e frequentemente equivocada. Então o downs provavelmente é pelo texto ser ingênuo e nem dá uma boa resposta para o título.
Eu tenho anedotas que dizem o contrário do relatado, então o oposto é que é o certo? Não. Seria simplório.
Ignore quem não te dá boas justificaticas, quem não é ponderado, quem não é experiente, e mais ainda quem é teimoso.
Algumas postagens minhas aqui sobre o assunto:
- https://www.tabnews.com.br/devEmpty/sobre-frameworks
- https://www.tabnews.com.br/maniero/cdf41dac-e586-4c8c-b330-61fcc5d0658b
- https://www.tabnews.com.br/leoCastr0/qual-sua-opiniao-sobre-o-movimento-frameworkless
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).
Talvez você seja um dos programadores Laravel ou React, e não JavaScript e PHP... Se um dia esses frameworks simplesmente decideram que serão um serviço ou não forem mais mantidos, o que você fará?
Ignore quem te diz que não precisamos de frameworks.
Não sei você, mas uma pessoa que trabalha com tecnologia e faz uma afirmação dessa, passa a sensação de uma mente fechada, cujo não é flexível o suficiente para trabalhar com coisas fora da sua zona de conforto.
Para você, iniciante, não cair nessa:
Frameworks como: Next.js, Nuxt.js e outros não são ruins. Na verdade eles auxiliam e muito na hora do desenvolvimento. Eu mesmo utilizo Next.js bastante por causa do Next Route.
O problema está em não conseguir fazer nada sem ser com frameworks. Se você não consegue criar aplicações puras, sem auxílios algum, você ainda não precisa de um framework.
Programadores React:
Se você estudar React, você vai conseguir um emprego, mas provavelmente não irá se sustentar muito no mercado, caso não aprenda JavaScript
.
"A, mas o React é JavaScript" - Não, o React é construído usando JavaScript. Você criar aplicações usando React sem entender a camada abaixo que o é JavaScript, uma camada fundamental, só vai te fazer um digitador de código.
Muita gente sequer sabe que closures
estão por baixo dos panos do hook useState
, por exemplo. Mas, por que seria importante saber isso? Simples, se você quiser este mesmo efeito? Se você quiser criar este mesmo comportamente sem React?
Quando usar frameworks?
Existem vários tipos de frameworks. No geral, no contexto que eu mais conheço, o JavaScript, existem muitos frameworks, inclusive hoje mesmo deve ter mais uns 10.
Frameworks agilizam desenvolvimento. Você sabe criar a aplicação, você apenas quer acelerar o processo chato que é ficar repetindo aquele código todas as vezes, como o famoso formatador geral do CSS:
* {
box-sizing: border-box;
}
Existem frameworks essencias como o Express.js
para o Node, pois ele basicamente conserta a bagunça do Node
para algo mais suave, tanto de usar, quanto de aprender. Este tipo de framework está mais como um utilitário
, do meu ponto de vista. Mas no geral, você não precisa dele para usar e criar APIs com Node.
Resumindo, apenas agilizar o processo, e não tapar os buracos de sua incompetência ou dar a falsa sensação que você é um bom programador. Muita gente utiliza frameworks apenas para não ter que criar e aprender código argumentativos ou se estressar com a lógica por trás disso. Depois, vêm dizer que o mercado está exigente e é impossível conseguir algo (o que não é mentira, está difícil, mas a grande maioria não tem a competência para a vaga e afirmam que o problema são as empresas, e nunca ele).
Meus 2 cents:
Frameworks sao um mal necessario - qualquer desenvolvedor que trabalhe em uma linguagem por determinado periodo, se nao usar um framework de terceiros, vai acabar implementando seu proprio.
Por que ? Porque desenvolver eh resolver problemas atraves de programas, e isso requer produtividade - ficar re-implementado as mesmas solucoes a cada novo projeto nao eh muito produtivo (e eh enfadonho pacas).
Como sou muito old school - participei do desenvolvimento algumas dezenas de frameworks, escrevi livros e apostilas sobre como padronizar codigo, treinei pessoas em seu uso. Enfim, o normal para quem tem tempo de estrada.
Entao nao tenho nada contra frameworks - mas reconheco um problema neles: o Laravel p.ex., eh quase um ser diferente do PHP vanilla - sim, a linguagem esta la - mas a forma de fazer algumas coisas exige conhecimento das funcoes e chamadas do framework, que nao tem nada a ver com a linguagem em si (ainda que exija o conhecimento da linguagem para entender o que esta acontecendo).
Alem disso, os frameworks sao famosos por adcionar uma quantidade imensa de overhead em coisas simples, o que pode tornar a aplicacao toda um tanto lenta ou complexa sem necessidade.
Novatos devem usar frameworks ? Claro - senao tao mortos. Mas, conhecer a implementacao APENAS via framework tambem eh um caminho da extincao a medio prazo, porque os frameworks mudam muito ao longo do tempo, ate acaberem inuteis ou trocados por abordagens mais modernas.
Como dizem outros comentaristas, conheca os fundamentos ! mas vai trabalhar que os boletos nao esperam.
Ignore quem te diz que não precisamos de frameworks.
E com isso em mente, o jovem iniciante cria uma simples página com um formulário de contato usando: React, React Hook Form, NextJS, Tailwind.... Tudo isso em um formulário de 3 campos. Esse é exemplo eu vi acontecer de verdade.
Fora outros casos de projetos que já peguei de programadores que usaram Laravel que certamente não sabiam PHP, ou Adonis que também não sabiam o básico do JS.
E várias outras bizarrices que já vi em fóruns por aí, como: "Como ler um arquivo texto com o Laravel?"
Não há problemas em usar frameworks, desde que domine minimamente a linguagem base do baixo dele, e que seja capaz de criar um sistema simples do começo ao fim sem necessidade de frameworks.
A minha experiência vai no sentido oposto ao texto. Eu evito frameworks e bibliotecas de terceiros sempre que consigo.
Reinventar a roda é parte do processo. É uma parte relacionada a reaprender.
Vou deixar os meus 2 centavos (de dólar, pq vale mais)
Meu argumento é neutro, então eu não concordo e nem discordo da sua postagem. Eu entrei na faculdade 3 anos atrás sem conhecimento nenhum, nenhuma linguagem ou lógica de programação.
No primeiro ano, eu me deparei com o famoso React (REAQUITI, segundo o meu mano lucasmontano
), e eu fiquei maluco para aprender ele.
React não é um framework, ele é uma biblioteca, mas vamos usar ele de exemplo.
Meu conhecimento com Javascript era horrível, eu sabia fazer algumas coisas, mas na maioria do tempo eu só copiava códigos ou fazia alguma gambiarra horrível.
Se você começa aprendendo a biblioteca ou o framework direto, parece que tudo pertence a ele. Você começa a pesquisar "como fazer tal coisa no React", ao invés de buscar como fazer com Javascript, e o iniciante começa a imaginar que só o React faz aquilo.
Bom, depois de perceber o meu erro, eu foquei em aprender a base denovo, e me aprimorei em Javascript.
Estudei Vite, ReactJS, NextJS, Typescript e tudo oq vc pode imaginar no ecossistema Javascript e Node, um ano depois, eu consegui meu estágio como Desenvolvedor Front-End, 2 meses depois eu fui promovido para Júnior.
O que fez eu me destacar, foi a capacidade de conseguir resolver coisas simples sem o auxilio dos frameworks.
Eu tenho 2 anos de experiência profissional agora, e já terminei a faculdade
Saber usar frameworks sempre vai te ajudar, como o caso do App Router do Next.js, ou o SSR do ReactJS.
Mas, um framework não vai garantir que você entregue uma aplicação de alto nível.
Estude a base, estude a linguagem e decida se o seu problema precisa de uma biblioteca ou framework para ser resolvido.
Uma boa tradução para 'framework' é a palavra 'arcabouço'. E quando você entende oq é um arcabouço faz todo sentido no desenvolvimento de software.
Eu queria entender por qur deram deslike no post dele. Eu achei interessante e trouxe um tema muito importante para a discussão.