Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Haciendo trampa: Trucos para programar menos

Haciendo trampa: Trucos para programar menos

Roberto Alsina

July 10, 2012
Tweet

More Decks by Roberto Alsina

Other Decks in Programming

Transcript

  1. Haciendo trampa Trucos para programar menos Les miente: Roberto Alsina

    email: [email protected] twitter: @ralsina blog: http://lateral.netmanagers.com.ar Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  2. ¿De qué estamos hablando? • Programar es divertido. • Programar

    mucho debe ser más divertido Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  3. ¿De qué estamos hablando? • Programar es divertido. • Programar

    mucho debe ser más divertido • Programar todo el día debe ser totalmente divertido Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  4. NO, PIBE • Programar es divertido • Producir mucho es

    más divertido • Producir mucho pero tener una vida fuera del código es totalmente divertido Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  5. Métricas • Si no lo podés medir no existe. Roberto

    Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  6. Métricas • Si no lo podés medir no existe. •

    Si medís la cosa equivocada, es mejor no medir nada. Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  7. Métricas • Si no lo podés medir no existe. •

    Si medís la cosa equivocada, es mejor no medir nada. • Decidir cuál es la cosa correcta implica pensar mucho. Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  8. ¿Quién dijo esto? “Medir el progreso de un programa por

    líneas de código es como medir el progreso en la construcción de un avión en toneladas.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  9. ¿Quién dijo esto? “Medir el progreso de un programa por

    líneas de código es como medir el progreso en la construcción de un avión en toneladas.” Bill Gates Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  10. Algunas Métricas Posibles • Horas de programación (H) • Dinero

    obtenido (D) • D/H Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  11. Algunas Métricas Posibles • Horas de programación (H) • Dinero

    obtenido (D) • D/H • Líneas de código (L) • L/H Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  12. Algunas Métricas Imposibles • Felicidad sentida (F) • Maldiciones emitidas

    (M) Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  13. Algunas Métricas Imposibles • Felicidad sentida (F) • Maldiciones emitidas

    (M) • Ego Level-Up (E) Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  14. Algunas Métricas Imposibles • Felicidad sentida (F) • Maldiciones emitidas

    (M) • Ego Level-Up (E) • F/M • F*E/M • (F*E)/(M*H) • (F*H)/(M*L) • (F-M)*E*D/H Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  15. ¿Quién dijo esto? “La pereza es la primera virtud de

    un programador.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  16. ¿Quién dijo esto? “La pereza es la primera virtud de

    un programador.” Larry Wall, creador de Perl Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  17. Problema Ejemplo ¿Cómo hago para mostrar el avance de un

    proceso que tiene N pasos en una terminal, para que el usuario no se impaciente? Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  18. Problema Ejemplo ¿Cómo hago para mostrar el avance de un

    proceso que tiene N pasos en una terminal, para que el usuario no se impaciente? >>> from progressbar import ProgressBar >>> progress = ProgressBar() >>> for x in progress(xrange(N)): ... y=foo(x) ... 100% |########################################################################| Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  19. ¿Quién dijo esto? “Los poetas inmaduros imitan, los poetas maduros

    roban.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  20. ¿Quién dijo esto? “Los poetas inmaduros imitan, los poetas maduros

    roban.” T.S. Eliot “¿Por qué roba bancos la gente? Porque ahí está el dinero.” Willie Sutton, ladron de bancos Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  21. ¡Hoy en día no necesitás robar! • Hay mucho código

    bueno por ahí Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  22. ¡Hoy en día no necesitás robar! • Hay mucho código

    bueno por ahí • Hay mucho código bueno con buenas licencias por ahí Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  23. ¿Quién dijo esto? “Si programás lo más astuto que podés,

    por definición no sos lo suficientemente astuto para debuguearlo.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  24. ¿Quién dijo esto? “Si programás lo más astuto que podés,

    por definición no sos lo suficientemente astuto para debuguearlo.” Brian Kernighan, creador de C Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  25. Problema: ¿cuál de estos es mejor? f() if a >

    b else g() (f, g)[a>b]() Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  26. Problema: ¿cuál de estos es mejor? f() if a >

    b else g() (f, g)[a>b]() NO, lo mejor es esto: if a>b: f() else: g() Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  27. El trabajo no termina cuando terminás de escribir • Esfuerzo

    de escritura • Esfuerzo de que ande • Esfuerzo de que siga andando • Esfuerzo de leerlo • Esfuerzo de explicarlo • Esfuerzo de mantenerlo Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  28. Inversión y Recompensa • Escribir claro • Escribir explícito •

    Escribir modular • Escribir tests Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  29. Técnicas que Ayudan • Leer mucho • Releer • Escribir

    • Publicar • Releerse Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  30. ¿Quién dijo esto? Mostrá rápido, Mostrá seguido. Cliente de stripper

    Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  31. ¿Quién dijo esto? Mostrá rápido, Mostrá seguido. Cliente de stripper

    Eric Raymond, La catedral y el bazar Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar
  32. Preguntas y Respuestas Les mintió: Roberto Alsina email: [email protected] twitter:

    @ralsina blog: http://lateral.netmanagers.com.ar Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar