Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proyecto de Alejandro Solar y Luis Alejandro Rodriguez #23

Open
26 tasks done
AlejandroSolar opened this issue Jul 16, 2022 · 0 comments
Open
26 tasks done

Proyecto de Alejandro Solar y Luis Alejandro Rodriguez #23

AlejandroSolar opened this issue Jul 16, 2022 · 0 comments
Labels
Aprobado Cuando se de la evaluación final por el colectivo de la asignatura

Comments

@AlejandroSolar
Copy link

AlejandroSolar commented Jul 16, 2022

Modifique las líneas siguientes con los detalles relevantes:

Equipo

Proyecto

Checklist

(Esta lista es para el mentor. Hasta que no estén chequeados estos elementos no se procederá a la evaluación en persona.)

Básicos

  • El repositorio indicado existe y tiene un Readme.md no vacío.
  • Los miembros del equipo tienen un usuario de Github válido.
  • El proyecto puede ser ejecutado siguiendo las instrucciones del Readme.md.
  • El reporte existe y tiene la longitud adecuada.

Funcionalidades

  • El proyecto permite configurar al menos 5 elementos relevantes de la mecánica del dominó.
  • El proyecto contiene 2 implementaciones diferentes de cada elemento configurable.
  • El proyecto permite personalizar las estrategias de los jugadores virtuales.
  • El proyecto contiene al menos 3 implementaciones diferentes de jugadores virtuales.

Ingeniería de Software

  • Las estrategias de jugadores virtuales pueden combinarse con cualquier configuración del juego de forma transparente.
  • La interfaz gráfica permite configurar el juego en toda la extensión que brinda la lógica.
  • Las jerarquías de clases y demás abstracciones existentes son adecuadas para modelar el dominio.
  • El código muestra una organización y estructura mantenible y extensible, respetando las buenas prácticas de la ingeniería de software.

Documentación

  • El reporte técnico explica de forma suficientemente detallada los pormenores del proyecto.
  • Los nombres de clases, métodos y variables son descriptivos.
  • Los comentarios son legibles y útiles para entender el funcionamiento del código.

Revisión

Fecha prevista: 2020/XX/XX

Comentarios

Anotaciones que deben ser arregladas para aceptar el proyecto

  • Implementar una interfaz ICloneable<T> para implementar un unico método de Clone y luego implementar un método extensor sobre IEnumerable<T> where T : ICloneable<T> para clonar directo una colección.
  • Utilizar un enum para la Posición en la clase Jugada.
  • Utilizar inglés en el nombre de las variables, métodos y clases (es decir, en general en todos los identificadores).
  • Utilizar PascalCase para los métodos, clases, campos y propiedades; y camelCase para las variables y los parámetros.
  • ¿Qué pase si HigherWin y LowerWin son seleccionadas?
  • Utilizar el formato de comentarios enfocado en documentación (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/documentation-comments).
  • Utilizar IEnumerables<T> donde se pueda y donde sea necesario si o si una lista utilizar IList<T>.
  • Separar las clases e interfaces que no dependen de un tipo de implementación concreta de cierta característica en una carpeta llamada talvez Core y luego en otra carpeta separada por carpetas según la característica las implementaciones concretas de esa característica.
  • Utilizar más Linq para programar de una forma más declarativa.
  • A no ser casos raros es recomendable tener una clase, interfaz, enum, etc por archivo.
  • Recomiendo usar la nueva forma de C# 10 para declarar los namespace (https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/types/namespaces)

Comentarios Finales

  • El proyecto tiene una buena calidad con el nivel de abstracción necesario para representar el dominio.
  • Un punto negativo es que hay una alta dependencia de la plataforma Console especificamente impidiendo una fácil transición hacia otra plataforma como pudiera ser la Web.
  • Debido en gran parte al punto anterior el flujo del juego está manejado por la plataforma Console dentro de la propia implementación en vez de delegar la resposabilidad al que usa la biblioteca por ejemplo creando un iterador de jugadas o acciones que pasan durante el juego y que la parte de la presentación decida cómo consumir ese iterador.
@AlejandroSolar AlejandroSolar changed the title Proyecto de Nombre y Nombre Proyecto de Alejandro Solar y Luis Alejandro Rodriguez Jul 16, 2022
@leynier leynier added Listo para exponer Cuando estén todos los checkbox marcados y la fecha de exposición esté conveniada Listo para evaluar Cuando se haya hecho la exposición y el mentor haya dado las conclusiones finales en el issue labels Sep 3, 2022
@lead8000 lead8000 removed the Listo para exponer Cuando estén todos los checkbox marcados y la fecha de exposición esté conveniada label Sep 8, 2022
@leynier leynier added Aprobado Cuando se de la evaluación final por el colectivo de la asignatura and removed Listo para evaluar Cuando se haya hecho la exposición y el mentor haya dado las conclusiones finales en el issue labels Sep 15, 2022
@leynier leynier removed their assignment Jul 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Aprobado Cuando se de la evaluación final por el colectivo de la asignatura
Projects
None yet
Development

No branches or pull requests

3 participants