Repaso entornos de desarrollo: Refactorizacion. (Teoría)

Alvaro Garcia Varela
Quiz by Alvaro Garcia Varela, updated more than 1 year ago
33
1
0

Description

Quiz on Repaso entornos de desarrollo: Refactorizacion. (Teoría), created by Alvaro Garcia Varela on 05/18/2016.

Resource summary

Question 1

Question
¿Que intentamos hacer cuando refactorizamos un código?
Answer
  • Hacerlo más fácil de comprender.
  • Hacerlo más complejo, pero con un funcionamiento más optimo.
  • Hacerlo más fácil de modificar.
  • Hacer un código más limpio.
  • Tener una revisión del código para ver su funcionalidad detectar fallos.
  • Cambiar la funcionalidad del programa de manera rápida.
  • Hacer unos cambios en el codigo sin cambiar su comportamiento observable

Question 2

Question
¿Cual es el objetivo final de la refactorizacion?
Answer
  • Mantener el código sencillo y bien estructurado.
  • Entender la funcionalidad del programa y mejorarlo.
  • Crear extensiones de ese código para añadir nuevas funcionalidades.

Question 3

Question
Cual es la etapa de desarrollo especifica para realizar una refactorizacion.
Answer
  • Etapa de análisis.
  • Etapa de diseño.
  • Etapa de programación.
  • Etapa de pruebas.
  • Etapa de documentación.
  • Etapa de mantenimiento.
  • Etapa de codificación.
  • No existe ninguna etapa de desarrollo especifica.

Question 4

Question
¿Cuales son las razones de la refactorizacion?
Answer
  • Calidad. Hacer que el código sea sencillo bien estructurado, permitiendo que una persona externa al equipo de desarrollo pueda entender el proyecto sin haber estado integrado durante varios meses.
  • Eficiencia. Mantener un buen diseño y un código estructurado nos permite ser más eficientes a la hora de desarrollar. Mejora las modificaciones a la hora de eliminar código repetido o una simplificación del diseño.
  • Evitar la reescritura de código. Reescribir el código es peor que refactorizarlo. Leer y modificar un código que no se conoce es bastante complicado si este código no sigue estándares.
  • Modificación. Para modificar es bueno refactorizar. La refactorizacion nos permite modificar un código de manera segura y eso nos permite continuar de manera positiva el proyecto.
  • Escalabilidad. Refactorizar nos permite escalar un proyecto para añadirle funciones y hacerlo mucho más completo.

Question 5

Question
¿Que se debe hacer los cambios de un proyecto empiezan a ser muy costosos?
Answer
  • Continuar. Una vez empezado se debe terminar.
  • Frenar la inercia de seguir desarrollando.
  • Reiniciar de cero. Si algo que has hecho empieza a hacer costoso igual lo puedes hacer de cero de una manera más optima.

Question 6

Question
¿Como se conoce a los síntomas que indican que algún código de software tiene problemas?
Answer
  • Bad Smells
  • Código errado
  • Código problematico

Question 7

Question
¿Por que es imprescindible que un proyecto tenga pruebas automáticas?
Answer
  • Para saber si el programa tiene el mismo funcionamiento que antes de los cambios.
  • Para saber si el desarrollo sigue cumpliendo los requisitos que implementaba.
  • Por que refactorizar sin ellas lleva un alto riesgo.

Question 8

Question
Refactorizar es considerado un avance significativo del proyecto para los clientes.
Answer
  • True
  • False

Question 9

Question
¿Por que es importante tener la refactorizacion bajo control?
Answer
  • Por que si refactorizar se te va de las manos se puede convertir en una molestia ya que llegas a sentir que es una perdida de tiempo y sobre todo te da una sensación de no estar avanzando en el proyecto.
  • No hace falta añadir moficiaciones que el cliente no ha pedido, por lo que hay que fijar los objetivos antes de empezar a refactorizar.
  • Refactorizar es un tipo de practica de alto riesgo, si no se saben los objetivos puede resultar que se cambie demasiado el código y cree un cambio en el funcionamiento del programa.

Question 10

Question
Cuando hay problemas de comunicación en el equipo de desarrollo hay que detener el desarrollo y reunir a todo el equipo.
Answer
  • True
  • False

Question 11

Question
¿Que se debe hacer si se excede el tiempo planificado para refactorizar?
Answer
  • Es necesario un replanteamiento de la refactorizacion para no perder el tiempo o tener gastos innecesarios.
  • Planificar nunca esta de mas. Mientras mas planificado este más perfecto sera.
  • No planifiques. Déjalo para otro momento o comienza la refactorizacion sin ello.

