<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Faber Andrés Vergara</title>
    <description>The latest articles on DEV Community by Faber Andrés Vergara (@emamut).</description>
    <link>https://dev.to/emamut</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F68735%2F345c2d18-8bc0-42c1-b16b-3da874389a33.jpeg</url>
      <title>DEV Community: Faber Andrés Vergara</title>
      <link>https://dev.to/emamut</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emamut"/>
    <language>en</language>
    <item>
      <title>La importancia del diseño móvil en la web</title>
      <dc:creator>Faber Andrés Vergara</dc:creator>
      <pubDate>Wed, 30 Mar 2016 12:58:48 +0000</pubDate>
      <link>https://dev.to/emamut/la-importancia-del-diseno-movil-en-la-web-5eg</link>
      <guid>https://dev.to/emamut/la-importancia-del-diseno-movil-en-la-web-5eg</guid>
      <description>&lt;p&gt;30 March 2016&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Desde marzo de 2014 a 2015, los usuarios que únicamente emplean el ordenador de sobremesa para navegar en Internet se han reducido del 20% al 10%&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“El mundo tecnológico avanza a pasos agigantados” este cliché nunca ha sido más cierto como en la última década. Lo que ayer fue un hecho, hoy es obsoleto y esto se debe a la facilidad que tenemos para acceder a toda clase de información.&lt;/p&gt;

&lt;h3&gt;
  
  
  Los tiempos cambian
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2h1TJFCd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/0%2AeCXjaRhkKKLNYHog.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2h1TJFCd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/0%2AeCXjaRhkKKLNYHog.jpg" alt="boy picture in multiple devices" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recuerdo que hace muchos años trabajaba en una Agencia de Viajes y unos profesionales viajaban a un congreso en Alemania y necesitábamos determinar que hotel era el más cercano al sitio donde se iba a desarrollar dicho congreso, como era el “encargado” de tecnología me encomendaron esta dura tarea, para la cual emplee &lt;a href="https://icq.com"&gt;ICQ&lt;/a&gt; (el chat mas cotizado del momento) contacte varias personas que vivieran en Berlín que al menos hablaran inglés y logramos determinar cuál era la mejor opción, los pasajeros quedaron contentos al regresar de su congreso ¿Saben cuanto tiempo me tomó? &lt;strong&gt;¡Casi dos días!&lt;/strong&gt; Tarea que ahora con &lt;a href="http://maps.google.com"&gt;Google Maps&lt;/a&gt; la hubiera hecho en minutos.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¡Ah! pero yo tengo un sitio web
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4OVBbnG7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2ARZiHqHr0pfklER-_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4OVBbnG7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2ARZiHqHr0pfklER-_.png" alt="responsive devices" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El punto es, que hasta hace unos años bastaba con &lt;em&gt;tener&lt;/em&gt; un sitio web y estábamos con “el último grito de la moda”, en cambio ahora nuestro sitio debe adaptarse a &lt;strong&gt;dispositivos móviles&lt;/strong&gt; y ahí muchos no resisten el análisis.&lt;/p&gt;

