Add section on inappropriate intimacy between classes
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- documentation
Línea de trabajo
Comienza localizando la sección de la documentación del curso que trata sobre el diseño de clases o la generación de gráficos, ya que el issue no indica ningún archivo ni punto de entrada. Añade allí la explicación proporcionada y los ejemplos de MIKE IO, conservando las indicaciones sobre las APIs públicas y la manipulación de datos; se considerará terminado cuando la nueva sección esté publicada en el material del curso correspondiente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Classes should interact through public APIs, not by reaching into each other's private attributes.
Example from MIKE IO plotting refactor:
Before (inappropriate intimacy):
# Plotter reaches into geometry internals for subsetting
values = values[self.da.geometry.top_elements]
geometry = self.da.geometry.geometry2d
# Plotter uses private attribute to check for time axis
if self.da._has_time_axis:
return self.da.values[0]
After (using public API):
# Use sel/isel for subsetting
da = da.sel(layers="top")
geometry = da.geometry
# Use public dims property
da = self.da.isel(time=0) if "time" in self.da.dims else self.da
Key principles:
- Never access private attributes (prefixed with
_) of another class - Use public methods like
sel,isel, and public properties likedims - If you need to access private state, that's a signal the class is missing a public API
- Plotters should plot, not subset — keep data manipulation in the data layer
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 8
- Forks
- 1
- Merge medio
- 4 min
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 DHI/python-package-development
-
Dificultad 2/5 1-2 días Aptitud para principiantes 88/100
-
Dificultad 2/5 1-2 días Aptitud para principiantes 72/100
DHI/python-package-development#37 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
Todos los issues de DHI/python-package-development
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
Git-it-App/git-it-electron#1047 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
neondatabase/website#5944 ·
-
📕documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
db-ux-design-system/core-web#8239 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
libsdl-org/sdlwiki#1008 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100