Haciendo trampa: trucos para programar menos.
-
Upload
roberto-alsina -
Category
Documents
-
view
872 -
download
2
Transcript of Haciendo trampa: trucos para programar menos.
Haciendo trampaTrucos para programar menos
Les miente: Roberto Alsina
email: [email protected]
twitter: @ralsina
blog: http://lateral.netmanagers.com.ar
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿De qué estamos hablando?
• Programar es divertido.
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿De qué estamos hablando?
• Programar es divertido.
• Programar mucho debe ser más divertido
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿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] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
Métricas
• Si no lo podés medir no existe.
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“Medir el progreso de un programa por líneas de código es como medir el progreso enla construcción de un avión en toneladas.”
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“Medir el progreso de un programa por líneas de código es como medir el progreso enla construcción de un avión en toneladas.”
Bill Gates
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Algunas Métricas Posibles
• Horas de programación (H)
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Algunas Métricas Posibles
• Horas de programación (H)
• Dinero obtenido (D)
• D/H
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
Algunas Métricas Imposibles
• Felicidad sentida (F)
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Algunas Métricas Imposibles
• Felicidad sentida (F)
• Maldiciones emitidas (M)
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Algunas Métricas Imposibles
• Felicidad sentida (F)
• Maldiciones emitidas (M)
• Ego Level-Up (E)
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“La pereza es la primera virtud de un programador.”
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“La pereza es la primera virtud de un programador.”
Larry Wall, creador de Perl
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“Los poetas inmaduros imitan, los poetas maduros roban.”
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿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] | @ralsinahttp://lateral.netmanagers.com.ar
¡Hoy en día no necesitás robar!
• Hay mucho código bueno por ahí
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¡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] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“Si programás lo más astuto que podés, por definición no sos lo suficientemente astutopara debuguearlo.”
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
“Si programás lo más astuto que podés, por definición no sos lo suficientemente astutopara debuguearlo.”
Brian Kernighan, creador de C
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Problema: ¿cuál de estos es mejor?
f() if a > b else g()
(f, g)[a>b]()
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
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] | @ralsinahttp://lateral.netmanagers.com.ar
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
El trabajo no termina cuando terminás deescribir
• 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] | @ralsinahttp://lateral.netmanagers.com.ar
Inversión y Recompensa
• Escribir claro
• Escribir explícito
• Escribir modular
• Escribir tests
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Técnicas que Ayudan
• Leer mucho
• Releer
• Escribir
• Publicar
• Releerse
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
Mostrá rápido, Mostrá seguido.
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
Mostrá rápido, Mostrá seguido.
Cliente de stripper
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
¿Quién dijo esto?
Mostrá rápido, Mostrá seguido.
Cliente de stripper
Eric Raymond, La catedral y el bazar
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar
Preguntas y Respuestas
Les mintió: Roberto Alsina
email: [email protected]
twitter: @ralsina
blog: http://lateral.netmanagers.com.ar
Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar