Extraer a un método toda la parte del switch llamarlo updateWithWeather
MacOS: ALT + CMD + M
Extraer a una constante los días del año para la tierra llamarla NUMBER_OF_DAYS_IN_A_YEAR
MacOS: ALT + CMD + C
Extraer de la función updateWithWeather toda la parte que se repite The weather is
Sólo seleccionar la primera frase, aparece una nueva ventana:
seleccionar Initialize in Current method
llamarla theWeatherIs
seleccionar Replace all occurrences
Nota, me crea un atributo en la clase, quiero el scope en la función (gente java qué opina?)
MacOS: ALT + CMD + F
De la función printPlanetFacts Línea 16, planet.getName().length() vamos a dar semántica Extraer a una variable, llamarla planetNameLength
MacOS: ALT + CMD + V
Extra, mover la sentencia de la nueva variable al comienzo de la función
De la función updateWithWeather vamos a extraer UK como parámetro de la función
MacOS: ALT + CMD + P
Vamos ha hacer inline la función updateWithWeather
MacOS: ALT + CMD + N
Ir a la clase Planeta al constructor
Nuevo parámetro String realSeason Seleccionar Default value: "Summer"
Cambiar public String getCountryWeather() {
public String getCountryWeather() {
return realSeason;
}
Ver que me cambia los tests al meter un nuevo parámetro
OJO que ahora están en rojo salvo 1, cambiar en los test el valor de realSeason
MacOS: CMD + F6
Ir a la clase Planet señalar el primer parámetro
MacOS: ALT + Enter
Seleccionar Replace constructor with builder
cambiar Target Destination Directory a los test
Del vídeo Refactoring Intro y Live Coding Kata Gilded Rose https://www.youtube.com/watch?v=CIfBC56tPEI
Ejemplo de Builder 44:10
GoldenMasterApprovalTest 48:00
Feature Envy + Wrapper =>Introduce Parameter Object 01:02:41
https://blog.jetbrains.com/idea/2020/12/3-ways-to-refactor-your-code-in-intellij-idea/ https://www.youtube.com/watch?v=_Y1y8k-OTCQ