Rabu, 30 November 2011

Substitute driven refactoring

Rabu, 30 November 2011

If you ever find yourself renaming a core class of the application you should think about speed up the process. In case when class name or method name is unique - Substitute is dominating IDE refactoring tools.

Running sever find/sed commands in console will cover everything except files renaming of course. Be very attentive and figure out all possible variants of name (CamelCase, under_score, plural/singular form). In order to not touch plural form while working with singular form start from plural form first.



# Rename classes like OldClassNamesController
find ./path -type f -exec sed -i 's/OldClassNames/NewClassNames/g'
find ./path -type f -exec sed 's/OldClassName/NewClassName/g'
find ./path -type f -exec sed 's/old_class_names/new_class_names/g'
find ./path -type f -exec sed 's/new_class_name/new_class_name/g'


The thing left rename related files and directories.
$old_name="old_class_name"
$new_name="new_class_name"
for filename in $(find -name $old_name*)
do
echo $filename;
w_o_ext=$(echo $filename | sed 's/$old_name/$new_name/g');
echo $w_o_ext;
mv $filename $w_o_ext;
done


Before you commit:
  • Check that database doesn't store any Class name that is under renaming. Apply migration in "Yes" case.
  • Check for super-meta calls where class name or method name is constructed dynamically(you didn't do that, right?)
  • Run your unit tests(you have some, yeah?) and check core pages before commit.
  • Check diff with your version control system


Related Posts :

0 komentar:

Poskan Komentar

Related Posts Plugin for WordPress, Blogger...
 

HOT NEWS

HOT STORIES

HOT ACTRESS


BACA BERITA is proudly powered by Blogger.com | Template by Blog Zone