Re-design `allergies`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Refactorización
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- php
- Área
- testing-qa
Línea de trabajo
Empieza revisando el ejercicio allergies actual, su clase auxiliar Allergen y las pruebas que usan Allergen en un dataProvider. Compara las tres sugerencias de enum y tipos primitivos, y luego define el ejercicio elegido y el diseño de pruebas como terminados una vez que la implementación ya no requiera el problemático enfoque basado en una clase auxiliar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The current exercise design has many problems:
- Students must implement a helper class
Allergenthat has no TDD style guidance Allergenis used in tests, in a@dataProvider. That gives hard to understand PHP errors in tests onlyAllergenwould not be implemented that way anymore - it is a typicalenumclass
Problem specifications do not ask for a certain implementation. They define the problem statement as open as possible. Our design also should allow as many solutions as possible.
Suggestion 1: Strings and integers only
This leaves all possibilities open. Mentors can suggest enum or such to students. But enum is optimal for interfaces, internal enum usage just complicates things.
Suggestion 2: Provide enum stub
In addition to the tests from problem specifications we test the enum implementation first. When that is implemented, the actual problem is tested for. In these tests we must use the enum type, too (like Allergen now).
This forces students to use enum. It raises the bar for students not familiar with that. But enum would be a good choice in a real life scenario.
Suggestion 3: Provide ready-made enum
As before, this forces students to use an enum type. But the level of required knowledge is lower (only usage is required). But still, it makes no sense to work with other types internally then.
Which way to go? Other suggestions?
- Lenguaje dominante
- PHP
- Estrellas
- 167
- Forks
- 150
- Merge medio
- 1 d 18 h
- PR fusionados (30 d)
- 7
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de exercism/php
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Discussion: Test generator designQuizá libre de nuevo @mk-mxp la tomó hace 372 días y no hay ningún pull request abierto. Abierto
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
-
Tracking: Test generator MVPQuizá libre de nuevo @mk-mxp la tomó hace 961 días y no hay ningún pull request abierto. Abierto
exercism/php#631 · 2 comentarios · 1 reacción · 1 asignado ·
Todos los issues de exercism/php
Issues similares
-
needs-triage Platform(Default)
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Feature-Request
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
RSS-Bridge/rss-bridge#5123 ·
Los mantenedores suelen responder en 1 día
-
[Store] RstLoader detects headings inside indented code blocksPosiblemente ocupada @lazerg la tomó hoy. AbiertoBug Status: Needs Review Store
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug repo:ckeditor
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
No Code Attached Yet
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
joomla/joomla-cms#48611 ·
Los mantenedores suelen responder en 1 día