&lt;p&gt;Además el mayor buscador web del mundo &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; modificó su &lt;a href="http://www.marketingdirecto.com/digital-general/digital/el-nuevo-cambio-del-algoritmo-de-google-podria-danar-seriamente-a-millones-de-pequenas-empresas/"&gt;algoritmo&lt;/a&gt; el año pasado dando mayor importancia en sus resultados a los sitios mobile friendly.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Y ahora quién podrá defenderme?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e9kc71nb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2A7mwWrhwR55nrlNJS.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e9kc71nb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/0%2A7mwWrhwR55nrlNJS.jpg" alt="Jackei Chan WTF" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No todo está perdido, nuestra empresa cuenta con profesionales en &lt;strong&gt;diseño y desarrollo web&lt;/strong&gt; quienes podemos brindarte asesoría para una estrategia SEO para tu sitio web, &lt;a href="https://codedebug.co/contactenos"&gt;contactanos&lt;/a&gt; ahora&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at codedebug.co on March 30, 2016.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>responsive</category>
      <category>design</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Refactorizando código</title>
      <dc:creator>Faber Andrés Vergara</dc:creator>
      <pubDate>Thu, 14 Jan 2016 18:53:32 +0000</pubDate>
      <link>https://dev.to/emamut/refactorizando-codigo-3fb3</link>
      <guid>https://dev.to/emamut/refactorizando-codigo-3fb3</guid>
      <description>&lt;p&gt;14 January 2016&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“La verdad siempre se halla en la simplicidad y no en la multiplicidad y confusión de las cosas”. Isaac Newton&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Luego de mi post anterior (&lt;a href="https://codedebug.co/blog/2016/01/08/escribe-codigo-limpio-sin-morir-en-el-intento/"&gt;Escribe Código Limpio sin morir en el intento&lt;/a&gt;) seguimos con esta serie de post sobre ‘codear’ correctamente, esta vez veremos &lt;strong&gt;refactorización&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Que es refactorizar?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DQKLwE8p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/636/0%2A552k49Iz5hDKl7aS.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DQKLwE8p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/636/0%2A552k49Iz5hDKl7aS.gif" alt="" width="636" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La definición de &lt;a href="https://msdn.microsoft.com/es-es/library/719exd8s.aspx"&gt;Microsoft&lt;/a&gt; es:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“La refactorización es el proceso que consiste en mejorar el código una vez escrito cambiando su estructura interna sin modificar su comportamiento externo.” No creo que esto merezca mayor explicación, ahora veamos sus particularidades:&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  No arregla errores ni añade funcionalidades
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KDxEQzmh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/960/0%2AWE24OIAt30Rk3qYJ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KDxEQzmh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/960/0%2AWE24OIAt30Rk3qYJ.gif" alt="" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El objetivo de la refactorización es mejorar la comprensión del código o cambiar su estructura y diseño y eliminar código innecesario, por lo tanto deberíamos refactorizar antes de hacer mantenimiento al proyecto o agregar nuevas funcionalidades.&lt;/p&gt;

&lt;h3&gt;
  
  
  Desarrolla basado en Pruebas (TDD)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cJv3la9S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2ABTjob4GldA8NRfPJ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cJv3la9S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2ABTjob4GldA8NRfPJ.gif" alt="" width="500" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La mayoría de lenguajes de programación modernos tienen suites para realizar &lt;strong&gt;Pruebas Unitarias&lt;/strong&gt; (es una forma de probar el correcto funcionamiento de un módulo de código) con ello logramos comprobar de ‘mejor’ manera los cambios realizados y cuanto afecta el correcto funcionamiento del desarrollo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como funciona?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nN_GLxZ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/372/0%2A6CGboz0EEzs2T8Uk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nN_GLxZ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/372/0%2A6CGboz0EEzs2T8Uk.gif" alt="" width="372" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pasemos de la teoría a la práctica, tenemos un método llamado &lt;em&gt;get_first_element&lt;/em&gt; que recibe una variable, determina si es &lt;em&gt;array&lt;/em&gt; y retorna el primer elemento, de lo contrario retorna &lt;em&gt;false&lt;/em&gt;:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Al refactorizar quedaria asi:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  En conclusión
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bSh-O4Ak--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2AZjIgk1dxyiPJKmmz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bSh-O4Ak--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2AZjIgk1dxyiPJKmmz.gif" alt="" width="500" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El refactorizar exige un poderoso conocimiento del lenguaje en que se realice, debería reducir el número de líneas y así mejorar la comprensión.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Publicado originalmente el 14 de enero de 2016 en codedebug.co.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>spanish</category>
      <category>development</category>
      <category>refactoring</category>
    </item>
    <item>
      <title>Escribe código limpio sin morir en el intento</title>
      <dc:creator>Faber Andrés Vergara</dc:creator>
      <pubDate>Fri, 08 Jan 2016 05:27:00 +0000</pubDate>
      <link>https://dev.to/emamut/escribe-codigo-limpio-sin-morir-en-el-intento-2ipj</link>
      <guid>https://dev.to/emamut/escribe-codigo-limpio-sin-morir-en-el-intento-2ipj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Gastamos la mayor parte del tiempo leyendo código&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MnuwsTEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2A7dKkLTBVOQVnnGSg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MnuwsTEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2A7dKkLTBVOQVnnGSg.gif" alt="" width="500" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si lees este articulo es porque probablemente eres Desarrollador, Diseñador o curioso y te has encontrado con código de otras personas donde no entiendes como rayos lo hicieron o para donde quieren ir… pero funciona.&lt;/p&gt;

