Category Archives: Consejo

Vetando a Jquery en tu proyecto AngularJS

AngularJS, Consejo, Javascript

Cualquier get started de un proyecto AngularJS, normalmente viene adjunta la librería JQuery para facilitarnos la vida a la hora de actuar en diferentes elementos, pero en el equipo donde trabajo, nos tomamos como reto/determinación, evitar usar JQuery y así no ensuciar el código mezclando librerías.

¿Y el por qué de esta decisión?, pues al fin y al cabo, Jquery para lo que normalmente lo usamos en Angular, es para trabajar de forma mas cómoda haciendo referencia a selectores html, pero si lo pensamos un poco, es algo que podemos evitar, y por ello, ahorrarnos la carga de otra librería extra innecesaria en nuestra aplicación.

Por ejemplo, para hacer click en un elemento en la web, ya tenemos el “ng-click” y declaramos un método en el “scope”, no es necesario irnos a Jquery y usar el “$(‘selector’).on(‘click’, function() {});”, podemos usar:

y esto lo podemos llamar en el html como  <div ng-click="methodName()">Content to click</div>

Una alternativa propia de Javascript, para trabajar con selectores, es el  document.querySelector(".example");  que con JQuery es lo mismo que hacer: $(".example");. Y sí, escribimos unos cuantos caracteres mas, pero nos seguimos ahorrando miles de lineas de una librería extra.

Una web, por pocos KB que nos ahorremos, siempre es positivo. Si es cierto que hoy día con las buena velocidades de conexión y métodos de caché, optimizamos mucho las cargas de archivos, pero aun así, si podemos seguir rascando KB, pues mejorará nuestro tiempo de carga y performance en la aplicación.

Considero una mala práctica/costumbre muchos ejemplos que hay por internet, que a la hora de hacer un mínimo autocomplete, utilizan Angular + JQuery, cosa que pensando 5 minutos mas, usando directivas, consigues el mismo resultado. Quizás un aporte positivo, que con JQuery no genera watchers en la aplicación, pero hay muchos métodos y buenas prácticas para llevar a cabo el mismo resultado y con una performance optima.

La última versión de Angular que hay disponible cuando estoy escribiendo este post, son unos 126KB minificados, y si ahora en un proyecto, añadimos JQuery son 84KB minificados, es decir, mas del 60% extra  en una librería que la usamos puntualmente para ciertas cosas.

Espero que esto sirva como un punto de vista diferente a plantear las cosas 😉

tags: , , ,

Pet projects – La importancia de hacer proyectos personales

Consejo, Pet projects

Hace tiempo que quería hablar sobre este tema, pero aún no le había encontrado el enfoque hasta ahora. Y es mismamente eso, la importancia de tener/trabajar en proyectos a nivel personal

Hoy día es algo totalmente imprescindible para mejorar nuestras aptitudes profesionales, ampliar nuestros conocimientos y mantenernos un poco al día del mundo real.

Somos consientes que la tecnología avanza muy rápido. Recuerdo hace 10 años, cuando descubrí la programación, los lenguajes para hacer webs mas populares de esa época era PHP, ASP, Javascript, si las querías animadas era Flash y después también había Visual Basic para temas de aplicaciones de escritorio y muchos mas. Había pocos lenguajes con una buena comunidad para hacer un gran desarrollo.

Hoy día, el abanico de posibilidades es inmenso. Nos encontramos proyectos en PHP, Ruby, Python, Javascript, Nodejs,  Java, pero a parte de esto, multiples frameworks para cada una de estas tecnologías como para PHP: Symfony, Cake-php, Codeigniter, FuelPHP, para Python: Django, para Ruby: Ruby Rails, para Javascript: Nodejs, AngularJS, Backbone, EmberJs… y muchos mas que no pararía de nombrar, que cada uno de ellos,  para alguien está siendo la decisión para un pequeño, mediano o gran proyecto.

Ahora también tenemos el mundo de los dispositivos móviles, en el cual tenemos Android, Objective C, Swift, C++, Tizen, FirefoxOS y sus frameworks basados en HTML5 para desarrollo de aplicaciones híbridas.

Hay que dar gracias a la constante evolución de estos lenguajes, puesto que sin esta, no tendríamos herramientas que nos facilitan el día a día del trabajo como desarrollador. Hablo de cosas como Yeoman, NPM, Grunt, Gulp, Bower, Comporer, Vagrant, Docker… que tanto nos ayudan a automatizar tareas,  como gestionar los paquetes y dependencias del proyecto, etc. Son herramientas que una vez bien aplicadas, nos permite conseguir un flujo de trabajo, ahorrar tiempo y dedicarnos mas a escribir el código.

No es tan solo programar en un lenguaje, podrás tener mas experiencia en uno que en otro, pero al fin y al cabo es programar. Programando hay que pensar y aplicar patrones de diseño a emplear, ya sea por rendimiento de la aplicación, como conservar una estructura de código, las buenas prácticas,  la cual nos permita mejorar y ser óptimos,. También debemos aprender a utilizar servicios, configurarlos o customizarlos para uso específico para un determinado producto.

A groso modo, antes había menos soluciones que programadores, ahora ese número creo que nos supera, hay mas soluciones que programadores y prácticamente cada día, ese abanico de posibilidades aumenta ya que no está nada inventado, cada proyecto nos puede enseñar una solución diferente.

Y es por eso, que debemos involucrarnos en desarrollar proyectos personales. Un proyecto personal, te ayuda a tu tener la experiencia de toma de decisiones, equivocarte, probar, romper, arreglar en algo que no tenga nada que ver con tu puesto profesional, a no se que quieras utilizar esa experiencia adquirida junto a otro tipo de stack.

Por ejemplo, mi experiencia fue que en mi puesto profesional, tan solo hacía PHP y algo de Front, aunque también, para un proyecto específico, desarrollamos un gran CMS bajo AngularJS.

¿Qué determinación tomé? Pues como en mi puesto de trabajo, no tocaba las tecnologías móviles, pues decidí aprender a desarrollar en Android con un objetivo propuesto.

A la par de esto, también decidí ponerme a hacer un módulo para AngularJS, como proyecto para refrescar, ponerme al día y aprender mas sobre AngularJS, como también hacer una App híbrida en HTML5 con Ionic  para Android.

Y mas a destacar, la gran iniciativa 12meses12apps.com junto  a mi compañero @javi_moralesf, que consiste en hacer 12 aplicaciones móviles en 12 meses.

Pues te preguntarás: ¿En qué me ha repercutido?
Pues sencillamente, que logras estar un poco mas al día de las tecnologías que hay. Puedes tomarlo con calma, ir a tu ritmo, sin presión, pero es un extra añadido a tu día a día en el trabajo, que te reportará gran experiencia y una actitud mas positiva, diferenciarte ante los demás en el mercado, y tener el horizonte mas amplio para ser mejores profesionales.

De alguna manera mejoras tu capacidad de aprendizaje y esa diferencia que hay de experiencia con tus compañeros del gremio, se hace prácticamente inexistentes ya que aportas una motivación extra.

Así que te animo, por no decir que te recomiendo, que trabajes en un proyecto personal. No es necesario que sea grande, lo importante es que hagas lo que quieras, pruebes, rompas, inventes y aprendas algo nuevo y seas constante.

La constancia es primordial.

 

tags: , ,