Links y Preguntas Char.la v1.0.0

Aquí consolidamos las preguntas y los links compartidos durante la primera version de Char.la.


Stream Completo


Testeando React por @elburabure

El repo de react-testing aqui: https://github.com/burabure/react-testing

  • En este caso si, no hay peligro alguno, nosotros la usamos para aplicaciones a gran escala en producción.
  • ¿Chaijs sirve para react?
  • Chai al  ser una librería de aserciones sirve para asertar cualquier cosa, incluido react.
  • ¿Tienes reporte de coverage?
  • Si te refieres en el app de ejemplo en el repo, no. Para eso te recomiendo Istambul y/o karma.

Sistemas Distribuidos con Go por @verolopg


  • ¿En qué empresas usan GO ? 
  • ¿Qué tareas hacen en GO y cuales en RUBY ? ¿Es para el mismo proyecto o distintos proyectos ? 
  • Si quieres hacer un sitio web, probablemente la mejor opción (en este caso) sea Ruby, pues los frameworks web de Go aún no están tan completos como Rails o Django y tareas sencillas se pueden volver muy complicadas en poco tiempo. El único escenario que recomiendo para usar Go en web es si un desarrollador ya trabajaba con Go anteriormente o en caso de que en verdad quiera aprender y no tenga mucha limitación de tiempo.
  • Por otro lado, Go es un lenguaje de sistemas. Muy bueno para scripting, infraestructura (servidores, contenedores, etc), servicios de backend e incluso para manejar la concurrencia de sistemas y aplicaciones hechos en otros lenguajes. Todo es cosa de saber usar la mejor herramienta para cada cosa y así mejorar el performance de nuestro software. 

Crónica de una escala anunciada por @dschenkelman 

  • ¿Qué tal usar microservicios para ese tema de escalar? 
  • Creo que esta es la que hicimos “en vivo”. Veo que la tendencia general es ir al lado de tener servicios más específicos que tienen un perfil de ejecución y consumo de recursos bien marcado. Eso permite que se puedan planificar bien en un container scheduler, que se sepa cuando hay que escalar para automatizar y que se puedan realizar optimizaciones y tomar decisiones para disminuir costos (ej: elegir el storage, el lenguaje/la plataforma entre otros). Si no recuerdo mal, google usa C++ o similar para performance critical code. npm esta considerando algo similar: https://twitter.com/ceejbot/status/793655676622901248
  • También esta buena esta charla: https://www.youtube.com/watch?v=VijSWboZP-8 de como npm evoluciono. En general lo (que creo es) normal es empezar con un monolito grande, quizas con servicios definidos mediante interfaces locales y que naturalmente evolucione a servicios separados. Preocuparse por escalar inicialmente, cuando todavía no sabes si alguien va a usarte, es no usar el tiempo de la mejor forma en mi opinión.
  • ¿Cómo terminan el TLS?
  • Corremos un TLS terminator en el nodo de BaaS: https://github.com/bumptech/stud. Tenemos una política que es tener todas nuestras comunicaciones encriptadas, incluso en nuestra propia Virtual Private Cloud. Eso también hace que las cosas sean mas lentas de lo que podrían, pero más seguras (seguridad es una cebolla 😃)
  • ¿Cómo haces para buscar/resolver race conditions?
  • Interesante pregunta. Depende de como se defina la "race condition". Tenías alguna race condition en particular en mente? 
  • node.js ejecuta sobre un solo thread y hasta completar la ejecución del stack. uno sabe que a menos que introduzca algo concurrente (I/O) no va a tener una "race condition", no hay necesidad de primitivas de sincronización (mutex, lock, semaphore, etc). Después de eso, mucho es evitar el estado compartido. Todavía no encontré una receta para resolver "race conditions" en general. 
  • Mini anécdota: una vez estuve como 1 mes buscando una en un sistema de reproducción de video. Para reproducirla (y no siempre), en general había que reproducir todo el video hasta el minuto 41 aproximadamente. 41 minutos para reproducir un bug :). La terminamos encontrando con un compañero porque vimos otro error relacionado y leímos código. Antes de eso habíamos estado usando wireshark porque no sabíamos si teníamos una race condition o los paquetes UDP multicast llegaban mal. Toda una odisea.

Anuncios

  • Próximo evento (Char.la v2.0.0) el 13 de Diciembre a las 8pm COT / EST

Sugerencias

Has un comentario sobre esta frase con cualquier sugerencia que nos quieras dar