Todo el mundo sabe escribir un programa que un compilador o un interprete entienda. Lo verdaderamente difícil es escribir código que un ser humano pueda entender con facilidad. Sin embargo, si conseguimos que el código sea legible y fácil de comprender, podemos estar seguros de que será bueno. En esta sesión se defenderá que la legibilidad es la unica métrica a vigilar para garantizar la calidad del software. Mediante ejemplos de proyectos reales se mostrará como se puede aplicar una única métrica a la hora de verificar la calidad de nuestro código. Se demostrará que la ley de Demeter, el principio de responsabilidad única y el resto de principios a los que se recurre habitualmente en la programación orientada a objetos no son más que una mera excusa para explicar algo tan sencillo y difícil de conseguir como es la legilibilidad.
51. You know you are working on good code when
each routine you read turns out to be pretty
much what you expected.
You can call it beautiful when the code also
makes it look like the language was made for
the problem.
52. Good code is simple and direct. Good code reads
like well-written prose.
Good code never obscures the designer’s intent
but rather is full of crisp abstractions and
straightforward lines of control.
83. def assert(value)
return value == true
end
def assert_equal(value, expected)
return value == expected
end
def assert_includes(value, container)
return container.include? value
end
84. def d(b)
eval"def #{b} end"
end
d 't(m,&a)puts"e[0;3#{a.call ?
"2":"1"}m#{m}e[0m"'
d 'a(e)e'
d 'ae(e,d)e==d'
d 'ai(e,a)a.include? e'
97. credits
Kent Beck: http://www.flickr.com/photos/26420411@N02/3062930943/
Opposing Armies: http://www.flickr.com/photos/ahounslea/4873239128
Ward Cunningham: http://www.flickr.com/photos/joshb/2247556208/
Uncle Bob: http://www.flickr.com/photos/koss/3250213001/
Balance: http://www.flickr.com/photos/classblog/5136926303/
Futurama pictures and WTFs/minute draws were found on google
searches.
Hand drawings of Grady Booch, Ward Cunningham and Michael
Feathers were taken from the Clean Code ebook.