Question 12

Question
¿Como se debe mantener la refactorizacion bajo control?
Answer
  • Definiendo claramente los objetivos antes de comenzar y estimando la duracion.
  • Teniendo un equipo vigilando de las personas que se encargan de refactorizar.
  • Haciendo documentación exhaustiva sobre la refactorizacion.

Question 13

Question
¿Es importante las reuniones diarias para facilitar la comunicación y conocer el estado actual, los problemas y el objetivo de nuestro proyecto?
Answer
  • True
  • False

Question 14

Question
¿Que es la espiral refactorizadora?
Answer
  • Una refactorizacion conduce a otra refactorizacion hasta que resulta ser mas complicada y no se puede determinar el tiempo que se tardara en refactorizar.
  • Una refactorizacion conduce a otra por lo que resulta más sencillo refactorizar el código y se tarda menos.
  • Se encuentran todos los Bad Smells y se usa una sola técnica de refactorizacion para terminar de refactorizar de forma más eficiente y rapida.

Question 15

Question
¿Que medidas aplicamos para evitar una "Espiral refactorizadora"?
Answer
  • Determinar el objetivo de la refactorizacion antes de empezar.
  • Si aparece nuevo código susceptible de refactorizacion se anota y no se refactoriza, aun.
  • Introducir código en el sistema de control de versiones.
  • Refactorizar todo el código que te encuentres.
  • Eliminar el código que sea susceptible a la refactorizacion.

Question 16

Question
Las herramientas para detectar Bad Smells ayudan a sustituir al sentido comun.
Answer
  • True
  • False

Question 17

Question
Selecciona las herramientas que sirvan para identificar Bad Smells.
Answer
  • JavaStyle.
  • JCSC
  • PMD
  • FindBug
  • EasyUML
  • BugFiction
  • PDM

Question 18

Question
¿Cuanto tiempo ocupa refactorizar?
Answer
  • Más tiempo que desarrollar.
  • Una pequeña parte relacionado al tiempo dedicado a añadir nuevas funcionalidades.
  • El mismo tiempo que desarrollar.

Question 19

Question
Tomar actitudes exigentes o criterios excesivamente personales respecto a la calidad del código puede acabar siendo un riesgo para el proyecto.
Answer
  • True
  • False

Question 20

Question
Di las practicas saludables a la hora de implantar la refactorizacion de un código dentro de un proyecto.
Answer
  • Escribir pruebas unitarias y funcionales.
  • Usar herramientas especializadas.
  • Dar formación sobre patrones de refactorizacion y de diseño.
  • Refactoriar los principales fallos de diseño.
  • Comenzar a refactorizar el codigo tras añadir cada nueva funcionalidad en grupo.
  • Implantar refactorizacion continua al desarrollo completo.
  • Elegir a un equipo competente para refactorizar.
  • Refactorizar todo el proyecto.
  • Evitar refactorizar continuamente el código durante el desarrollo para evitar perder el tiempo durante el desarrollo.

Question 21

Question
¿Como ayuda la existencia de pruebas automatizadas la refactorizacion?
Answer
  • El riesgo de la refactorizacion disminuye. Al terminar se puede saber que todo sigue funcionando de manera correcta.
  • Evita efectos colaterales ya que cuando un desarrollar realiza una refactorizacion puede comprobar que no ha estropeado nada.
  • Permiten que la refactorizacion vaya más rápida por que se reduce el tiempo de comprobación sobre el funcionamiento del proyecto.
  • Aumenta la velocidad de implementacion de funcionalidades y su funcionamiento respecto al código.
  • Permite encontrar fallos en caso de implementar más funcionalidades.
  • Refactorizar sin test es una actividad de alto riesgo. Solo se debe hacer en casos sencillos y con herramientas especializadas.

Question 22

Question
¿Que significa TDD?
Answer
  • Television Digital Distante.
  • Desarrollo guiado por Pruebas.
  • Test de Direccionamiento y Digitabilidad.

Question 23

Question
¿Que es la TDD y cual es su objetivo?
Answer
  • Es una metodología ágil que propone integrar las pruebas y la refactorizacion.
  • Se busca implementar las pruebas antes de crear el código a probar. Agiliza la creacion de codigo y la realizacion de pruebas unitarias.
  • Es una metodología parecida a la scrum.
  • Busca solucionar los problemas de la "Espiral de Refactorizacion".

Question 24

