Ver Mensaje Individual
  #18 (permalink)  
Antiguo 19/09/2006, 13:17
GikaJavi
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Iniciado por DarioDario Ver Mensaje
Esta pregunta cae en la ambiguedad (como se hablo en el otro thread), si hay 2 respuesta que pueden calificar tecnicamente el que realice el test se puede "equivocar" sin estar equivocado... es igual que "si pero no". Ambas funciones consiguen el mismo resultado, por ende ambas estan bien y la respuesta deberia ser la c (Ambas son equivalentes).



Aquí se cae en un detalle que creo que gran mayoria de los programadores "no saben", estan al tanto y saben que se implemento despues de alguna version, pero no todos recuerdan de memoria en que version se implemento tal y cual cosa... y no saber esto no significa que sea un mal programador y basta con perder 1 minuto mirando el manual oficial.



Todas son equivalentes, todas son correctas... mas allá de que por logica se puede intuir de que la b es la mas rapida creo que un milisegundo no hace la diferencia y no deberiamos caer en un test de "tuning" sino en un test de conocimientos.

Si bien hasta ahora no aporte ninguna "pregunta candidata" (he pensado, pero realmente no se me ocurre que y como formular las preguntas) lo unico que quiero hacer es ayudar a hacer buenas/mejores preguntas desde mi punto de vista. No intento pelear ni criticar a nadie (ya es la segunda ves que posteo solo para marcar algunas cosas que no estoy deacuerdo y me esta dando "verguenza" el hecho de solo "criticar") solo intento que sean mejores a mi forma de ver.

Saludos y disculpen si a alguien lo molesto con mis comentarios.
Hola DarioDario, tus comentarios no molestan para nada. Aunque no estoy demasiado de acuerdo contingo, así que espero no te moleste mi contraréplica.

En cuanto a la primera pregunta, no estoy de acuerdo en que la c sea la correcta. La pregunta es ¿qué opción es la mejor? y por supuesto que explode() es mejor que split() en estas circunstancias. Un buen programador no debe sólo saber resolver problemas, sino que debe hacerlo de la mejor forma posible. Imagínate que siempre implementaramos algoritmos con coste exponencial para resolver problemas que tienen una solución polinomial o aún mejor. Es cierto que ambas son correctas, pero explode() es mejor y, como ya he dicho, un programador debería usar siempre que pueda la opción más eficiente.

En cuanto a la segunda pregunta, es cierto que es rebuscado conocer la versión exacta en que se incorporó la función, aunque lo importante de la pregunta es ilustrar el enunciado, y no siempre es correcto usar el manual y decidirse por una u otra opción sino que la mejor opción es colocarlas ambas mediante la alternativa (no siempre vamos a hacer aplicaciones que corran en una versión de PHP conocida a priori (pensemos en las aplicaciones prefabricadas)).

Y en la tercera pregunta volvemos a la discusión de la primera. Un programador conformista elegiría cualquiera de las respuestas, pero recuerdo que la pregunta no es 'Cuál es correcto' sino 'cuál es mejor'. Como mucho podría aceptar la respuesta c como correcta, además de la b. Pero nunca las otras dos, porque son notablemente más ineficientes (están para otros usos).

Por último quisira dar mi opinión sobre cómo creo que debería ser un test de PHP:

Si elaboramos un test de PHP, no estamos elaborando un test estrictamente de programación o scripting, sino de PHP, por lo que deberíamos hacer preguntas no tan generales de programación en sí, sino más bien cosas específicas que destacan en PHP, como lenguaje de scripting ámpliamente usado en el desarrollo web. No quiero decir con esto que debamos pensar en preguntas tan rebuscadas como las del test de Zend, pero tampoco cosas demasiado genéricas.

No sé, creo que tal vez hemos empezado a lanzar preguntas sin plantear primero cómo deberían ser esas preguntas. Ya me diréis vuestra opinión.

Un saludo.