Grandes Pensamientos Sobre la Ingeniería de Software
A veces, un breve pensamiento puede traer ideas increíbles.
Hay algunas citas geniales que he estado recopilando.
Las utilizo como inspiración para algunos artículos.
Diseño de software
Solo hay dos cosas difíciles en Ciencias de la Computación: invalidación de caché y nombrar cosas.
Phil Karlton
Haz que los estados ilegales no sean representables.
Yaron Minsky
Primero haga el cambio fácil (advertencia: esto puede ser difícil), luego haga el cambio fácil.
Kent Beck
Los lenguajes de programación orientados a objetos admiten el encapsulamiento, lo que mejora la capacidad del software para ser reutilizado, refinado, probado, mantenido y extendido. El beneficio completo de este soporte sólo se puede obtener si se maximiza el encapsulamiento durante el proceso de diseño.
Rebecca Wirfs-Brock
Las cosas simples deben ser simples, las complejas deben ser posibles.
Alan Kay
La simplicidad es un requisito previo para la confiabilidad
Edsger W. Dijkstra
Antes de que el software pueda ser reutilizable, primero debe ser utilizable.
Ralph Johnson
La mayor parte del software actual se parece mucho a una pirámide egipcia con millones de ladrillos apilados uno encima del otro, sin integridad estructural, pero hecho por la fuerza bruta y miles de esclavos.
Alan Kay
La optimización prematura es la raíz de todos los males.
Donald Knuth
Cualquier problema en informática se puede resolver con otro nivel de indirección.
David Wheeler
La informática no se trata de máquinas, del mismo modo que la astronomía no se trata de telescopios. Existe una unidad esencial entre matemática e informática.
Michael R. Fellows
El mayor incremento del rendimiento es la transición del estado no operativo al estado operativo.
J. Osterhout
No puedo estar tan seguro de la informática como de la biología. La biología tiene fácilmente 500 años de problemas interesantes en los que trabajar. Está en ese nivel.
Donald Knuth
Una computadora te permite cometer más errores más rápido que cualquier otro invento, con las posibles excepciones de las pistolas y el tequila.
Mitch Ratcliffe
Lenguajes de programación
Mucha gente tiende a mirar estilos de programación y lenguajes como religiones: si perteneces a uno, no puedes pertenecer a otros. Pero esta analogía es otra falacia.
Niklaus Wirth
Se ha escrito más código bueno en lenguajes denunciados como “malos” que en lenguajes proclamados como “maravillosos”, mucho más.
Bjarne Stroustrup
Sun Microsystems tenía las personas adecuadas para convertir Java en un lenguaje de primera clase, y creo que fue el personal de marketing de Sun quien se apresuró a sacarlo antes de que debiera haber salido.
Alan Kay
Sólo hay dos tipos de lenguajes: los que la gente se queja y los que nadie usa.
Bjarne Stroustrup
Planificación / Gestión
El costo de agregar una función no es sólo el tiempo que lleva codificarla. El costo también incluye la adición de un obstáculo para la expansión futura. El truco consiste en elegir las funciones que no luchan entre sí.
John Carmack
Einstein argumentó repetidamente que debe haber explicaciones simplificadas de la naturaleza, porque Dios no es caprichoso ni arbitrario. Esa fe no consuela al ingeniero de software.
Fred Brooks
Puede producir hardware en masa; no se puede producir software en masa; no se puede producir en masa la mente humana.
Michio Kaku
Cualquier organización que diseñe un sistema (definido de manera amplia) producirá un diseño cuya estructura es una copia de la estructura de comunicación de la organización.
Melvin Conway
El optimismo es un riesgo laboral de la programación: la retroalimentación es el tratamiento.
Kent Beck
Código limpio
Siempre codifique como si el tipo que termina manteniendo su código fuera un psicópata violento que sabe dónde vive.
John Woods
Cada vez que escribe un comentario, debe hacer una mueca y sentir el fracaso de su capacidad de expresión.
Robert Martín
Mucha complejidad en el software proviene de intentar hacer que una cosa haga dos cosas.
Ryan Singer
El código eliminado es código depurado.
Jeff Sickel
Cualquier tonto puede escribir código que una computadora pueda entender. Los buenos programadores escriben código que los humanos pueden entender.
Martin Fowler
Cualquier código propio que no haya mirado durante seis meses o más bien podría haber sido escrito por otra persona.
Ley de Eagle
Un día, mi hija entró, miró por encima del hombro un código Perl 4 y dijo: “¿Qué es eso, insultos?”
Larry Wall
La depuración es dos veces más difícil que escribir el código en primer lugar. Por lo tanto, si escribe el código de la manera más inteligente posible, por definición, no es lo suficientemente inteligente como para depurarlo.
Brian Kernighan
Algunas personas, cuando se enfrentan a un problema, piensan “Lo sé, usaré expresiones regulares”. Entonces ellos tienen dos problemas ahora.
Jamie Zawinski
No comente el código incorrecto, vuelva a escribirlo.
Brian Kernighan
El código es como el humor. Cuando tienes que explicarlo, es malo.
Cory House
Un nombre descriptivo largo es mejor que un nombre corto enigmático. Un nombre descriptivo largo es mejor que un comentario descriptivo largo.
Robert Martín
Hablar es barato. Enséñame el código.
Linus Torvalds
Calidad del software
El código legacy es código sin pruebas.
Michael Feathers
La exactitud es claramente la cualidad principal. Si un sistema no hace lo que se supone que debe hacer, todo lo demás importa poco.
Bertrand Meyer
A medida que los tests se vuelven más específicos, el código se vuelve más genérico.
Robert Martín
Los tests de software no sólo garantizan la ausencia de errores, sino también la presencia de valor.
Amit Kalantri
La calidad es gratuita, pero sólo para aquellos que estén dispuestos a pagar mucho por ella.
DeMarco y Lister
Nada hace que un sistema sea más flexible que un conjunto de pruebas.
Robert Martín
Por regla general, los sistemas de software no funcionan bien hasta que se han utilizado y han fallado repetidamente en aplicaciones reales.
David Parnas
Hay dos formas de escribir programas sin errores; solo la tercera funciona.
Alan J. Perlis
Refactorización
Siempre que tengo que pensar para entender lo que hace el código, me pregunto si puedo refactorizar el código para hacer que esa comprensión sea más evidente de inmediato.
Martin Fowler
Programación Orientada a objetos
Que no quede ninguna duda de que el diseño orientado a objetos es fundamentalmente diferente de los enfoques tradicionales de diseño estructurado: requiere diferentes formas de pensar sobre la descomposición y produce arquitecturas de software que están en gran parte fuera del ámbito de la cultura del diseño estructurado.
Grady Booch
Inventé el término “orientado a objetos”, y C++ no era lo que tenía en mente
Alan Kay