如果要我只选一个升级到XE的原因,我会选重构。对用惯D7的朋友,这确实是一个非常实用的新功能,但如果你用过Visual Studio,就会发现微软早就实现了类似的功能。让人困惑的是,XE的重构子菜单有一长串,很多菜单很难直观地想像出其功能。别担心,这些都是给建模用的(比如把某个类方法转移到另外一个类),你常用到的只有几个,仔细的你会发现其实就是设了快捷键的那几个。
1. Rename: 包括重命名变量,函数名,组件名等等。好处是它会把整个项目里所有引用的地方都自动修改!经常碰到名字起的不好或者不一致的,想要修改又嫌麻烦,现在省事多了。
2. Declare Variable,Declare
Field:
3. Extract Method: 提取方法。这个也很实用,举个例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
我们经常会在form的create事件里做很多的初始化操作,有时候发现这些初始化操作需要重复执行,选中要提取的代码,选择Extract Method,指定方法名为InitScreen,如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
procedure TForm1.InitScreen;
begin
end;
如果提取的代码中引用了本地变量,会自动给新方法加上引用声明。不过,如果提取的代码过于复杂的时候有时会出错,需要自己手工修改。
4. Extract Resource String: 把一个字符串声明称resourcestring类型的常量,目前没发现有什么用处
5. Change Params: 修改函数参数,很不实用的功能
6. Find Unit: 查找类所在的单元,这个功能本来应该很有用,比如你在网上拷贝了一段代码,结果编译提示你找不到某个类型,用这个功能,输入类名,就可以告诉你在哪个单元里,并自动加到Interface或者implementation区域。可是,在实际使用的过程中,先是打开特别慢,我ssd的硬盘都要转半天,似乎每次都重新索引。其次就是有时有些类明明有就是找不到,目前也不清楚怎么回事。可惜这么好的一个功能变鸡肋,不知道XE2中有没有改进。
以上就是XE中常用到的几个和重构相关的功能,其实重构本身远不止这些,工具能实现的只是很小的一部分而已。推荐大家读一读《重构》这本书,搞清楚什么是代码里的Bad Smell,对提高代码质量非常的有帮助。
Rename(Shift
Declare
Declare
Extract
Extract
Change