Trabajos Prácticos

Enunciado

Pautas Generales

Las siguientes son algunas recomendaciones generales para los Trabajos Prácticos.

  • Como siempre hay ciertas características generales de programación que evaluamos, sin importar si es código de UI o de dominio o de test, etc.
  • Legibilidad del código: nombre de variables, métodos y clases significativas.
  • Prolijidad y formateo: eliminar código "okupa", código comentado, espacios y lineas en blanco "extra", etc.
  • Diseño:
    • Priorizar la delegación y división del comportamiento entre los objetos evitando algoritmos procedurales, largos y concentrados en un solo método.
    • Favorecer el "Tell, Don't Ask"
    • Evitar objetos anémicos (objetos que solo tiene datos).
    • La más importante, evitar duplicaciones y repeticiones de código (DRY).
  • Simplicidad:
    • Evitar caer en el sobrediseño (explotar y diseñar todo un modelo de objetos para un problema que todavía no conocemos, pensando en "quizás en un futuro me van a pedir....").
    • Evitar centrarse únicamente en la idea de que "más es mejor". Evitar el agregar features o funcionalidades extras, si todavía no emprolijé o refactoricé lo que ya tenía implementado, a fin de que, no solo funcione, si no que cumpla con las ideas de calidad que mencionamos acá.

Objetivos

Trabajo Práctico 1

  • Construir una aplicación desktop no trivial, modelando un dominio medianamente complejo
  • Aprender conceptos básicos de interfaces de usuario
  • Modelar la interfaz de usuario como parte del código
  • Definir un layout simple
  • Poner en practica conceptos como modelo de aplicación, binding (binding bidireccional), controller

Trabajo Práctico 2

  • Construir una aplicación web, aprendiendo a manipular herramientas utilizadas en la industria actualmente: Framework javascript, plugins de "debugging" client side, Eclipse, comunicación con un servidor JSon
  • Introducirse y familiarizarse con:
    • HTML: tags comunes como <table>, <a>, <br>, etc
    • CSS: no se espera que sean expertos, ni que hagan una aplicación con estética profesional, pero sí se va a valorar el hecho de que hayan escrito algunos estilos, y jugado con la tecnología. Les recomendamos el uso de librerías que permiten dar estilos más rápidamente como Boostrap.
    • JS: en realidad javascript "con pinzas", porque no profundizamos en las características peculiares del lenguaje. Usaremos algun framework aceptado actualmente como angular para hacer una SPA, siempre manteniendo el espírutu de una aplicación mínima que siga los lineamientos básicos del framework.
  • Implementar y familiarizarse con las problemáticas de estado y comportamiento server-side:
    • Entender y aplicar la división de "controller / modelo / vista", a través del patrón MVC tanto en el modelo como en la vista
    • Entender cuando nos encontramos en la vista y cuando en el cliente y realizar la comunicación entre ambos de forma satisfactoria

Enunciados de Cuatrimestres Anteriores