{"id":144,"date":"2017-08-31T17:38:38","date_gmt":"2017-08-31T22:38:38","guid":{"rendered":"http:\/\/www.araceliroma.com.mx\/blog\/?p=144"},"modified":"2017-08-31T17:38:38","modified_gmt":"2017-08-31T22:38:38","slug":"que-es-un-framework","status":"publish","type":"post","link":"http:\/\/www.araceliroman.com.mx\/blog\/que-es-un-framework\/","title":{"rendered":"\u00bfQu\u00e9 es un framework?"},"content":{"rendered":"<h6 style=\"text-align: center;\">El concepto framework (cuya traducci\u00f3n aproximada ser\u00eda \u201cmarco de trabajo\u201d), se emplea en \u00e1mbitos del desarrollo de software y m\u00e1s recientemente se aplica en el desarrollo web.<\/h6>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-147\" src=\"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/framework.jpg\" alt=\"framework\" width=\"1000\" height=\"671\" srcset=\"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/framework.jpg 1000w, http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/framework-300x201.jpg 300w, http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/framework-768x515.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>El concepto de framework no es sencillo de definir o explicar, seg\u00fan Wikipedia un framework\u200b es un conjunto estandarizado de conceptos, pr\u00e1cticas y criterios para enfocar un tipo de problem\u00e1tica particular que sirve como referencia, para enfrentar y resolver nuevos problemas de \u00edndole similar.<\/p>\n<p>Dicho en otras palabras, y centr\u00e1ndonos en el desarrollo web, podr\u00edamos decir que un framework es un conjunto estandarizado y personalizable que facilitan la reutilizaci\u00f3n de c\u00f3digo de elementos comunes usados en el desarrollo web, que facilita y apoya el desarrollo de sitios din\u00e1micos, aplicaciones web y servicios web.<\/p>\n<p><!--more--><\/p>\n<p>Se puede considerar como una aplicaci\u00f3n gen\u00e9rica incompleta a la que le podemos agregar o modificar ciertas piezas para completar nuestro proyecto.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-145\" src=\"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/preguna-237x300.jpg\" alt=\"\" width=\"237\" height=\"300\" srcset=\"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/preguna-237x300.jpg 237w, http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/preguna-768x972.jpg 768w, http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/preguna.jpg 800w\" sizes=\"auto, (max-width: 237px) 100vw, 237px\" \/>Por poner un ejemplo simple pensemos en un profesor de primaria que les pide de tarea a sus alumnos que investiguen e identifiquen en un mapa los Estados de la Rep\u00fablica M\u00e9xicana que son los principales productores de caf\u00e9, entonces cada alumno realiza una investigaci\u00f3n, comprar\u00eda un mapa de la Rep\u00fablica con divisi\u00f3n pol\u00edtica y con colores en mano comienzan a iluminar los principales estados donde se produce el caf\u00e9.<\/p>\n<p>El mapa es el mismo para todos, los colores podr\u00edan ser de distintas marcas o caracter\u00edsticas pero al final sirven para el mismo prop\u00f3sito, sin embargo cada ni\u00f1o iluminar\u00e1 con los colores que prefiera cada entidad y aplicar\u00e1 su propio estilo para obtener un resultado propio (diferentes colores por ejemplo), aunque con caracter\u00edsticas similares (son los mismos estados).<\/p>\n<p>En este ejemplo el mapa y los colores ser\u00edan parte del framework (elementos que todos van a emplear), mientras que los ni\u00f1os ser\u00edan el equivalente al desarrollador o programador web, quienes usan elementos en com\u00fan pero dan resultados diferentes.<\/p>\n<p><b>Ventajas y Desventajas del uso de Frameworks<\/b><\/p>\n<p>\u00bfQu\u00e9 hubiera pasado si estos ni\u00f1os no hubieran comprado un mapa en la papeler\u00eda?, pues tendr\u00edan que dibujarlo en su libreta y eso les habr\u00eda llevado m\u00e1s tiempo y dedicaci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-146\" src=\"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/ventajas-300x247.jpg\" alt=\"\" width=\"300\" height=\"247\" srcset=\"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/ventajas-300x247.jpg 300w, http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/ventajas.jpg 364w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>De la misma manera, utilizar un framework nos permite acelerar el proceso de desarrollo de la p\u00e1gina web, nos deja reutilizar c\u00f3digo, eliminando, de esta forma, el exceso de carga asociado con actividades comunes empleadas en desarrollos web. De esta manera nos centramos en la resoluci\u00f3n del verdadero problema (investigar cu\u00e1les son los principales estados productores de caf\u00e9).<\/p>\n<p>Un framework nos permite unificar nuestro trabajo mediante el uso de componentes, plantillas y \u00a0patrones en com\u00fan, de tal forma que un proyecto que es desarrollado por una persona bien puede otra distinta dar seguimiento o mantenimiento, ya que cuenta con un esquema uniforme com\u00fan.<\/p>\n<p>Pero no todo es miel sobre hojuelas, utilizar framework tambi\u00e9n tiene sus desventajas, de hecho existen muchos desarrolladores a los que no les gusta usar frameworks y prefieren programar \u201ca mano\u201d y personalizar todo lo que emplear\u00e1n en su web, evidentemente esto implica un mayor tiempo para desarrollar el proyecto, pero su web contar\u00eda con el c\u00f3digo y elementos que son indispensables para el correcto funcionamiento, ni m\u00e1s ni menos, solo lo esencial.<\/p>\n<p>Regresando a nuestro ejemplo, pensemos que tenemos 24 l\u00e1pices de colores, pero para nuestra tarea solo emplearemos 4 para iluminar (Chiapas, Veracruz, Puebla y Oaxaca), lo que significa que 20 colores no los usamos y solo ocupan espacio llenando nuestra lapicera, ese espacio podr\u00edamos haberlo empleado para guardar nuestro l\u00e1piz, goma o bol\u00edgrafo que nos ser\u00edan \u00fatiles en la escuela, pero ahora el espacio est\u00e1 lleno por algo que no usaremos, por lo que tal vez debamos comprar una lapicera m\u00e1s grande para meter las cosas que si vamos a usar.<\/p>\n<p>De la misma forma, muchas veces un framework va incluir elementos o recursos que no vamos a emplear, pero que ocupan en espacio y absorben recursos de nuestro servidor que bien podr\u00edamos usar para otra cosa.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<p style=\"text-align: center;\"><b>Ventajas<\/b><\/p>\n<\/td>\n<td>\n<p style=\"text-align: center;\"><b>Desventajas<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>Evitar escribir c\u00f3digo repetitivo<\/td>\n<td>Coste inicial de aprendizaje<\/td>\n<\/tr>\n<tr>\n<td>Utiliza buenas pr\u00e1cticas de desarrollo y dise\u00f1o (todo m\u00e1s ordenado)<\/td>\n<td>Si deseas hacer un cambio al c\u00f3digo debes reescribir esa parte de nuevo.<\/td>\n<\/tr>\n<tr>\n<td>Permite hacer cosas m\u00e1s avanzadas con mayor facilidad<\/td>\n<td>Demanda de recursos innecesarios.<\/td>\n<\/tr>\n<tr>\n<td>Desarrollos m\u00e1s r\u00e1pidos y seguros.<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>En resumen podr\u00edamos decir que usar frameworks tiene ventajas y desventajas (como todo en esta vida), cada quien ser\u00e1 libre de elegir si los emplea o no para sus proyectos, en lo personal considero que tienen m\u00e1s ventajas (sobre todo a largo plazo) y estoy a favor de utilizarlos, sin embargo, tal vez tengamos algunos proyectos que sean tan peque\u00f1os que no consideremos necesario emplear alg\u00fan framework, o puede que no encontremos alguno que se adapte a nuestras necesidades, o simplemente no desee dedicar tiempo a buscar alguno y optemos por no emplearlos o terminemos construyendo nuestro propio framework.<\/p>\n<p>En futuros post les presentare algunos de los frameworks m\u00e1s utilizados en el desarrollo web. D\u00e9jame tus comentarios y dime,<strong> \u00bfest\u00e1s a favor o encontra de utilizar frameworks en desarrollo web?<\/strong><\/p>\n<p><span style=\"color: #999999;\">Referencias:<\/span><\/p>\n<ul>\n<li><span style=\"color: #999999;\">Tovar, Carlos, (Noviembre 2013), Frameworks, SlideShare, <a href=\"https:\/\/es.slideshare.net\/GeraldynDeSousa\/framework-30197256\">https:\/\/es.slideshare.net\/GeraldynDeSousa\/framework-30197256<\/a>.<\/span><\/li>\n<li><span style=\"color: #999999;\">\u00bfDeber\u00edas usar un framework para tu proyecto web?, (2016), Emprenderalia magazine, <a href=\"http:\/\/www.emprenderalia.com\/deberias-usar-un-framework-para-tu-proyecto-web\/\">http:\/\/www.emprenderalia.com\/deberias-usar-un-framework-para-tu-proyecto-web\/<\/a><\/span><\/li>\n<li><span style=\"color: #999999;\">Framework, (7 de julio de 2017), Wikipedia, <a href=\"https:\/\/es.wikipedia.org\/wiki\/Framework\">https:\/\/es.wikipedia.org\/wiki\/Framework<\/a><\/span><\/li>\n<li><span style=\"color: #999999;\">\u00bfQu\u00e9 es un framework y para qu\u00e9 se utiliza?, (12 de julio de 2015), Orix, <a href=\"https:\/\/www.orix.es\/que-es-un-framework-y-para-que-se-utiliza\">https:\/\/www.orix.es\/que-es-un-framework-y-para-que-se-utiliza<\/a><\/span><\/li>\n<\/ul>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c  no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 73px; left: 20px;\">Guardar<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El concepto framework (cuya traducci\u00f3n aproximada ser\u00eda \u201cmarco de trabajo\u201d), se emplea en \u00e1mbitos del desarrollo de software y m\u00e1s recientemente se aplica en el desarrollo web. El concepto de &#8230;<\/p>\n","protected":false},"author":1,"featured_media":148,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[17],"tags":[26,24,27,25],"class_list":["post-144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","tag-desventajas","tag-framework","tag-que-es","tag-ventajas"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"http:\/\/www.araceliroman.com.mx\/blog\/wp-content\/uploads\/2017\/08\/destacada.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6rWqy-2k","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":2,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"predecessor-version":[{"id":150,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions\/150"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/media\/148"}],"wp:attachment":[{"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.araceliroman.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}