<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>software &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<atom:link href="https://www.oscarblancarteblog.com/tag/software/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Sun, 02 Aug 2020 22:45:20 +0000</lastBuildDate>
	<language>es-MX</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.15</generator>

<image>
	<url>https://www.oscarblancarteblog.com/wp-content/uploads/2019/03/cropped-ob-32x32.png</url>
	<title>software &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<link>https://www.oscarblancarteblog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">89905023</site>	<item>
		<title>Diferencias entre BackEnd y FrontEnd Developer</title>
		<link>https://www.oscarblancarteblog.com/2017/03/13/diferencias-backend-frontend-developer/</link>
					<comments>https://www.oscarblancarteblog.com/2017/03/13/diferencias-backend-frontend-developer/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 09:00:24 +0000</pubDate>
				<category><![CDATA[Puntos de vista]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1595</guid>

					<description><![CDATA[<p>Día con día, las tecnologías avanzan más y más rápido, cada vez existen más herramientas para hacer lo mismo, la competencia entre ellas se vuelve más feroz y la lucha por la supervivencia recae nuevamente en las leyes de la vida (sobrevive el que mejor se adapta al cambio). Pero en toda esta lucha hay [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2017/03/13/diferencias-backend-frontend-developer/">Diferencias entre BackEnd y FrontEnd Developer</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				<img loading="lazy" class="aligncenter wp-image-1596 size-full" src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/Backend-Frontend-fullstack.jpg" alt="BackEnd y FrontEnd" width="1021" height="573" />Día con día, las tecnologías avanzan más y más rápido, cada vez existen más herramientas para hacer lo mismo, la competencia entre ellas se vuelve más feroz y la lucha por la supervivencia recae nuevamente en las leyes de la vida (sobrevive el que mejor se adapta al cambio). Pero en toda esta lucha hay alguien que está en medio y ¿sabes quién es? ¡TÚ!<span id="more-1595"></span></p>
<p>&nbsp;</p>
<p>Con el avance de las tecnologías cada vez hay más cosas que un programador debe de cubrir para poder desempeñar con efectividad su trabajo, cada vez es necesario saber más frameworks, API´s, lenguajes, etc. Es común recordar los viejos tiempos cuando solo era necesario crear un formulario en Visual Basic, un Applet de Java o una simple pantalla en C/C++, te conectabas a una base de datos (o archivos de texto L) y listo, tenías una aplicación completa funcionando. La instalabas en los equipos del cliente y todos felices.</p>
<p>Triste o afortunadamente (depende como lo veas) crear una aplicación WEB hoy en día, requiere al menos de saber HTML, CSS, JavaScript, Base de datos, REST/WS mas el lenguaje de programación de preferencia y sin contar que requerimos de un servidor de aplicación o donde montar la página, frameworks de persistencia ORM, MVC, AJAX, WebSocket o todas aquellas monerías que le quieras poner para que sea lo más atractivo posible. Y claro que estamos dejando por fuera el Arte (diseño gráfico) que hoy en día es casi obligado.</p>
<p>&nbsp;</p>
<p>Pues bien, debido a toda esta gran cantidad de tecnologías es muy difícil que un programador las abarque con un nivel aceptable, lo que obliga a los programadores a centrarse en una parte del desarrollo y es aquí donde entra en juego de los Roles de los BackEnd y FrontEnd Developers.</p>
<p><img loading="lazy" class="aligncenter wp-image-1597 size-full" src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/frontend-vs-backend.jpg" alt="BackEnd y FrontEnd" width="864" height="526" /></p>
<p>&nbsp;</p>
<h2>FrontEnd Developers:</h2>
<p>&nbsp;</p>
<p>Se le conoce como FrontEnd developers a aquellas personas que se encargan del desarrollo de la presentación, es decir, lo que ve el usuario. Son los encargados de crear las páginas, hacerlas atractivas, dinámicas y fáciles de utilizar. Tiene bastante experiencia en tecnologías de la WEB como HTML, CSS, JavaScript, pero también dominan tecnologías como Angular, JSF, React, Spring MVC y un largo etcétera.</p>
<p>&nbsp;</p>
<p>Es común crear el estereotipo del FrontEnd developer como aquellas personas muy alineada, de aspecto agradable y siempre acompañado de su Mac book viendo imágenes y dibujando en su libreta. Pero como les comento, esto es solo un &lt;&lt;Estereotipo&gt;&gt;</p>
<p><img loading="lazy" class="aligncenter wp-image-1598" src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/FrontEnd.jpg" alt="FrontEnd" width="555" height="371" /></p>
<p>&nbsp;</p>
<h2>BackEnd Developers:</h2>
<p>&nbsp;</p>
<p>Por otro lado, tenemos los BackEnd developer, son aquellas personas que tiene mucha experiencia en desarrollo de componentes de software, crean los componentes que encapsulan la lógica de negocio y gestionan las transacciones para actualizar los diversos sistemas, además son los que crean los servicios para ser consumidos desde el FrontEnd. En pocas palabras, el BackEnd hace todo lo que no se ve. Los BackEnd developer dominan tecnologías como Bases de datos, algoritmos, WebServices/REST y diversos frameworks de desarrollo.</p>
<p><img loading="lazy" class="aligncenter wp-image-1599" src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/Backend.jpg" alt="Backend" width="540" height="409" /></p>
<p>Al BackEnd developer lo suelen estereotipar como aquellas personas desalineadas, rodeado de computadores y comiendo una pizza. nuevamente es solo un &lt;&lt;Estereotipo&gt;&gt;</p>
<p>&nbsp;</p>
<h2>Rivalidad</h2>
<p>&nbsp;</p>
<p>Por lo largo de la historia ha existido una curiosa rivalidad absurda, donde el BackEnd se cree superior al FrontEnd y viceversa, en realidad algo que no logro comprender, pues en realidad las dos caras de la moneda son igualmente importantes. Te imaginas la aplicación más bonita del mundo, con la mejor usabilidad, totalmente intuitiva, pero que a la hora de guardar truene por el BackEnd. O por otra parte, la aplicación más segura, con los mejores algoritmos y una super velocidad de respuesta pero más fea que el payaso eso.</p>
<p>&nbsp;</p>
<p>La verdad es que por mucho tiempo los BackEnd developer eran mucho mejor pagados, la brecha salarial que existía era muy considerable, lo que provocaba que los BackEnd se sintieran superiores a los FrontEnd. Sin embargo, hoy en día las empresas se preocupan más de cómo se ven las aplicaciones que ha hecho que los FrontEnd sean más cotizados que hace unos años atrás, de tal forma que me atrevo a decir que hoy por hoy, los sueldos son prácticamente equivalentes.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>FullStack developer</h2>
<p>&nbsp;</p>
<p>Finalmente tenemos los FullStack developers, los cuales son personas que cumplen con los dos perfiles anteriores, BackEnd y FrontEnd. Estas personas son mucho más cotizadas en el mercado laboral, debido a que pueden desempeñar ambos roles y por lo general son personas con mucha más experiencia.</p>
<p>Para llegar a ser un FullStack developer no es necesario ser un erudito en todas las tecnologías que hay en el mercado, sino más bien dominar a la perfección un Stack tecnológico. Se conoce como Stack a un conjunto de tecnologías empleadas para el desarrollo. Los stack más famosos son LAMP (Linux, Apache, MySQL y PHP) y MEAN (Mongo, Expres.js, Angular y NodeJs), MERN (Mongo, Express, React y NodeJS) así, cada empresa puede implementar su propio Stack, por lo tanto, para convertir en un FullStack developer es recomendable conocer al menos un Stack y poderte desempeñar bien en él.</p>
<p><img loading="lazy" class="aligncenter wp-image-1600" src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/fullstack.jpg" alt="fullstack" width="539" height="351" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Mobile developer</h2>
<p>&nbsp;</p>
<p>Si ya sabes que es el FrontEnd y BackEnd developer, la pregunta es… donde quedan los desarrolladores de Móviles, mucha gente, los clasifica como FrontEnd, ya que se encargan de desarrollar la parte la app que al final del día se conecta con una serie de servicios expuestos desde el BackEnd. Sin embargo, yo me atrevería a crear una Role especial para ellos, ya que las tecnologías y las problemáticas que hay que resolver en una app web son muy diferentes a las de móviles, ya que en los móviles interactuamos con el hardware, notificaciones, nos preocupamos por el uso de datos y ancho de banda, seguridad, etc.</p>
<p>En esta disciplina yo incluiría el desarrollo para IOS, Android y aplicaciones hibridas con todo lo que conlleva.</p>
<p><img loading="lazy" class="aligncenter wp-image-1601" src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/mobile-developer.jpg" alt="mobile developer" width="525" height="281" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Conclusiones:</h2>
<p>&nbsp;</p>
<p>Dado este análisis, podrías pensar que ser un FullStack developer es lo mejor, pues el sueldo promedio es más alto, conocen una gama más grande de tecnologías y se pueden adecuar a cualquier rol. Sin embargo, esto no es siempre cierto, ya que lo más importante es lo que te gusta hacer.  Ya que, si eres espectacularmente bueno en algo, vas a superar al que sea solamente bueno en todo. Es por eso que yo pienso que deberás pensar que te gusta hacer y sobre actuar, no solo dejarse llevar qué rol es mejor visto o mejor pagado.		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2017/03/13/diferencias-backend-frontend-developer/">Diferencias entre BackEnd y FrontEnd Developer</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2017/03/13/diferencias-backend-frontend-developer/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1595</post-id>	</item>
		<item>
		<title>Java &#8211; Como eliminar rápidamente elementos repetidos de una colección</title>
		<link>https://www.oscarblancarteblog.com/2014/07/17/java-como-eliminar-rapidamente-elementos-repetidos-de-una-coleccon/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/17/java-como-eliminar-rapidamente-elementos-repetidos-de-una-coleccon/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Thu, 17 Jul 2014 21:30:00 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[hashmap]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Programación orientada a objetos]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/2014/07/17/java-como-eliminar-rapidamente-elementos-repetidos-de-una-coleccon/</guid>

					<description><![CDATA[<p>Hace tiempo un amigo me preguntaba  como podía eliminar los elementos repetidos de una colección sin hacer mucho esfuerzo. Bien la solución que considero mucho mas rápida es con ayuda de una HashMap ya que al no permitir elementos repetidos como llave nos ayuda a descartar de forma muy rápida los elementos que ya tenemos [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/17/java-como-eliminar-rapidamente-elementos-repetidos-de-una-coleccon/">Java &#8211; Como eliminar rápidamente elementos repetidos de una colección</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Hace tiempo un amigo me preguntaba  como podía eliminar los elementos repetidos de una colección sin hacer mucho esfuerzo.</p>
<p style="text-align: justify;">Bien la solución que considero mucho mas rápida es con ayuda de una HashMap ya que al no permitir elementos repetidos como llave nos ayuda a descartar de forma muy rápida los elementos que ya tenemos en nuestra colección.<span id="more-89"></span></p>
<figure id="attachment_3213" aria-describedby="caption-attachment-3213" style="width: 800px" class="wp-caption aligncenter"><a href="https://codmind.com/courses/java"><img loading="lazy" class="wp-image-3213 size-full" src="https://www.oscarblancarteblog.com/wp-content/uploads/2020/08/java-core-banner-3-md.jpg" alt="Curso de Java Core" width="800" height="450" srcset="https://www.oscarblancarteblog.com/wp-content/uploads/2020/08/java-core-banner-3-md.jpg 800w, https://www.oscarblancarteblog.com/wp-content/uploads/2020/08/java-core-banner-3-md-300x169.jpg 300w, https://www.oscarblancarteblog.com/wp-content/uploads/2020/08/java-core-banner-3-md-768x432.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></a><figcaption id="caption-attachment-3213" class="wp-caption-text">Te invito a que veas mi curso de Java Core, en el cual enseñamos Java desde cero con las mejores prácticas y un proyecto final.</figcaption></figure>
<p style="text-align: justify;">Imagines un escenario donde tenemos una lista de clase Cliente la cual tiene un campo de ID que nos ayude a identificarlo como único, Con esto lo único que tendríamos que hacer es meter como llave el ID y como Valor el Objecto Cliente completo. Al terminar de introducir todos los elementos los elementos repetidos serán automáticamente descartados y solo faltaría iterar las Entradas del HashMap para recuperar los valores únicos.</p>
<p style="text-align: justify;">Veamos el siguiente Código:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/codigo.png"><img loading="lazy" class="aligncenter size-full wp-image-88" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/codigo.png" alt="codigo" width="513" height="319" /></a></p>
<p style="text-align: justify;">Para los que no les quedo muy claro como el Map elimina los repetidos les explico:</p>
<p style="text-align: justify;">Los Map tiene la característica de tener por cada entrada dos elementos el Key y el Value, El Key representa un elemento único y no puedo contener repetidos por lo que si se intenta meter un elemento repetido lo que hará es sustituir este ultimo por que estaba antes y el Value representa un valor cualquiera asociado a la llave o Key.</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/17/java-como-eliminar-rapidamente-elementos-repetidos-de-una-coleccon/">Java &#8211; Como eliminar rápidamente elementos repetidos de una colección</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/17/java-como-eliminar-rapidamente-elementos-repetidos-de-una-coleccon/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">89</post-id>	</item>
		<item>
		<title>Que es el Polimorfismo?</title>
		<link>https://www.oscarblancarteblog.com/2014/07/15/que-es-el-polimorfismo/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/15/que-es-el-polimorfismo/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Tue, 15 Jul 2014 17:27:12 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Programación orientada a objetos]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/2014/07/15/que-es-el-polimorfismo/</guid>

					<description><![CDATA[<p>Si son nuevos en la programación seguramente esta palabra les causar dolor de cabeza ya que desde mi punto de vista esta es la caracterizara del paradigma orientado a objetos mas difícil de comprender pero no se preocupen tratare de explicarles lo mas simplemente posible. El polimorfismo permite que nuestro programa realice tareas que se [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-el-polimorfismo/">Que es el Polimorfismo?</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				Si son nuevos en la programación seguramente esta palabra les causar dolor de cabeza ya que desde mi punto de vista esta es la caracterizara del paradigma orientado a objetos mas difícil de comprender pero no se preocupen tratare de explicarles lo mas simplemente posible.</p>
<p>El polimorfismo permite que nuestro programa realice tareas que se definirán hasta el tiempo de ejecución.<span id="more-15"></span></p>
<p>Si escribimos un código que sume dos números nuestra programación sera muy simple ya que podemos determinar el comportamiento del programa con solo ver el código, por ejemplo</p>
<p>public class Main{</p>
<p>public static void main(String[] args){</p>
<p>Operacion op= new Operacion();</p>
<p>double suma = op.operacion(5,10);</p>
<p>System.out.println(&#8220;Suma ==&gt; &#8221; + suma);</p>
<p>}</p>
<p>}</p>
<p>public class Operacion{</p>
<p>public double operacion(double a, double b){</p>
<p>return a +b;</p>
<p>}</p>
<p>}</p>
<p>Con solo ver el siguiente código podemos determinar que el programa sumara dos numero y finalizara ya que código a ejecutar esta definido de esta forma y nada puede hacer que cambie en tiempo de ejecución. Sin embargo con el polimorfismos esto cambia ya la funcionalidad que se ejecuta dependerá de la implantación que se le de aun método determinado.</p>
<p>Una vez comprendido el código anterior veremos como trabajaría con polimorfismo.</p>
<p>Imaginemos que ya tenemos definidas las clases anteriores pero hora definimos una nueva clase llamada Resta la cual extiende de &#8220;Operacion&#8221; pero en vez de sumar los números los resta:</p>
<p>public class Resta extends Operacion{</p>
<p>public double operacion(double a, double b){</p>
<p>return a &#8211; b;</p>
<p>}</p>
<p>}</p>
<p>Podemos apreciar que el método &#8220;operacion&#8221; esta definido igual que en la clase &#8220;Operacion&#8221; lo que provoca algo llamada Override o sobre escribir el método.</p>
<p>Con esto en mente modificaremos el método main de la clase anterior y veremos lo que sucede:</p>
<p>public class Main{</p>
<p>public static void main(String[] args){</p>
<p>Operacion opSum= new Operacion();</p>
<p>double suma = opSum.operacion(5,10);</p>
<p>System.out.println(&#8220;Suma ==&gt; &#8221; + suma);</p>
<p>Operacion opRest = <strong>new Resta(5,10);</strong></p>
<p>double resta = opRest.operacion();</p>
<p>System.out.println(&#8220;Resta ==&gt; &#8221; + resta);</p>
<p>}</p>
<p>}</p>
<p>Como resultado tendremos la suma de 5 + 10 = 15 seguido de la resta de 5-10 = -5.</p>
<p>La clave aquí es que opRest a pesar de tipo &#8220;Operacion&#8221; tiene asignada una referencia a una instancia de la clase Resta la cual al extender de &#8220;Operacion&#8221; nos permite asignarla a una variable de tipo &#8220;Operacion&#8221; esto hace que en tiempo de ejecución el metodo &#8220;operacion&#8221; de la variable opRest ejecute el código de la clase Resta en vez de la clase &#8220;Operacion&#8221;</p>
<p>Bien a esto se le llama Polimorfismo&#8230;</p>
<p>&nbsp;		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-el-polimorfismo/">Que es el Polimorfismo?</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/15/que-es-el-polimorfismo/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">15</post-id>	</item>
	</channel>
</rss>
