Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Tuplado en 14 Octubre 2012, 15:50 pm



Título: Reconstruir este trozo de código en java
Publicado por: Tuplado en 14 Octubre 2012, 15:50 pm
Hola me gustaría refactorizar y probar con JUnit este trozo de código, alguien sabe.

public class Forma {
public static final int CUADRADO = 1;
public static final int CIRCULO = 2;
public static final int TRIANGULO_RECTO = 3;
private int tipoForma;
private double size;
public Forma(int tipoForma, double size) {
this.tipoForma = tipoForma;
this.size = size;
}
// ... other methods ...
public double area() {
switch (tipoForma) {
case CUADRADO: return size*size;
case CIRCULO: return Math.PI*size*size/4.0;
case TRIANGULO_RECTO: return size*size/2.0;
}
return 0;
}}


LA PRUEBA LA ESTOY HACIENDO EN ECLIPSE
Gracias


Título: Re: Reconstruir este trozo de código en java
Publicado por: [Case] en 14 Octubre 2012, 18:12 pm
No entiendo bien. Si lo que quieres es hacer una clase que actuae mas o menos igual.
Por que empezar con eso? si hacerlo desde 0 es mas facil y comodo.


Título: Re: Reconstruir este trozo de código en java
Publicado por: sapito169 en 14 Octubre 2012, 20:29 pm
Código
  1. import junit.framework.Assert;
  2.  
  3. import org.junit.Test;
  4.  
  5.  
  6. public class LaFormaDeberia {
  7.  
  8.  
  9. @Test
  10. public void calcularElAreaDelCuadrado(){
  11. Forma forma =new Forma(Forma.CUADRADO, 2);
  12. Assert.assertEquals(forma.area(), 4.0);
  13. }
  14.  
  15. @Test
  16. public void calcularElArea(){
  17. Forma forma =new Forma(Forma.TRIANGULO_RECTO, 2);
  18. Assert.assertEquals(forma.area(), 2.0);
  19. }
  20.  
  21. @Test
  22. public void calcularElDelCirculo(){
  23. Forma forma =new Forma(Forma.CIRCULO, 2);
  24. Assert.assertEquals(forma.area(), 12.56,0.01);
  25. }
  26. }
  27.  
  28.  

y no pasa la prueba


Título: Re: Reconstruir este trozo de código en java
Publicado por: Tuplado en 14 Octubre 2012, 22:45 pm
Mira una pregunta Sapito?

si yo quiero realizar una refactorización de este trozo de código:

LA REFACTORIZACION: ES UN TECNICA QUE SE UTILIZA PARA RESTRUCTURAR EL CODIGO PERO SIN MODIFICAR SU RESULTADO, ES UNA REORGANIZACION MAS BIEN.

Partiendo de ahí.

Creo que hay una manera de hacer un refactory en eclipse pero no se como se instala, tu sabrás campeón, esto ahorra mucho tiempo en hacerlo a mano

Un saludo.


Título: Re: Reconstruir este trozo de código en java
Publicado por: sapito169 en 14 Octubre 2012, 23:52 pm
no se instala nada en eclipse toda las erramientas de refactoring ya las tienen instalada lo mas dificil es instalarlo en el cerebro  ;D

eclipse no va refactorizar tu codigo tu lo vas a hacer con un monton de pequeños refactoring es como desarrollar tu eres el que lo hace y para eso usas un monton de: metodos, clases, interfaces, bucles, condiciones etc


en eclipse selecionas una porcion de codigo luego pones alt + shit + t y te sale una lista de los refactorings

uno de los refactorings mas facil pero mas importantes y menos propenso a error es el renombrado.
para renombrar selecionas una variable presionas control r  y escribes el nuevo nombre

recuerda que primero tu clase deve estar en verde par comensar el refactoring

tienes que tener en cuenta que refactoring es un tema complejo y extenso donde el uso de la erramineta es solo elemental. en lo personal a mi me sigue tomando un monton de tiempo seguir aprendiendo refactoring

el acto en si de hacer refactoring no es lo mas importante si no todo el cumulo de conocimiento (de diseño arquitectura patrones buenas practicas experiensias practica estudio principios valores etc) por los cuales desido si hacer o no refactoring y de que manera



Título: Re: Reconstruir este trozo de código en java
Publicado por: Tuplado en 15 Octubre 2012, 01:03 am
Ya estuve mirando, casi nada, mi madre.

El tema esta increible,y con tiempo dan ganas de seguir con el, pero tiempo no se si me dará porque tengo examen mañana.

SABRIAS COMO SE HACE LA REFACTORIZACION DE ESTE CODIGO, PARA TENERLO DE EJEMPLO, TE LO AGRADECERIA UN MONTON sapito.

public class Forma {
public static final int CUADRADO = 1;
public static final int CIRCULO = 2;
public static final int TRIANGULO_RECTO = 3;
private int tipoForma;
private double size;
public Forma(int tipoForma, double size) {
this.tipoForma = tipoForma;
this.size = size;
}
// ... other methods ...
public double area() {
switch (tipoForma) {
case CUADRADO: return size*size;
case CIRCULO: return Math.PI*size*size/4.0;
case TRIANGULO_RECTO: return size*size/2.0;
}
return 0;
}}

Un Saludo y muchas gracias por toda tu ayuda.



Título: Re: Reconstruir este trozo de código en java
Publicado por: sapito169 en 16 Octubre 2012, 19:23 pm
mira aqui un jemplo muy parecido


http://www.infoq.com/presentations/The-Limited-Red-Society