12. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
13. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
pragmatic programmer
14. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
pragmatic programmer
clean code
15. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
pragmatic programmer
clean code
agile software
development: princpiles,
patterns and practices
16. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
pragmatic programmer
clean code
agile software
development: princpiles,
patterns and practices
TestDriven Development
at IBM
17. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
pragmatic programmer
clean code
agile software
development: princpiles,
patterns and practices
TestDriven Development
at IBM
Test driven
development: an initial
investigationon the
industry
18. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
agile software
development: princpiles,
patterns and practices
TestDriven Development
at IBM
Test driven
development: an initial
investigationon the
industry
19. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
the c programming
agile software language
development: princpiles,
patterns and practices
TestDriven Development
at IBM
Test driven
development: an initial
investigationon the
industry
20. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
the c programming
agile software language
development: princpiles,
patterns and practices Succeding with agile
(uncle bob series)
TestDriven Development
at IBM
Test driven
development: an initial
investigationon the
industry
21. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
the c programming
agile software language
development: princpiles,
patterns and practices Succeding with agile
(uncle bob series)
TestDriven Development
at IBM Software estimation:
demytified
Test driven
development: an initial
investigationon the
industry
22. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
the c programming
agile software language
development: princpiles,
patterns and practices Succeding with agile
(uncle bob series)
TestDriven Development
at IBM Software estimation:
demytified
Test driven
development: an initial Software engineerin
investigationon the economics
industry
23. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
the c programming Planning poker or how
agile software language to avoid analysis
development: princpiles, paralysis while realase
patterns and practices planning
Succeding with agile
(uncle bob series)
TestDriven Development
at IBM Software estimation:
demytified
Test driven
development: an initial Software engineerin
investigationon the economics
industry
24. clean coders
repaso a toda una escuela de programación
(XP, agile, craftmanship)
apprenticeship patterns
Realizing quality
improvements through
pragmatic programmer test driven
development
clean code
the c programming Planning poker or how
agile software language to avoid analysis
development: princpiles, paralysis while realase
patterns and practices planning
Succeding with agile
(uncle bob series)
TestDriven Development Agile Estimating and
at IBM Planning (uncle bob)
Software estimation:
demytified
Test driven
development: an initial Software engineerin
investigationon the economics
industry
28. Repaso superficial a
prácticas
TDD
test as
documentation
dojos, katas, open
source
29. Repaso superficial a
prácticas
TDD
test as
documentation
dojos, katas, open
source
definition of done
30. Repaso superficial a
prácticas
TDD
test as
documentation
dojos, katas, open
source
definition of done
meetings:
necessary, huge
time of wasting
31. Repaso superficial a
prácticas
stand-up
TDD meetings,
iteration planing,
test as etc.
documentation
dojos, katas, open
source
definition of done
meetings:
necessary, huge
time of wasting
32. Repaso superficial a
prácticas
stand-up
TDD meetings,
iteration planing,
test as etc.
documentation
focus: sleep,
dojos, katas, open cafeine, time
source boxing, tomatoes
definition of done
meetings:
necessary, huge
time of wasting
33. Repaso superficial a
prácticas
stand-up
TDD meetings,
iteration planing,
test as etc.
documentation
focus: sleep,
dojos, katas, open cafeine, time
source boxing, tomatoes
definition of done poker planning
meetings:
necessary, huge
time of wasting
34. Repaso superficial a
prácticas
stand-up
TDD meetings,
iteration planing,
test as etc.
documentation
focus: sleep,
dojos, katas, open cafeine, time
source boxing, tomatoes
definition of done poker planning
meetings: collective code
necessary, huge ownership
time of wasting
35. Repaso superficial a
prácticas
stand-up
TDD meetings,
iteration planing,
test as etc.
documentation
focus: sleep,
dojos, katas, open cafeine, time
source boxing, tomatoes
definition of done poker planning
meetings: collective code
necessary, huge ownership
time of wasting
project velocity
36. Repaso superficial a
prácticas
stand-up
TDD meetings,
iteration planing,
test as etc.
documentation
focus: sleep,
mentoring,
dojos, katas, open cafeine, time
apprenticeship
source boxing, tomatoes
and
craftsmanship
definition of done poker planning
meetings: collective code
necessary, huge ownership
time of wasting
project velocity
38. LEARNED
El tiempo de debugging es tiempo de programación. Muchos
programadores no lo ven así.
39. LEARNED
El tiempo de debugging es tiempo de programación. Muchos
programadores no lo ven así.
El desarrollo de software es un marathon, no un sprint.
40. LEARNED
El tiempo de debugging es tiempo de programación. Muchos
programadores no lo ven así.
El desarrollo de software es un marathon, no un sprint.
Being late: a todos nos pasa. El truco está en detectarlo pronto y
ser transparente. Estima, y reestima continuamente, y presenta los
datos a la gente implicada en el proyecto constantemente
41. LEARNED
El tiempo de debugging es tiempo de programación. Muchos
programadores no lo ven así.
El desarrollo de software es un marathon, no un sprint.
Being late: a todos nos pasa. El truco está en detectarlo pronto y
ser transparente. Estima, y reestima continuamente, y presenta los
datos a la gente implicada en el proyecto constantemente
Teams are harder to build than projects
42. LEARNED
El tiempo de debugging es tiempo de programación. Muchos
programadores no lo ven así.
El desarrollo de software es un marathon, no un sprint.
Being late: a todos nos pasa. El truco está en detectarlo pronto y
ser transparente. Estima, y reestima continuamente, y presenta los
datos a la gente implicada en el proyecto constantemente
Teams are harder to build than projects
IDE: vi es el pasado. los grandes IDE´s son lo más por el refactoring
46. Responsabilidad y ética
be carefull what you ask for
work ethic
¿sólo 40 horas a tu profesión?
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...)
47. Responsabilidad y ética
be carefull what you ask for
work ethic
¿sólo 40 horas a tu profesión?
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...)
programar 18 horas seguidas hasta las
4 de la mañana no es responsable.
48. Responsabilidad y ética
be carefull what you ask for
work ethic
¿sólo 40 horas a tu profesión?
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...)
programar 18 horas seguidas hasta las
4 de la mañana no es responsable.
programar es extenuante y requiere
grandes dosis de concentración,
aprende a gestionarla (avoid The
Zone, pomodoro, pair programming).
49. Responsabilidad y ética
be carefull what you ask for
Eres responsable de tu carrera, de tu
work ethic formación, etc.
¿sólo 40 horas a tu profesión?
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...)
programar 18 horas seguidas hasta las
4 de la mañana no es responsable.
programar es extenuante y requiere
grandes dosis de concentración,
aprende a gestionarla (avoid The
Zone, pomodoro, pair programming).
50. Responsabilidad y ética
be carefull what you ask for
Eres responsable de tu carrera, de tu
work ethic formación, etc.
¿sólo 40 horas a tu profesión? QA should find nothing
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...)
programar 18 horas seguidas hasta las
4 de la mañana no es responsable.
programar es extenuante y requiere
grandes dosis de concentración,
aprende a gestionarla (avoid The
Zone, pomodoro, pair programming).
51. Responsabilidad y ética
be carefull what you ask for
Eres responsable de tu carrera, de tu
work ethic formación, etc.
¿sólo 40 horas a tu profesión? QA should find nothing
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...) false delivery: gran ejercicio de
irresponsabilidad.
programar 18 horas seguidas hasta las
4 de la mañana no es responsable.
programar es extenuante y requiere
grandes dosis de concentración,
aprende a gestionarla (avoid The
Zone, pomodoro, pair programming).
52. Responsabilidad y ética
be carefull what you ask for
Eres responsable de tu carrera, de tu
work ethic formación, etc.
¿sólo 40 horas a tu profesión? QA should find nothing
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...) false delivery: gran ejercicio de
irresponsabilidad.
programar 18 horas seguidas hasta las
4 de la mañana no es responsable. pide ayuda, nunca digas no cuando te
piden ayuda.
programar es extenuante y requiere
grandes dosis de concentración,
aprende a gestionarla (avoid The
Zone, pomodoro, pair programming).
53. Responsabilidad y ética
be carefull what you ask for
Eres responsable de tu carrera, de tu
work ethic formación, etc.
¿sólo 40 horas a tu profesión? QA should find nothing
Distinguir profesión de trabajo.
(katayunos, the melee, leer un libro...) false delivery: gran ejercicio de
irresponsabilidad.
programar 18 horas seguidas hasta las
4 de la mañana no es responsable. pide ayuda, nunca digas no cuando te
piden ayuda.
programar es extenuante y requiere
grandes dosis de concentración, practice ethics --> practice on your
aprende a gestionarla (avoid The own time, not at your employers time
Zone, pomodoro, pair programming).
56. Aprender a decir no
hazlo o no lo hagas, pero no “lo intentes”
Falta de ética: cada vez que dices que “lo
intentarás” sabiendo que es imposible, huyes de la
confrontación.
57. Aprender a decir no
hazlo o no lo hagas, pero no “lo intentes”
Falta de ética: cada vez que dices que “lo
intentarás” sabiendo que es imposible, huyes de la
confrontación.
De la confrontación nacen mejores soluciones
58. Aprender a decir no
hazlo o no lo hagas, pero no “lo intentes”
Falta de ética: cada vez que dices que “lo
intentarás” sabiendo que es imposible, huyes de la
confrontación.
De la confrontación nacen mejores soluciones
arguments/disagreements --> any argument that cant
´b e settled in five minutes can´t be settled by
arguing
59. Aprender a decir no
hazlo o no lo hagas, pero no “lo intentes”
Falta de ética: cada vez que dices que “lo
intentarás” sabiendo que es imposible, huyes de la
confrontación.
De la confrontación nacen mejores soluciones
arguments/disagreements --> any argument that cant
´b e settled in five minutes can´t be settled by
arguing
Las estimaciones son eso: estimaciones
62. Dí sí
Un buen profesional debe comprometerse.
“es que las estimaciones son estimaciones” -
el gran cáncer del agilismo.
63. Dí sí
Un buen profesional debe comprometerse.
“es que las estimaciones son estimaciones” -
el gran cáncer del agilismo.
Creando un lenguaje para el compromiso:
64. Dí sí
Un buen profesional debe comprometerse.
“es que las estimaciones son estimaciones” -
el gran cáncer del agilismo.
Creando un lenguaje para el compromiso:
I need to lose weight, Some should make that happend
65. Dí sí
Un buen profesional debe comprometerse.
“es que las estimaciones son estimaciones” -
el gran cáncer del agilismo.
Creando un lenguaje para el compromiso:
I need to lose weight, Some should make that happend
I hope to get this done by tomorrow, I wish i had time fo rthat
66. Dí sí
Un buen profesional debe comprometerse.
“es que las estimaciones son estimaciones” -
el gran cáncer del agilismo.
Creando un lenguaje para el compromiso:
I need to lose weight, Some should make that happend
I hope to get this done by tomorrow, I wish i had time fo rthat
Let´s meet sometime. Let´s finish this thing
68. Trabajo bajo presión
stay clean: professionals do not sucums to
the temptation to create a mess ir order to
move quickly. Quick and dirty is an
oxymoron. Dirty always means slow!
69. Trabajo bajo presión
stay clean: professionals do not sucums to
the temptation to create a mess ir order to
move quickly. Quick and dirty is an
oxymoron. Dirty always means slow!
no abandonar tus principios en momentos de
presión, sino hacerte más fuerte en ellos.
Guarrear, o dormir menos, te hace menos
productivo, no más.
72. DETAILS
Communication about details is hard. It´s to easy
for each party to wave their handas and assume
that the other party understand.
uml/MDA --> mda assumes that the problem is
code. but code is not the problem. it has never
been the problem. the problem is detail.
74. THERE WILL BE CODE
We will never be rid of code, because code represents the details
of the requirements. At some level those details cannot be ignored
or abstracted.
75. THERE WILL BE CODE
We will never be rid of code, because code represents the details
of the requirements. At some level those details cannot be ignored
or abstracted.
The level of abstraction of our languages will continue to
incresase. But it will not elimnate code. All the specifications written
in these higher level and domain-specific languege will be code!
76. THERE WILL BE CODE
We will never be rid of code, because code represents the details
of the requirements. At some level those details cannot be ignored
or abstracted.
The level of abstraction of our languages will continue to
incresase. But it will not elimnate code. All the specifications written
in these higher level and domain-specific languege will be code!
if you have beenn a programmer for more than two or three years,
you have probable been significantly slowed down by someone
elseñs messy code.
78. the boy scout rule
leave the campground cleaner than you found it.
79.
80. You are reading this book for two reasons.
First, you are a programmer. Second, you
want to be a better programmer. Good. We
need better programmers...
81. You are reading this book for two reasons.
First, you are a programmer. Second, you
want to be a better programmer. Good. We
need better programmers...
is a prequel of Agile Software Development:
Principles, Patterns, and Practices...
85. FUNCTIONS
/ mejor función es la que tiene cero argumentos
/la
Functions that take three arguments are significantly harder to
understand than dyads. The issues of ordering, pausing, and ignoring
are more than doubled. I suggest you think very carefully before
creating a triad.
86. FUNCTIONS
/ mejor función es la que tiene cero argumentos
/la
Functions that take three arguments are significantly harder to
understand than dyads. The issues of ordering, pausing, and ignoring
are more than doubled. I suggest you think very carefully before
creating a triad.
//mal...
function activarSistema(boolean activar);
//bien!
function activarSistema();
function desactivarSistema();
91. COMMENTS
The proper use of comments is to compensate for our
failure to express ourself in code
92. COMMENTS
The proper use of comments is to compensate for our
failure to express ourself in code
Every time you write a comment, you should grimace and
feel the failure of your ability of expression.
93. COMMENTS
The proper use of comments is to compensate for our
failure to express ourself in code
Every time you write a comment, you should grimace and
feel the failure of your ability of expression.
/ Check to see if the employee is eligible for full benefits
/
if ((employee.flags & HOURLY_FLAG) &&
(employee.age > 65))
if (employee.isEligibleForFullBenefits())
94. COMMENTS
The proper use of comments is to compensate for our
failure to express ourself in code
Every time you write a comment, you should grimace and
feel the failure of your ability of expression.
/ Check to see if the employee is eligible for full benefits
/
if ((employee.flags & HOURLY_FLAG) &&
(employee.age > 65))
if (employee.isEligibleForFullBenefits())
//bien!
/ Returns an instance of the Responder being tested.
/
protected abstract Responder responderInstance();
95. FORMATTING
//mal! máximo un nivel de tabulación!
if (this.is){
String cocotero = “tralari”;
for (i=0;i<10;i++){
pepo = coco[i];
while (pepo > coco){
cacaflush();
}
}
}
96. FORMATTING
//mal! máximo un nivel de tabulación!
if (this.is){
String cocotero = “tralari”;
for (i=0;i<10;i++){
pepo = coco[i];
while (pepo > coco){
cacaflush();
}
}
}
//bien! sin braquets, no hay otra...
if (page != null)
pageData = page.getData();
while ((line = br.readLine()) != null)
measureLine(line);
97. CLASES
“Methods with no more than 5 lines of code,
classes with no more than 3 public methods
(average)”
carlos ble
98. escribir código limpio te fuerza a
seguir patrones, y prácticas, tras los
cuales hay una serie de principios.