&lt;p&gt;Muchos dirán: &lt;em&gt;“No hay problema… mientras funcione… no pasa nada”, “Que quiere: Que escriba rápido o bonito?”&lt;/em&gt; o &lt;em&gt;“Pareces un viejito temático!”&lt;/em&gt; pero el asunto no es ese, veamos…&lt;/p&gt;

&lt;h3&gt;
  
  
  El código no es tuyo
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PVsG5sf---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/350/0%2AXx9Wv3BHh8_fupht.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PVsG5sf---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/350/0%2AXx9Wv3BHh8_fupht.gif" alt="" width="350" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aunque sea un desarrollo privado y/o solo sea realizado por ti, nada garantiza que no será mantenido por otro(s) desarrollador(es), no permitas que otros insulten a tu santa madrecita cuando vean el estropicio que hiciste.&lt;/p&gt;

&lt;p&gt;Tu código debe leerse como una poesía, por lo menos debes identar correctamente y mantener un cierto orden entre los fragmentos de tu lógica.&lt;/p&gt;

&lt;p&gt;Por ejemplo este tipo quiere que le revisemos este código:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;A diferencia de este donde solo se idento, se pusieron unos espacios para mejorar y se eliminaron unas llaves que estaban de más:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Aunque este ejemplo es sumamente básico imagínate trabajando en una clase con varios métodos donde la lectura del código se haga tediosa.&lt;/p&gt;

&lt;h3&gt;
  
  
  No impongas, concerta
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GtB8b9pA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/400/0%2AUA5NW1O_cM1TZZKF.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GtB8b9pA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/400/0%2AUA5NW1O_cM1TZZKF.gif" alt="" width="400" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los estilos y patrones deben ser definidos por el equipo, no por el líder del mismo, cada miembro debe participar y aportar en este proceso. Esto da sentido de pertenencia y apropiación de las decisiones que se tomen.&lt;/p&gt;

&lt;p&gt;Pero si trabajas solo debes mantener tu estilo y ser consistente para definir tu sello, tu marca.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lee y sigue a los mejores
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jPVj6p5b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2A1f29d8KpRMKHqO6N.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jPVj6p5b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://cdn-images-1.medium.com/max/500/0%2A1f29d8KpRMKHqO6N.gif" alt="" width="500" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mi primer acercamiento al concepto de Código Limpio fue con unos programadores españoles de primerísimo nivel con quienes tuve el honor de laborar, ademas de consumir literatura como &lt;a href="http://www.amazon.es/C%C3%B3digo-Limpio-desarrollo-software-Programaci%C3%B3n/dp/8441532109"&gt;Código Limpio: Manual de estilo para el desarrollo ágil de software&lt;/a&gt;de &lt;a href="https://en.wikipedia.org/wiki/Robert_Cecil_Martin"&gt;Robert C. Martin&lt;/a&gt; un libro super recomendado.&lt;/p&gt;

&lt;p&gt;No olvides que el tiempo es dinero y si logras ahorrar tendrás mejores ganancias. Si tienes algun link o libro que conozcas compártelo en los comentarios.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Publicado originalmente el 8 de enero de 2016 en codedebug.co.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>spanish</category>
      <category>clean</category>
      <category>code</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
