El test tiene sus puntos interesantes, pero es claro que se sesga en muchos aspectos hacia un lado a otro. Por ejemplo, es super-claro que el test es ultra-pro-OO, aun supone que TDD es lo mejor que hay, se explaya mucho en como organizas *fisicamente* los archivos (que en lenguajes como C++ es mucho mas critico que en otros como Python - donde el esquema esta muy pre-definido o F# donde es anormal tener muchos archivos y arbol de estos), y muchas cosas que *dependen* del lenguaje en particular y sus falencias/limitaciones/capacidades (como el uso de asserts).
Cojamos este ejemplo:
Cita:
Programación defensiva
- No entiende el concepto
- Comprueba todos los arguments y las asunciones críticas en el código
- Se asegura de comprobar los valores de retorno y comprobar excepciones en el código que puede fallar
- Tiene su propia librería para ayudar con la programación defensiva, escribe pruebas unitarias para simular fallos
|
Todo esto *parece* taaan sabio! Pero es solo valido en lenguajes con una baja solidez en su sistema de tipos (como por ejemplo en Javascript, PHP, C, C++) no es tan cierto si son mas fuertemente tipados (Python, Pascal, Maso C#) y casi innecesario en altamente tipados (F#, Ocalm, Haskell). Pa' rematar, asume que la "programacion defensiva" es le mejor manera de hacer apps robustas.
Por el contrario, es "hacer que fallo rapido y grande"! Que es el principio de la "robustez en software".
---
El error es que mezcla muchos paradigmas, conceptos, lenguajes y entornos, lo que hace que ciertas cosas sean o no ciertas dependiendo del espectro en el que se mueva uno.
Ahora, hay muchas cosas que son genuinamente univerales (El punto de la comunicacion, me parecio genial que estuviera!), y quizas debio partirse en 2 o 3 sub-test por cada gran familia (ej: Uno para los de OO, uno funcional, uno declarativo) y/o por cada sub-profesion (apps servidor, moviles, web).
---
Por otro lado, si mas de un programador novato lee eso, se asusta de que rayos es cada uno de esos puntos y lo pone a investigar, genial!..
---
Hay un solo punto que es constante en el test y es lo mas valido que tiene. De hecho, se pueden convertir casi todas las preguntas en 2:
Acerca de
X
- No se
X, o no se usarlo bien/fluido
- Se usar bien y fluido
X