Fe de erratas
December 22nd, 2009
Errores encontrados en el libro. Si encuentras un error indícalo con un comentario. Pon la página en que está el error, el propio error y su corrección.
Comments (42)42 Responses to “Fe de erratas”
Deja tu comentario:
Página 39, (5º principio)
Donde dice: “Construimos proyectos entorno a individuos motivados” debe decir “Construimos proyectos en torno a individuos motivados”
Página 40, (10º principio)
Donde dice: “La simplicidad, es esencial” debe decir “La simplicidad es esencial”
Página 54
Donde dice: “Pasamos, de pensar en implementar tareas, a pensar en…” debe decir “Pasamos de pensar en implementar tareas a pensar en…”
Portada
Donde dice “Diseño Agil TDD” debe decir “Diseño Ágil con TDD”
Donde dice “Prologo” debe decir “Prólogo”
Página 54
Donde dice “En TDD dejamos que la propia implementación de pequeños ejemplos, en constantes iteraciones, hagan emerger la arquitectura que necesitamos usar.” debe decir “En TDD dejamos que la propia implementación de pequeños ejemplos, en constantes iteraciones, haga emerger la arquitectura que necesitamos usar.”
En el ejemplo de la calculadora dice que la operación Add solamente puede sobrepasar el límite inferior si alguno de los dos argumentos lo sobrepasa. Pero en el caso calculator.Add(-60,-60); por ejemplo ninguno de los argumentos lo sobrepasa y el resultado si. Faltaría agregar un test como éste. También habría que modificar el método Add.
Tienes razón Hernando, pero más adelante se hace un test y una refactorización que comprueba los resultados con lo que el caso queda cubierto. Pienso que la explicación faltó por aquello de copiar, pegar y demás modificaciones en el texto del libro.
Gonzalo nos dijo:
En mi opinión, no es escabador sino escavador, o mejor aún excavador (acabo de descubrir que existen las dos y son distintas).
Pg. 308, (bibliografía)
Donde díce “[16] J. B. Rainsberg. JUnit Recipes…”
debe decir “[16] J. B. Rainsberger. JUnit Recipes…”
Buenas,
he observado que en algunos capítulos, por ejemplo 8 y 9, la cabecera de página no incluye el título del capítulo como en otros. Aparece solo “Capítulo 8″, “Capítulo 9″ y así.
Página 48, donde dice “En nuestra industria del software hemos llegado al extremo de el que el cliente nos dice a nosotros,” debe decir “En nuestra industria del software hemos llegado al extremo que el cliente nos dice a nosotros,”.
Pag 99: “En el caso de Python, si la API ……, dado que en ese lenguaje no necesitamos definir interfaces al ser débilmente tipado”.
Python NO es débilmente tipado sino que es DINÁMICAMENTE tipado. Los tipos se comprueban (fuertemente) en tiempo de ejecución (de ahí dinámico).
Hola.
Tengo un puñado, aunque aún no he terminado de leérmelo.
Pág. 93: “generados” en lugar de “generador”.
Pág. 141: En el ejemplo de abajo, “lowerLimit” debería ser negativo.
Pág. 264: “Hagamos” no lleva tilde.
Pág. 268: “veamos cómo funciona”; “cómo” lleva tilde por ser pronombre interrogativo.
Durante el ejemplo en python, en la libreta”, se apunta “Restar 5 al número 3, devuelve 2″, lo que es erróneo. Debería ser al revés o ser negativo: “Restar 3 al número 5, devuelve 2″. Lo mismo para el otro ejemplo. Esto se repite varias veces (por ejemplo, página 265).
Igualmente, en la libreta correspondiente al ejemplo en C#, a veces se repite un ejemplo, pero con errores.
Ejemplo en la página 125:
Aceptación – “* 4 5 -2 : produce Error
Es exactamente igual que la línea anterior, pero le falta unas comillas.
Un saludo.
Hola de nuevo.
Continúo por donde lo dejé:
Pág. 289: No es muy importante, ya que la RAE cambió la norma, pero “… aquél que representamos…”, “aquél” llevaría tilde por ser pronombre.
Pág. 294: “El Único”: “único” debe llevar tilde.
Pág. 297: Igual que el de la 289: “…practicarse sin el uso de éstas”.
Pág. 303: Hay un enlace cortado.
Pág. 305: “Cuando se construyó”: “Construyó” lleva tilde por ser pretérito imperfecto.
Un buen libro para comenzar en el desarrollo Ágil.
Muchas gracias!!
Buenas,
Perdona por solo escribirte una, y no recopilar unas cuantas antes de molestar, pero es que me han llorado los ojos y para que no se me olvide te la cuento ya
“Para tal entrada queremos que el
SUT lanze una excepción de tipo”
lanze está raro, sería lance.
Saludos y muchísimas gracias por acercarnos en éste libro una nueva y más natural forma de escribir código.
Antes que nada felicitarte por tan grandioso libro, hoy lo empecé a leer pero me ha “atrapado” está genial!, en la página 29 en el 1er párrafo dice “porque a
día de hoy cada vez más clientes apuestan por el outsourcing.”, debería decir “porque al día de hoy …”
Saludos
Página 130 – Código: “public void SubstractIsUsingValidator”. En este test realmente se llama al método Add de Calculator. Por lo que creo que el nombre adecuado es “AddIsUsingValidator”, porque a continuación se habla de un método de suma.
Un saludo y gracias por el libro =).
Página 39:”Entregamos software que funciona frecuentemente, entre un par de semanas y un par de meses.”
Para que no parezca que el software funciona frecuentemente, podría decir:
“Entregamos software que funciona y la frecuencia de entrega está entre un par de semanas y un par de meses.”
Página 84 – Si la estapa de preparación….
Debería decir etapa
Un saludo, Ana
Página 115: 7.2.5. Dependency Inversión Principle (DIP) -> Ese Inversion no lleva tilde,
Antes de nada, gracias por ofrecer un punto de partida para aprender y aplicar TDD.
Página 132:
-Frase: Sin embargo, el costo de este cambio es mímino.
-Error: “mímino” debería ser “mínimo”
Un saludo
Página 18:
-Frase: Al final me dí cuenta de que la odisea me sobrepasaba
-Error: di (pretérito perfecto simple de dar) no lleva tilde
Un saludo y muchas gracias por haberte currado el libro =)
Página 18:
-Frase: una posici ́n de estabilidad donde por fín dejase
-Error: “fin” no lleva tilde
¡saludos!
En la página 18 pone “y valorar cuestionas” y debería ser “y valorar cuestiones”.
Un saludo y felicidades por el libro
En la página 186 del capítulo 9 modificando la clase ExpressionFixer en la función DoesExpressionStartsWithOperator en las líneas 42 y 43 se utiliza ‘i’ como variable para acceder a los arrays. Me parece que el correcto es ‘índex’, el parámetro de entrada de la función.
Gracias por el libro y más por ponerlo libre de costes.
Hola de nuevo,
En la página 190 (versión PDF) en el código de «ExpressionFixer» en la línea 45 hay una llamada al constructor de MathExpression que todavía no se ha introducido. No sé hasta qué punto esto es un error o algo intencionado. En los siguientes párrafos no se menciona.
¡Saludos!
Pagina 112. Parrafo 3 dice: “Una de las mejores formas que hay, de ver si la API que estamos diseñando
es intuitiva o no, es usarla. TDD propone usarla antes de implementarla, lo que le da in giro completo a la forma en que creamos nuestras clases. ”
El error: lo que le da in giro… deberia decir un giro.
Pág. 127:
En la linea 15 del ejemplo dice: Assert.AreEqual(result , 4);
Me parece que tendría que decir 4, result
Pág. 127:
En la linea 22 del ejemplo dice: Assert.AreEqual(result , 7);
Me parece que tendría que decir: 7, result
En la pagina 133, cuando habla de limite Inferior. Revisar si esta bien, pues me parece que el parámetro es el limite Superior.
Pagina 158.
Dice “La implementacion mınima para alcanzar verde:” tomando el código del proyecto del sitio del libro. Agregando ese código el programa no compila y por tanto no hay luz verde.
Pag. 226. Donde dice Luz Verde. No he logrado que me de luz verde en ese punto siguiendo los pasos, puede que se deba a mi poco entendimiento de C#, algo pasa con FileHandler en ese punto. Me sale el siguiente mensaje:
Error 1 No se puede encontrar el tipo o el nombre de espacio de nombres ‘FileHandler’ (¿falta una directiva using o una referencia de ensamblado?) D:\Mis Documentos\Visual Studio 2008\Projects\TestIntegracion\TestIntegracion\UserManagementTests.cs 19 13 TestIntegracion
Capitulo 8 pagina 111. Primer Test. Para que ese código compile tube que agregar una serie de referencias al proyecto en MS C# 2008 Express. Tanto al NUnit, como al proyecto SuperCalculator. Seria bueno que lo aclaren en el libro para los newbies en C# como yo pero que quieren seguir el hilo del TDD.
Capitulo 8 pagina 118.
Se crea el atributo de clase: _calculator en la Linea 3
private Calculator _calculator;
Pero luego se hace referencia sólo a calculator
La corrección seria unificar el criterio y llamarlo siempre igual.
Capitulo 8 pagina 136
La clase CalcProxy, que recien se esta creando, hace referencia a algo llamado “BasicCalculator” pero en ningun momento, hasta este punto haces una referencia a eso.
Entonces ese minimo SUT que hace referencia el libro, no compila.
Página 44. Al final de la página dice “hemos llegado al extremo de el que el cliente nos dice a nosotros” y debería de decir
“hemos llegado al extremo de que el cliente nos dice a nosostros”.
Página 47. El párrafo dice:
El juicio sano sobre nuestro trabajo nos guía en la búsqueda de mejoras estrategias y nos ayuda a superar la pereza que nos produce la idea del cambio.
Y debe decir:
El juicio sano sobre nuestro trabajo nos guía en la búsqueda de mejoras estratégicas y nos ayuda a superar la pereza que nos produce la idea del cambio.
Capitulo 8 pagina 141
Linea 4> en el código se menciona a: _validator
Esto no se definió antes en ningún lado, hasta el momento en la clase CalcProxy por lo tanto el código no compila.
Capitulo 8 pagina 141
Linea 4> en el código se menciona a: _validator
Esto no se definió antes en ningún lado, hasta el momento en la clase CalcProxy por lo tanto el código no compila.
Solución: agregar el atributo de clase
private Validator _validator;
en la clase ProxyCalc
Capitulo 8 Pagina 141
Ejemplo 2 Linea 1
Hace referencia a
: LimitsValidator
pero en ningún momento se hablo de esa interfaz, ni como estaría compuesta.
Solución:
crear el código de la interfaz, según ejemplos de código del libro.
Capitulo 8 pagina 141
Linea 4> en el código se menciona a: _validator
Esto no se definió antes en ningún lado, hasta el momento en la clase CalcProxy por lo tanto el código no compila.
Solución: agregar el atributo de clase
private Validator _validator;
en la clase ProxyCalc
Pero después hay que modificarla por
private LimitsValidator _validator;
cuando se crea esa interfaz
Capitulo 8 pagina 141 en adelante.
En ningún momento se modifica el Constructor de CalcProxy
Sin embargo en el código ejemplo figura:
public CalcProxy(LimitsValidator validator,
BasicCalculator calculator)
{
_calculator = calculator;
_validator = validator;
}
Capitulo 8 pagina 145.
Luego de las modificaciones realizadas y tratando de solucionar los problemas anteriores, el test se rompe.
Sin embargo en esta pagina figura un cambio del SETUP, que en el libro no se menciona:
private Calculator _calculator;
private CalcProxy _calcProxy;
private CalcProxy _calcProxyWithLimits;
[SetUp]
public void SetUp()
{
_calculator = new Calculator();
_calcProxy =
new CalcProxy(
new Validator(-100, 100), _calculator);
_calcProxyWithLimits =
new CalcProxy(new Validator(-10, 10), _calculator);
}
La última referencia a esto se hace en la pagina 138 y no coincide.
Capitulo 8 pag 145
para que el test roto funcione tube que modificar el setup y agregarle: new Validator(-100, 100),
Quedando:
_calcProxy = new CalcProxy(new Validator(-100, 100), _calculator);
Capitulo 8 pagina 143
Aparece una referencia _calcProxyWithLimits
Código linea 6 _calcProxyWithLimits No existe en el contexto actual.
En el código fuente ejemplo esta la siguiente referencia a un _coordinatorWithLimits puede que le hayas cambiando el nombre más adelante en el libro? hasta este punto no hay referencia de eso.