{"id":21640,"date":"2023-02-14T10:31:00","date_gmt":"2023-02-14T13:31:00","guid":{"rendered":"https:\/\/blog.locaweb.com.br\/?p=21640"},"modified":"2023-06-12T10:12:33","modified_gmt":"2023-06-12T13:12:33","slug":"o-que-e-framework","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-framework\/","title":{"rendered":"O que \u00e9 framework e quando utilizar?"},"content":{"rendered":"\n<p>Ol\u00e1 pessoal, tudo bem com voc\u00eas? Hoje, vamos falar sobre um tema um tanto importante quando falamos de desenvolvimento. As ferramentas que facilitam demais o desenvolvimento de sistemas complexos, mas, \u00e0s vezes, acabam colocando uma grande complexidade no que precisamos desenvolver, vamos falar de frameworks.<\/p>\n\n\n\n<p>Ruby on rails, Vue e Angular no <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/o-que-e-javascript\/\">JavaScript<\/a> Front-end, Express no Node.js, Phoenix no Elixir, Laravel e Symfony no PHP, Spring Boot no Java, entre outros. Com a ideia de desenvolver o mais r\u00e1pido poss\u00edvel, hoje em dia se exige demais da <strong>pessoa desenvolvedora<\/strong> que ela saiba um framework para facilitar o desenvolvimento de sistemas complexos. Mas, ser\u00e1 que devemos usar framework em tudo que desenvolvermos como dev?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 biblioteca?<\/h2>\n\n\n\n<p>Primeiramente, para quem ainda est\u00e1 iniciando os estudos em desenvolvimento \u00e9 importante definir o que \u00e9 um framework. Mas para isso, precisamos definir antes o que \u00e9 uma biblioteca.<\/p>\n\n\n\n<p>Biblioteca \u00e9 um conjunto de fun\u00e7\u00f5es, classes ou qualquer outro tipo de c\u00f3digo desenvolvido para abstrair (facilitar) a resolu\u00e7\u00e3o de um problema espec\u00edfico em desenvolvimento, desde que esse c\u00f3digo n\u00e3o esteja dentro da pr\u00f3pria <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/linguagens-de-programacao-web\/\">linguagem de programa\u00e7\u00e3o<\/a> (no core da linguagem) utilizada. <\/p>\n\n\n\n<p>Por exemplo, no PHP temos a classe DateTime para manipular datas e hor\u00e1rios, essa classe n\u00e3o \u00e9 uma biblioteca, pois \u00e9 uma classe nativa da linguagem. Por\u00e9m, existe um <strong>conjunto de funcionalidades<\/strong> chamada Carbon, que tamb\u00e9m trabalha com datas e inclusive herda a classe DateTime, como o Carbon n\u00e3o pertence ao core da <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/dicas-de-php\/\">linguagem PHP<\/a> e resolve um problema espec\u00edfico: manipula\u00e7\u00e3o de datas, o Carbon \u00e9 uma biblioteca.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 framework?<\/h2>\n\n\n\n<p>E agora sabendo o que \u00e9 biblioteca, o que \u00e9 framework? Framework \u00e9 um <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/desenvolvimento-hibrido\/\">conjunto de bibliotecas<\/a> que se conversam capaz de abstrair o desenvolvimento de uma aplica\u00e7\u00e3o (no contexto de sua utiliza\u00e7\u00e3o) de ponta a ponta. Ou seja, utilizando Ruby on Rails, Laravel ou\u00a0Sprint Boot, exemplo, devs conseguem <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/9-tecnologias-para-quem-trabalha-com-back-end\/\">desenvolver o back-end<\/a> de uma aplica\u00e7\u00e3o de ponta a ponta: desenvolvimento e consumo de APIs, manipula\u00e7\u00e3o de arquivos, <strong>gerenciamento de camadas de seguran\u00e7a<\/strong>, autentica\u00e7\u00e3o de usu\u00e1rios, gerenciamento de requisi\u00e7\u00f5es, gerenciamento de sess\u00f5es, entre outras coisas; do mesmo modo que utilizando Angular, por exemplo, devs conseguem desenvolver de ponta a ponta o front-end de uma aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p>Entendendo isso, parece maravilhoso usarmos frameworks para tudo que formos desenvolver, n\u00e9? J\u00e1 que esses <strong>conjuntos de bibliotecas<\/strong> fornecem uma facilidade para desenvolvermos uma aplica\u00e7\u00e3o de ponta a ponta. \u00c9 um pouquinho mais complexo do que isso.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"812\" height=\"500\" src=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2016\/06\/o-que-e-biblioteca-framework.png\" alt=\"o que \u00e9 biblioteca framework\" class=\"wp-image-39321\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Quando utilizar frameworks?<\/h2>\n\n\n\n<p>Utilizar <strong>frameworks em desenvolvimento<\/strong> \u00e9 um passo importante para uma pessoa desenvolvedora. Algumas coisas que s\u00e3o dif\u00edceis de implementar e acabam demandando muito tempo de desenvolvimento est\u00e3o <strong>facilmente dispon\u00edveis nos frameworks<\/strong>. Por exemplo, as bibliotecas de banco de dados utilizadas nos frameworks j\u00e1 implementam solu\u00e7\u00f5es que evitam <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/o-que-preciso-para-trabalhar-com-sql\/\">SQL injection<\/a>, fazer <strong>requisi\u00e7\u00f5es para APIs<\/strong> externas geralmente s\u00e3o bastante simples quando usamos framework, em alguns casos os frameworks s\u00e3o capazes at\u00e9 de gerar a maioria das telas de nossas aplica\u00e7\u00f5es.<\/p>\n\n\n\n<p>Frameworks s\u00e3o utilizados e desenvolvidos por muitas pessoas dev, sendo assim s\u00e3o c\u00f3digos amplamente testados e revisados pela comunidade, aumentando a <strong>confiabilidade dos sistemas desenvolvidos<\/strong>. <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/como-melhorar-a-seguranca-do-seu-site\/\">Quest\u00f5es de seguran\u00e7a<\/a> tamb\u00e9m s\u00e3o bastante focadas por quem desenvolve, grande parte dos problemas comuns de seguran\u00e7a de aplica\u00e7\u00f5es j\u00e1 est\u00e3o solucionados quando utilizamos um framework.<\/p>\n\n\n\n<p>Al\u00e9m disso tudo, utilizando um framework a pessoa desenvolvedora acaba adquirindo o jeito de desenvolver naquele framework. Como disse anteriormente: as bibliotecas dentro de um framework conversam entre si, e em geral o tipo de conversa \u00e9 muito engessado, fazendo com que a <strong>pessoa desenvolvedora<\/strong> acabe ficando ref\u00e9m do modo de escrever utilizando um framework. <\/p>\n\n\n\n<p>Em cada framework, por exemplo, \u00e9 utilizado <strong>tipos de padr\u00f5es de projeto<\/strong>, escrita de c\u00f3digo e componentiza\u00e7\u00e3o espec\u00edficos, o que \u00e0s vezes faz com que cada pessoa se adapte a um framework espec\u00edfico. Esse acoplamento acaba fazendo com que seja dif\u00edcil trocar de framework em um projeto depois de escolhido.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mas se os frameworks s\u00e3o t\u00e3o bons, devo come\u00e7ar a programar aprendendo um framework direto?<\/h2>\n\n\n\n<p>Para uma pessoa iniciante em desenvolvimento um framework abstrai muito as camadas de desenvolvimento, por\u00e9m, \u00e9 importante para uma pessoa que est\u00e1 come\u00e7ando, primeiramente entender como a linguagem funciona em um todo. O que se pode fazer com ela nativamente, como as fun\u00e7\u00f5es dentro da linguagem s\u00e3o utilizadas. <\/p>\n\n\n\n<p>\u00c9 importante para quem est\u00e1 come\u00e7ando entender como tudo funciona debaixo dos panos, at\u00e9 mesmo para poder lidar com erros e ajustes que devem ser feitos a n\u00edvel de linguagem dentro de um framework. No final, frameworks continuam sendo um <strong>conjunto de bibliotecas<\/strong> de uma linguagem espec\u00edfica, ent\u00e3o, quanto mais se sabe da linguagem, mais f\u00e1cil \u00e9 para voc\u00ea se adaptar aos diversos frameworks daquela linguagem.<\/p>\n\n\n\n<p>Sendo assim, o ideal \u00e9 que uma pessoa que esteja <strong>iniciando no desenvolvimento<\/strong> desenvolva alguns projetos utilizando a linguagem pura e suas funcionalidades nativas e depois parta para os frameworks, para entender o que \u00e9 abstra\u00eddo nos frameworks e como um mesmo problema pode ser resolvido de diversos modos em desenvolvimento.<\/p>\n\n\n\n<p>Como disse anteriormente, depois que um projeto come\u00e7a em um framework, dificilmente ele ser\u00e1 refeito em outro framework, al\u00e9m disso, em algumas empresas existem projetos em v\u00e1rios deles. \u00c9 interessante para quem est\u00e1 come\u00e7ando <strong>entender a fundo a linguagem<\/strong> para realmente facilitar o entendimento do que est\u00e1 sendo escrito em um framework espec\u00edfico, por\u00e9m com a tranquilidade de poder experimentar e n\u00e3o ficar s\u00f3 em um framework. <\/p>\n\n\n\n<p>Com a ansiedade das pessoas em <strong>entrar na \u00e1rea de desenvolvimento<\/strong> e n\u00e3o parar para estudar as bases e as linguagens, acabamos tendo muito o que chamamos de devs de framework. Uma pessoa que desenvolve aplica\u00e7\u00f5es sem entender como elas funcionam debaixo dos panos, apenas usando um \u00fanico framework. Ou seja, se a pessoa tiver que fazer algo utilizando a linguagem nativa ou outro framework ela n\u00e3o \u00e9 capaz de resolver esses problemas, j\u00e1 que est\u00e1 condicionada a apenas aquele processo de desenvolvimento e com aquele framework espec\u00edfico.<\/p>\n\n\n\n<p>Desejo que tenham curtido o artigo de hoje, valeu mesmo por acompanhar aqui o blog.<\/p>\n\n\n\n<p>At\u00e9 a pr\u00f3xima!<\/p>\n\n\n\n<div class=\"user-cta-block\" style=\"background-color:#2E333C;\"><p>Tenha a melhor performance nos seus projetos como DEV!<\/p><a class=\"user-cta\" style=\"background-color: #00acc8\n;\" href=\"https:\/\/www.locaweb.com.br\/cloud\/vps-locaweb\/?utm_source=blog&#038;utm_medium=own&#038;utm_campaign=blog-vps-o-que-e-framework&#038;utm_id=blog-vendas\" target=\"_blank\" rel=\"noopener\">Conhe\u00e7a o VPS Locaweb<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 pessoal, tudo bem com voc\u00eas? Hoje, vamos falar sobre um tema um tanto importante quando falamos de desenvolvimento. As ferramentas que facilitam demais o desenvolvimento de sistemas complexos, mas, \u00e0s vezes, acabam colocando uma grande complexidade no que precisamos desenvolver, vamos falar de frameworks. Ruby on rails, Vue e Angular no JavaScript Front-end, Express [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":39320,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-21640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/21640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=21640"}],"version-history":[{"count":3,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/21640\/revisions"}],"predecessor-version":[{"id":41735,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/21640\/revisions\/41735"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/39320"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=21640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=21640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=21640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}