Charla que dí para la asignatura Diseño de Software Orientado a Objetos de la Universidad de Granada en el año 2007
Si os haceis preguntas sobre la diferencia al construir aplicaciones web entre un ingeniero informático y un informático que ha estado estudiando en el nivel de Formación Profesional o un Ciclo Formativo Superior, éstas se encuentran en la escalabilidad y eficiencia de un sistema de aplicaciones. Hay quien dice que una aplicación de escritorio no tiene mucho que ver con una aplicación web, pero lo cierto es que cada vez más, estas últimas van substituyendo a las primeras, y sino, mirad los últimos paquetes de programas de Google o Microsoft.
Hablando con profesionales de la programación de Microsoft he comprendido la importancia de tener una educación universitaria para realizar el mismo trabajo con la habilidad de un ingeniero y no cabe duda que el trabajo de los ingenieros y doctorados de Google es bastante bueno…
Para explicarlo pondré un ejemplo: las unidades de prueba o también conocidas en inglés como Unit Test. Normalmente , la gente de Microsoft no suele hacerle mucho caso a las prácticas de la Ingeniería del Software, de hecho, conocí a una eminencia de la programación de Microsoft una vez en una presentación que expuso, le pagaban por dar charlas sobre .Net en las Universidades, en los Microsoft University Tours; tenía una gran pasión por lo que hacía, escribió un libro…y precisamente uno de los profesores de mi Escuela de Informática lo tenía y lo había estado analizando…casi todas las páginas contenían comentarios sobre errores comunes de la teoría de la programación, eficiencia en tiempo y en espacio, escalabilidad, elegancia del código, …un horror…
Así que no me extrañó cuando leí un artículo que se anunciaba como “It’s OK Not to Write Unit Tests!“, donde su autor, Chris, empleado de Microsoft, dice que Unit Test sólo es un test, una prueba…bien, esto es un error, una unidad de prueba no sólo sirve para ver que una refactorización ha funcionado, para conseguir encontrar bugs o mejorar el diseño inicial en cualquiera de sus fases; porque esto es una forma de intentar economizar esfuerzos a vistas de la empresa para demostrar que hemos perdido mucho tiempo a causa de un motivo sólido: la creación de estas unidades de prueba. Sin embargo, no menciona por ningún lado que sirve para probar que el programa responde como se espera en todos los casos, i.e., desde el caso base a cualquiera de las opciones que necesitan de una entrada y una salida.
En el IV Concurso Universitario de Software Libre (donde presenté 3 proyectos consecutivos: MüchiGame, zenphp y PIE) se está debatiendo intensamente sobre si la Ingeniería del Software es necesaria vesus la necesidad de ganar dinero vendiendo productos versus la necesidad de un Colegio de Informáticos que certifiquen dichos productos como de calidad así como asignar un responsable para el diseño del mismo.
En cualquier caso, hace un tiempo escribí sobre cómo mejorar las prácticas de la Ingeniería del Software orientado a aplicaciones web, además de cómo hacer Unit Tests, concretamente con PHP.
Aquí os dejo un pdf para aprender a usar PHPUnit:
Otra demostración de cómo se puede adaptar el framework zenphp.
En este ejemplo multilenguaje desarrollado para el Departamento de Filología Inglesa y Alemana de la Universidad de Granada se utilizan categorías con subcategorías sin límite, como extra, se pueden añadir programas en ellas así como una contraseña para limitar la visibilidad además de asociar ficheros y documentos.
Otro programa diseñado a medida en este proyecto es el de búsqueda de profesores, la versión actual utiliza AJAX para mostrar todos los docentes cuyos apellidos empiezan por la letra seleccionada, además se puede observar la cantidad de campos personalizables y ficheros adjuntos que trae cada perfil incluída la imagen del usuario.
Las categorías editables se van colocando en el orden establecido dentro de un menú dinámico en javascript así como ,al entrar en cada una de ellas aparecen sus artículos y subcategorías en varios niveles.
El contenido multimedia se puede incrustar fácilmente gracias a los editores HTML online o WYSIWYG (What you See Is What You Get), con estilos prefijados por CSS compartidos entre clientes y administradores de la aplicación web de departamentos de universidades.
El diseño es de Agencia Q4.