Ver Mensaje Individual
  #16  
Antiguo 01-10-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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
__________________
El malabarista.
Responder Con Cita