A partir de hoy, las notificaciones y los comentarios de la plataforma suceden en tiempo real; estas funcionalidades se suman al chat de nuestros talleres, como las secciones en tiempo real de CódigoFacilito.
¿Eso cómo me ayuda?
Nuestra intención es improvisar tu experiencia de aprendizaje en la plataforma, suele suceder que en algún punto de un curso te quedes atorado, o algo no salga cómo se muestra en el vídeo. En ese punto lo ideal es colocar tu duda o comentario en la sección de Comunidad:
Este es un excelente ejemplo de una duda, que puedes encontrar en el vídeo de Método CSS en jQuery.
Dejaste tu duda y lo que te recomendamos es continuar el curso ;) cuando alguien más de la comunidad resuelva tu duda, te haremos saber con una discreta notificación:
Esa notificación de arriba sucede cuando hay una nueva respuesta en el thread que ves, para que tengas la respuesta a tus dudas en tiempo real. No hay necesidad de recargar para saber que alguien te contestó :)
Comunidad
Hablando de Comunidad, la sección que aparece debajo de los vídeos, no olvides que tú también puedes contribuir a solucionar las dudas de otros, si por alguna razón algo no salió como esperabas, pero eventualmente lo solucionaste, coméntalo, la gente con la misma duda de seguro te lo agradecerán (literalmente) vía el botón de Gracias en cada respuesta:
Eventualmente podrías convertirte en el comentario Top y ganar puntos extra para tu perfil... no olvides que los puntos aparecen en tu perfil público y además te permiten ganar stickers, si gustas visita mi perfil para darte una idea.
En mi opinión, es más valioso revisar las contribuciones a la comunidad de un desarrollador, que un diploma... pero esa solo es mi opinión :) ¿Tú qué piensas al respecto?.
Entonces las dudas son en tiempo real.
También las notificaciones, si alguien te dio Gracias, si subimos un nuevo vídeo a tu curso favorito, si agregamos un curso... todo eso te lo haremos saber en tiempo real, para que no te pierdas de nada.
Cómo funciona nuestro sistema en tiempo real.
No es Rails, y no es Ruby... para mí los lenguajes son una herramienta, Rails nos fascina para la plataforma en general, nos permite iterar rápidamente, agregar features y mantenerlas (el código es muy legible); Rails además nos ha enseñado buenas prácticas de desarrollo, nos permite hacer pruebas automatizadas, de performance, de integración y muchas cosas, de manera simple y productiva.
Sin embargo (a menos de que uses Rails 5), Rails no se siente natural para aplicaciones en tiempo real, para esta tarea decidimos utilizar Go. Go nos ofrece una forma de hacer aplicaciones en tiempo real eficiente, productiva y concisa. De Go nos fascina lo conciso del código, el fácil deploying, el performance tan eficiente y la facilidad con la que te permite crear pequeños servicios web, como el que usamos para la sección en tiempo real de la plataforma:
1. Generar binario
— Uriel Hdz (@Uriel_Hedz) 23 de abril de 2016
2. Ejecutarlo con upstart
3. Reverse proxy con Nginx al puerto
Así hacemos deploy de Go. ¿Recomendaciones?
Rails y Go no se hablan, pero tienen un intermediario.
Rails y Go, en realidad sí se comunican para algunas secciones de nuestro sistema, lo hacen vía un servicio REST, es mu sencillo generar JSON en Go, y leerlo en Rails (o vice versa). Por otro lado, para la parte en tiempo real, decidimos que sería más eficiente que Go y Rails usaran un intermediario, a este intermediario lo llamamos Redis (en realidad se llama Redis, no lo llamamos :P). Redis es un in-memory data structure store que significa que puede guardar estructuras en la memoria RAM. Redis suele usarse como base de datos, como storage para el caché de tu plataforma, o como intermediario de mensajes.
Para nuestro caso de uso, Redis funciona como un intermediario de mensajes. Básicamente existe un canal, Rails publica en el canal y Go se suscribe al mismo, de tal manera que cada vez que Rails publica en el canal, Go lo recibe y lo transmite vía webscockets a la plataforma.
Sigamos avanzando.
Perfecto, básicamente de eso se trata el último cambio que hicimos a la plataforma, (que además incluye un nuevo homepage) con animación de Alex, que muchos recordamos por FlashFacilito, pero que bueno, también fundó CódigoFacilito.
El siguiente paso es que nos cuentes, ¿qué te parecieron los cambios? ¿qué otros cambios harías? ¿qué nuevos features quieres ver?.
PD: Enseñaremos varias cosas aprendidas en el curso de Go gratuito que tenemos en la plataforma.
PD 2: Esta semana inicié un newsletter para desarrolladores, para recibirlo solo tienes que activarlo en la configuración de tu cuenta.