{"id":9377,"date":"2019-11-26T08:05:21","date_gmt":"2019-11-26T07:05:21","guid":{"rendered":"https:\/\/www.makingscience.com\/blog\/que-es-un-framework\/"},"modified":"2019-11-26T08:05:21","modified_gmt":"2019-11-26T07:05:21","slug":"que-es-un-framework","status":"publish","type":"post","link":"https:\/\/www.makingscience.com\/es\/blog\/que-es-un-framework\/","title":{"rendered":"Qu\u00e9 es un framework"},"content":{"rendered":"<div>Qu\u00e9 es un framework<\/div>\n<div><span style=\"font-weight: 400;\">Los frameworks son un <\/span><b>conjunto de herramientas<\/b><span style=\"font-weight: 400;\"> que, acompa\u00f1ados de una estructura o esqueleto base, nos permiten el desarrollo de aplicaciones web de forma r\u00e1pida, escalable y mantenible.\u00a0<\/span>  <span style=\"font-weight: 400;\">Principalmente nos facilita el desarrollo \u00e1gil partiendo de una base com\u00fan para la mayor\u00eda nuestros proyectos. Esto nos permitir\u00e1 reducir los tiempos de desarrollo, as\u00ed como beneficiarnos de un c\u00f3digo s\u00f3lido y de buena calidad gracias a que se trata de desarrollos de gran confianza y con gran soporte por parte de la comunidad.<\/span>  <span style=\"font-weight: 400;\">Otro concepto a tener en cuenta cuando hablamos de frameworks es que existen diferentes tipos dentro del mundo del desarrollo web. Estos son algunos de los m\u00e1s utilizados:<\/span>  <strong>Back-end:<\/strong> <\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Express (Javascript)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Django (Phyton)\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ruby on Rails (Ruby)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Laravel (PHP)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Spring (Java)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Zend (PHP)<\/span><\/li>\n<\/ul>\n<p> &nbsp;  <strong>Front-end Javascript<\/strong> <\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Angular<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">React<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Vue<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ember<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Backbone<\/span><\/li>\n<\/ul>\n<p> &nbsp;  <strong>Front-end CSS<\/strong> <\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Bootstrap<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Foundation<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Bulma<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Taliwind CSS<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Uikit<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Semantic UI<\/span><\/li>\n<\/ul>\n<p> &nbsp;  <strong>PHP<\/strong> <\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Symphony<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Laravel<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">CakePHP<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">CodeIgniter<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Zend<\/span><\/li>\n<\/ul>\n<p> &nbsp; <\/p>\n<h2><strong>Diferenciando un framework de un CMS<\/strong><\/h2>\n<p> <span style=\"font-weight: 400;\">Son conceptos que pueden llevar al error ya que pueden parecer similares, pero no son lo mismo. Un CMS es un gestor de contenido preparado para facilitar la gesti\u00f3n de tareas sin necesidad de tener ning\u00fan tipo de conocimientos de programaci\u00f3n, mientras que un Framework por s\u00ed solo no est\u00e1 preparado para realizar ninguna funcionalidad, sino que requiere de la intervenci\u00f3n de un equipo de desarrollo para que realice cualquier acci\u00f3n. Por ejemplo, <\/span><b>un CMS puede contener un Framework en su interior, pero no a la inversa<\/b><span style=\"font-weight: 400;\">.<\/span>  &nbsp; <\/p>\n<h2><strong>Ventajas de un framework<\/strong><\/h2>\n<ul>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/es.wikipedia.org\/wiki\/Programaci%C3%B3n_orientada_a_objetos\" target=\"_blank\" rel=\"noopener\"><b>Programaci\u00f3n Orientada a Objetos<\/b><\/a><span style=\"font-weight: 400;\">: Los framework est\u00e1n basados en esta metodolog\u00eda de programaci\u00f3n que nos asegura una estructura ordenada y eficiente.<\/span><\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/es.wikipedia.org\/wiki\/Modelo%E2%80%93vista%E2%80%93controlador\" target=\"_blank\" rel=\"noopener\"><b>Modelo Vista Controlador<\/b><\/a><span style=\"font-weight: 400;\">: Est\u00e1n desarrollados siguiendo este patr\u00f3n de arquitectura que separa la l\u00f3gica de la vista de la aplicaci\u00f3n.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Seguridad<\/b><span style=\"font-weight: 400;\">: Son desarrollos muy solventes en los que normalmente hay detr\u00e1s alguna gran compa\u00f1\u00eda (Facebook, Google..), aunque tambi\u00e9n es com\u00fan que se trate de una fundaci\u00f3n u organizaci\u00f3n la que se encargue del desarrollo y mantenimiento.<\/span><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\"><b>Soporte<\/b><span style=\"font-weight: 400;\">: Se trata de desarrollos muy populares y disponen de una comunidad muy activa, adem\u00e1s de que reciben constantes actualizaciones y mejoras por parte de los creadores.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Mantenimiento<\/b><span style=\"font-weight: 400;\">: Cuando los equipos est\u00e1n habituados al funcionamiento de un framework, facilita mucho el trabajo en equipo al utilizar siempre la misma sintaxis y estructura de dise\u00f1o.<\/span><\/li>\n<\/ul>\n<p> &nbsp; <\/p>\n<h2><strong>Desventajas<\/strong><\/h2>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Curva de aprendizaje elevada:<\/strong> Cada framework es un mundo y normalmente no es sencillo manejar con solvencia varios de ellos por lo que es importante que escojamos adecuadamente cu\u00e1les son los que vamos a utilizar en nuestros proyectos.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Desconocimiento del funcionamiento del core del framework<\/b><span style=\"font-weight: 400;\">: Al ser desarrollos muy complejos no tenemos control sobre el funcionamiento del mismo, lo que nos deja un poco a la voluntad del equipo de desarrollo en cuanto a tema de actualizaciones importantes de seguridad o funcionales.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>M\u00e1s lentos que un desarrollo a medida:<\/b><span style=\"font-weight: 400;\"> Esto se debe principalmente al tener sobrecarga de clases y bibliotecas antes de que el c\u00f3digo sea llamado e incluso un exceso de c\u00f3digo que puede que nunca sea utilizado.\u00a0<\/span><\/li>\n<\/ul>\n<p> <span style=\"font-weight: 400;\">En general, el uso de un framework nos aporta m\u00e1s beneficios que desventajas a la hora de decidirnos por su uso. Se trata de una manera muy optimizada de trabajar y que permite <\/span><b>unificar la metodolog\u00eda de trabajo<\/b><span style=\"font-weight: 400;\"> dentro de un equipo de desarrollo. Adem\u00e1s, podemos aprovechar su solvencia para dotar a nuestros proyectos de gran<\/span><b> seguridad, eficiencia y mantenibilidad<\/b><span style=\"font-weight: 400;\">.<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Qu\u00e9 es un framework Los frameworks son un conjunto de herramientas que, acompa\u00f1ados de una estructura o esqueleto base, nos permiten el desarrollo de aplicaciones web de forma r\u00e1pida, escalable y mantenible.\u00a0 Principalmente nos facilita el desarrollo \u00e1gil partiendo de una base com\u00fan para la mayor\u00eda nuestros proyectos. Esto nos permitir\u00e1 reducir los tiempos de [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":9378,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[34],"tags":[68],"class_list":["post-9377","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology-ai","tag-web-development"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/posts\/9377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/comments?post=9377"}],"version-history":[{"count":0,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/posts\/9377\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/media\/9378"}],"wp:attachment":[{"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/media?parent=9377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/categories?post=9377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.makingscience.com\/es\/wp-json\/wp\/v2\/tags?post=9377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}