Integración con otras áreas de la programación

Uno de los objetivos centrales de la materia es inculcar al estudiante la necesidad de aprovechar todos los conceptos aprendidos previamente en el nuevo entorno de programación.

Para ello algunas herramientas deben ser adaptadas y/o extendidas porque presentan particularidades al ser utilizados dentro de una interfaz de usuario. A modo de ejemplos podemos citar el manejo de errores o condiciones excepcionales y el testeo unitario.

En otros casos las distintas tecnologías de presentación restringen la aplicación de determinadas herramientas de programación que son útiles en otros ámbitos para incrementar la calidad y confiabilidad del código producido. Por ejemplo las tecnologías de generación dinámica de HTML basadas en páginas suelen limitar las posibilidades de diseño que uno normalmente utilizaría para garantizar consistencia y evitar duplicaciones en el código; es necesario entonces que un programador formado sea capaz de reconocer las limitaciones que impone la tecnología que está utilizando, sea para elegir una tecnología que se adapte a sus necesidades o bien para tomar las acciones necesarias para mitigar los riesgos de trabajar en ese contexto limitado por la tecnología.

Asimismo, consideramos que con frecuencia la programación de interfaces de usuario es un ámbito donde estas buenas prácticas suelen ser dejadas de lado, aún en contextos donde la tecnología no resulta un limitante. Es por ello que resulta de vital importancia tanto la exposición de las posibilidades de aplicación (en la clase teórica) como la ejercitación directa (en la clase práctica) de las prácticas como: programación orientada a objetos, distribución de responsabilidades y definición de interfaces entre componentes de software, análisis de acoplamiento y cohesión de un diseño, utilización de patrones de diseño, entre otros.

Finalmente, existen algunas cuestiones generales de programación que si bien no son específicas de la programación de interfaces de usuario toman especial injerencia en este ámbito y por lo tanto debemos tenerlas presentes permanentemente, por ejemplo concurrencia, programación distribuida, seguridad y la ejecución de un mismo programa en múltiples plataformas.

Material de lectura

  • Uso de excepciones en la integración entre el dominio y la interfaz de usuario.
  • Herramientas de testeo de interfaces de usuario.