ChatGPT for Code Refactoring !
Sudhindra, Magadi
CTO @ Wibmo ,Chief Architect @ PayU FinTech Payments. Ex-Thoughtworks, Ex FICO, Ex-Finacle , Ex-HP,AUTHOR
Everybody is talking of the new AI ChatGPT.I wanted to see if it can refactor , I cut and pasted some code from the internet
function getPokemon(type) { let pokemon; switch (type) { case 'Water': pokemon = 'Squirtle'; break; case 'Fire': pokemon = 'Charmander'; break; case 'Plant': pokemon = 'Bulbasur'; break; case 'Electric': pokemon = 'Pikachu'; break; default: pokemon = 'Mew'; } return pokemon;}
console.log(getPokemon('Fire')); // Result: Charmander
And as ChatGPT to refactor it .., WOW !! it gave me this refactored code
function getPokemon(type) {
?const pokemonTypes = {
??Water: 'Squirtle',
??Fire: 'Charmander',
??Plant: 'Bulbasur',
??Electric: 'Pikachu'
?};
?return pokemonTypes[type] || 'Mew';
}
Then it gave me an explanation "In this refactored version, the getPokemon function takes the same type parameter and uses an object, pokemonList, to store the different Pokémon types and their corresponding Pokémon names. The pokemonList object uses the Pokémon types as keys and the corresponding Pokémon names as values.
To return the appropriate Pokémon, the function uses the type parameter to look up the corresponding Pokémon name in the pokemonList object. If the type is not found in the pokemonList object, the function will return Mew by using the || operator.
This refactored version is more concise and easier to read than the original version, because it uses an object to store the Pokémon data and the || operator to handle the default case.
"
This is amazing !!.
Interesting ...