Question
Di dos aspectos de gran importancia en el Desarrollo de aplicaciones.
Answer
  • La refactorizacion y las pruebas unitarias.
  • El desarrollo y ampliación del programa.
  • Tipo de mantenimiento y refactorizacion.

Question 25

Question
Selecciona ejemplos de refactorizaciones complejas o que sean triviales para el proyecto.
Answer
  • Sustituir una variable llamada "v" y renombrarla a "velocidad" para que sea más significativa
  • Crear un método común para evitar el código duplicado.
  • Trasformar el código dentro de un bloque en una subrutina.
  • Transformar una sentencia "if" en polimorfismo.
  • Reducir el tamaño de un método para reutilizarlo con mayor facilidad.
  • Cambiar un método de clase por que utiliza más elementos de la clase nueva que de la antigua.

Question 26

Question
Di que significan los siguientes patrones de refactorizacion: [blank_start]Código duplicado.[blank_end] [blank_start]Método Largo.[blank_end] [blank_start]Lista larga de parámetros.[blank_end] [blank_start]Cambio divergente.[blank_end] [blank_start]Cirugia de escopeta.[blank_end] [blank_start]Envidia de funcionalidad.[blank_end] [blank_start]Clase de datos.[blank_end] [blank_start]Legado Rechazado.[blank_end]
Answer
  • Mismo código en más de un lugar.
  • Más corto más fácil reutilizarlo.
  • Se pasan demasiados parámetros.
  • Los cambios no están relacionados.
  • Varias modificaciones en diversos lugare
  • Utiliza más elementos de otra clase.
  • Solo tienen "get" y "set".
  • Uso de pocas caracteristicas de supclass

Question 27

Question
En el patrón de refactorizacion: Lista de parámetros extensa ¿Cual es el problema principal?
Answer
  • Se pasan muchos parámetros al objeto, resultan ser demasiado difíciles de entender y suelen variar con frecuencia. Los métodos solo deberían tener aquellos minimamente necesarios para que el objeto consiga su objetivo.
  • Se debe crear una lista de parámetros extensa para evitar que el objeto consuma muchos recursos del sistema. Mejora el rendimiento.
  • El objeto recibe muchos parámetros y la mayoría no son usados. Se vuelve un método inútil y se debe eliminar.

Question 28

Question
En el patrón de refactorizacion: Cambio divergente ¿Cual es el problema principal?
Answer
  • La clase suele ser modificada por diversos motivos los cuales no tienen relación entre si.
  • La clase sufre muchos cambios. Se debe buscar una solución para que no se modifique tanto.
  • La clase tiene variables difíciles de llamar y suelen estar en privado. Las modificaciones se vuelven muy tediosas.

Question 29

Question
En el patrón de refactorizacion: Cirugía de escopeta ¿Cual es el problema principal?
Answer
  • Después de un cambio en determinado lugar, se deben cambiar otro código en diferentes partes del proyecto.
  • Es una solución referente a que se deben hacer ciertos cambios en diferentes lugares para hacer un método más sencillo.
  • Eliminar ciertos métodos relacionados inútilmente con el código a refactorizar para evitar el acceso a datos de forma incorrecta.

Question 30

Question
En el patrón de refactorizacion: Envidia de funcionalidad ¿Cual es el problema principal y como se resuelve?
Answer
  • El método utiliza más cantidad de elementos de otra clase que de la propia
  • Se suele resolver el problema pasando el método a la clase que tiene los elementos usados.
  • El método utiliza elementos de otras clases.
  • Se suele resolver pasando los datos necesarios a atributos antes de iniciar el método problemático.

Question 31

Question
En el patrón de refactorizacion: Legado Rechazado ¿Cual es el problema principal?
Answer
  • Las subclases usan pocas características de su superclase.
  • La jerarquia no fue pensada de forma correcta, ya que la subclase apenas necesita a su superclase.
  • Las superclase pasa demasiadas características a sus subclases.
  • La jerarquia es inútil por que no se necesitan distinguir las clases jerarquicamente.
Show full summary Hide full summary

Similar

Essay Writing: My Essay Plan
Andrea Leyden
Biology AQA 3.2.5 Mitosis
evie.daines
Forces and their effects
kate.siena
CPA Exam Flashcards
joemontin
GCSE AQA Physics - Unit 2
James Jolliffe
FUNCTIONALIST ROLE OF EDUCATION
ashiana121
Photosynthesis & Respiration
Shubh Malde
Expertise in Project Management
tonesha_g
Gatsby notes on symbolism and themes
Maria-Rodriguez
Body Systems Revision
D Arora
1PR101 1.test - 1. část
Nikola Truong