Optimizar y documentar el código Flashcards

(41 cards)

1
Q

¿Qué es el refactoring?

A

Es una técnica de ingeniería de software que mejora la estructura y eficiencia del código sin alterar su funcionalidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuáles son las ventajas principales del refactoring?

A

Facilita mantenimiento, simplifica diseño, mejora comprensión, detecta errores y agiliza el desarrollo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuáles son algunos inconvenientes del refactoring?

A

Puede ser difícil para novatos, consume tiempo, exceso puede ser contraproducente y puede afectar otras partes del software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué problema resuelve definir constantes globales en lugar de variables repetidas?

A

Evita modificar múltiples instancias del mismo valor y reduce errores al centralizar el cambio en un solo lugar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es el patrón ‘Extraer método’?

A

Crear un método nuevo a partir de un fragmento de código repetitivo para mejorar legibilidad y reutilización.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué hace el patrón ‘Dividir variable temporal’?

A

Separa variables que almacenan diferentes valores para evitar confusión y facilitar el mantenimiento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Para qué sirve el patrón ‘Eliminar asignaciones a parámetros’?

A

Evitar modificar parámetros de entrada dentro de un método para mantener claridad y evitar efectos secundarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué es el patrón ‘Mover método’?

A

Trasladar un método a la clase donde es más utilizado para mejorar organización y coherencia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué busca el patrón ‘Consolidar fragmentos duplicados en condiciones’?

A

Extraer código repetido fuera de las ramas condicionales para evitar duplicación y facilitar cambios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué significa ‘Descomponer un condicional’?

A

Dividir condiciones complejas en partes más pequeñas o métodos para mejorar legibilidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es ‘Reemplazar número mágico con constante simbólica’?

A

Sustituir números sin explicación en el código por constantes con nombres claros que expliquen su significado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Para qué se usa el patrón ‘Encapsular atributo’?

A

Convertir atributos públicos en privados y usar getters/setters para controlar acceso y modificar su valor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué indica un ‘mal olor’ en el código?

A

Señal de que el código puede tener problemas de diseño o mantenimiento que requieren refactorización.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué problema indica un método largo?

A

Que una función es demasiado extensa y debería dividirse para mejorar claridad y mantenimiento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Por qué evitar listas de parámetros largas?

A

Dificultan comprensión, mantenimiento y reutilización; mejor usar objetos o dividir métodos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué es la generalidad especulativa?

A

Crear clases o jerarquías que no se usan, complicando el mantenimiento innecesariamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué función tiene un sistema de control de versiones (VCS)?

A

Registrar y almacenar el estado del código fuente en diferentes momentos para facilitar seguimiento y colaboración.

18
Q

¿Qué es un commit en control de versiones?

A

Confirmación y subida de cambios hechos localmente al repositorio central.

19
Q

¿Qué es una rama (branch) en control de versiones?

A

Una línea independiente de desarrollo que permite trabajar en funcionalidades separadas sin afectar la principal.

20
Q

¿Qué ventaja tiene un sistema de control de versiones distribuido?

A

Cada usuario tiene un repositorio completo local, lo que permite trabajar sin depender siempre del servidor central.

21
Q

¿Qué es JavaDoc?

A

Herramienta para generar documentación HTML automática a partir de comentarios especiales en código Java.

22
Q

¿Por qué es importante documentar el código?

A

Mejora la legibilidad, facilita el mantenimiento y ayuda al trabajo en equipo y a usuarios finales.

23
Q

¿Qué tipo de comentario reconoce JavaDoc?

A

Comentarios que empiezan con /** y usan etiquetas como @param, @return para describir clases y métodos.

24
Q

¿Qué problema genera la duplicación de código?

A

Dificulta mantenimiento, provoca inconsistencias y aumenta errores; debe evitarse con refactoring.

25
¿Qué es un número mágico en programación?
Un valor literal usado sin explicación que dificulta entender el código; se debe reemplazar por constantes.
26
¿Qué significa 'intimidad inadecuada' en código?
Cuando una clase accede a datos privados de otra, rompiendo encapsulación y aumentando dependencia.
27
¿Cuál es la función de un getter y setter?
Métodos que controlan el acceso y modificación segura de atributos privados en una clase.
28
¿Qué es consolidar expresiones condicionales?
Combinar condiciones que llevan al mismo resultado para simplificar el código y evitar repeticiones.
29
¿Qué es una clase perezosa?
Una clase que realiza pocas o ninguna tarea significativa, y debería eliminarse o combinarse para simplificar el diseño.
30
¿Qué es la cadena de mensajes?
Una secuencia larga de llamadas entre objetos que hace el código difícil de seguir y menos eficiente.
31
¿Cómo mejorar la legibilidad frente a condicionales anidados?
Usar funciones auxiliares para dividir la lógica y evitar múltiples niveles de if o switch.
32
¿Qué riesgo tiene el exceso de comentarios en el código?
Puede indicar que el código no es claro; un buen código debe ser lo suficientemente explícito para necesitar pocos comentarios.
33
¿Qué es el merge en control de versiones?
Proceso de combinar cambios realizados en diferentes ramas para integrarlos en una sola línea de desarrollo.
34
¿Qué es el refactoring?
Es una técnica de ingeniería de software que mejora la estructura y eficiencia del código sin alterar su funcionalidad.
35
¿Cuáles son las ventajas principales del refactoring?
Facilita mantenimiento, simplifica diseño, mejora comprensión, detecta errores y agiliza el desarrollo.
36
¿Cuáles son algunos inconvenientes del refactoring?
Puede ser difícil para novatos, consume tiempo, exceso puede ser contraproducente y puede afectar otras partes del software.
37
¿Qué problema resuelve definir constantes globales en lugar de variables repetidas?
Evita modificar múltiples instancias del mismo valor y reduce errores al centralizar el cambio en un solo lugar.
38
¿Qué es el patrón 'Extraer método'?
Crear un método nuevo a partir de un fragmento de código repetitivo para mejorar legibilidad y reutilización.
39
¿Qué hace el patrón 'Dividir variable temporal'?
Separa variables que almacenan diferentes valores para evitar confusión y facilitar el mantenimiento.
40
¿Para qué sirve el patrón 'Eliminar asignaciones a parámetros'?
Evitar modificar parámetros de entrada dentro de un método para mantener claridad y evitar efectos secundarios.
41
¿Qué es el patrón 'Mover método'?
Trasladar un método a la clase donde es más utilizado para mejorar organización y coherencia.