Prof. Charlatan + Buenas Prácticas PHP + Parte I
Este termino comencé a ver una materia que se llama Procesamiento de Datos (Programación PHP) y es triste ver como un profesor le cae a mentira a un grupo de alumnos, que en vez de dedicarse “enseñar”, busca “sorprender” a un conglomerado, como se que esto dará mucho que hablar hoy comienzo una serie de post donde rescatare las carencia de este profesor, por razones obvias no daré su nombre (Espero lea este post profesor) y que NO se consideran como buenas prácticas de desarrollo en PHP.
Aclaro que No es un Flame contra este profesor, son simplemente aclaratorias que desde mi modesto punto de vista no puede quedar “impune” de la misma forma sirva para incentivar a las personas y/o alumnos(hasta al mismo profesor) a buscar información antes de decirla y/o creerle a cualquiera y mas en el área de la programación debido a que existe mucha información en la web.
Hay cosas de “ABC” que cualquier desarrollador de aplicaciones web debería tener claro, en este caso para PHP y es que las aplicaciones web de hoy día necesitan ir rápido, y rápido no se traduce es hacer códigos pequeños sino en implementar buenas prácticas.
En Plena Clase
El profesor explico como instalar Apache (En windows XP :-P) pero nunca dijo porque se usaría Apache? y no otro por ejemplo IIS, Cherokee, etc. Ya por aquí considero que empezó mal porque como pedagogo (que no tiene nada) debió explicar esto, no conforme, comienza a dar la explicación de instalar Zend Studio (un IDE privativo)y luego dice como “crackearlo” (profesor tenga ética y no sea “pisa bandera”) otro error, esto se puede decir entre amigos pero NO en una clase.
Bien, después del bla bla bla, llega a un punto donde comienza hablar de rutas en los archivos, es decir hacer los include ‘../mi_ruta/archivo.php’, y dice que las rutas relativas son mejores (aquí explote) y hago una pregunta, Profesor que es mas optimo rutas Relativas o Absolutas? la barbarie! el profesor contesto Relativas, caigo en un intercambio de palabras donde le dije que era falso y ahora explico porque.
Las rutas absolutas son mas optimas, como dije en un principio hay que hacer aplicaciones web rápidas y algo tan simple como hacer un include de una ruta relativa se paga caro en tiempo de ejecución, porque se perderá mas tiempo resolviendo la ruta, es decir crear el arbol de directorio porque el compilador de PHP no es que hará un simple cd ../mi_ruta/archivo.php no no no, el compilador construye la ruta completa del archivo.php hará algo como /var/www/mi_ruta/archivo.php.
Luego que le comente lo anterior con otras palabras pero la idea sigue siendo la misma, el profesor en cuestión me alega que me imaginase que tuviera muchos archivo dentro del proyecto que desarrollo, por favor con mas razón se debe utilizar rutas absolutas por el simple hecho que serán mas archivos los que se procesaran en la ejecución de la aplicación (profe esto es sentido común).
Pero no todo es malo el profesor dentro de todo lo que comento en cuatro (04) horas de clases académicas (45min C/U) unas de las pocas que considero que acertó fue en el manejo de las comillas dobles y simple, cuando en PHP colocamos comillas dobles el compilador asumirá que existen variable ($var) dentro del string, solo que con comillas simples se ignoran las variables dentro del string pero le falto decir que es mas rápido.
ejemplo:
$tmp = 'aaaaaaaaaaaaaaaaaaaa';//rápido $tmp = "aaaaaaaaaaaaaaaaaaaa"; //lento
Conclusiones.
Estas carencias son casi que normales (aunque no deberia ser así) entre los desarrolladores en cualquier lenguaje y es porque muy pocos se preocupan por hacer profiler y debug o simples benchmark para encontrar bottlenecks (cuellos de botella) dentro de nuestro código, con esto quiero decir que lo que se dice dentro de este post no lo invente yo, la práctica da la razón y utilizar las mejores prácticas nos hace mejor desarrollador(existen deferencias entre desarrollador y programador).
Leer: Regla 20/80








Noviembre 10, 2009 - 10:24 am
Bueno, yo soy desarrollador y trabajo en el mundo Java con JBoss, independiente de la velocidad, creo que no estás viendo el tema de la portabilidad, me explico, si yo uso una ruta absoluta ej: (/Volumes/MyWork/MyProject/web/thisFile)… pues mi aplicación queda ‘atrapada’ a esa ruta… si quiero ponerla en otro servidor tendré que ir cambiando ruta por ruta en todo el código, o replicar la estructura de directorios. Con rutas relativas, simplemente me basta mantener el nombre del directorio de la aplicación y listo, puedo mover la aplicación a otro directorio o a otro servidor.
Lo del entorno de desarrollo, pues no se de que es el curso, si es de administración de servidores o de programación en PHP… si es de lo segundo yo creo que no importa el ambiente, sino que tu profesor tomó lo que vió sería mas fácil. Claro sería bueno mencionar otras alternativas. Lo de la piratería, estoy de acuerdo contigo, está muy mal eso de la piratería, debió buscar un IDE Open Source o por lo menos usar un trial.
Noviembre 10, 2009 - 11:03 am
Hola Soujiro si que hay formas de obtener la ruta absoluta y mediante una constante replicarsela a todos los archivos donde se requiera y asi evitas que el S.O. en cada request este armando nuevamente la ruta absoluta, toma en cuenta que una ruta relativa es solo un alias a una ruta absoluta, yo también vengo del mercado de java y allá se hace igual…
Gracias por el comentario…