準備好工具:
- Xcode 8
- Git
注:下文中提及的重構(gòu)相關(guān)專業(yè)術(shù)語,均與《重構(gòu)》一書一致
建立Git版本管理
重構(gòu)會改寫代碼谜酒,甚至代碼結(jié)構(gòu)叹俏,但并不保證重構(gòu)后的代碼能正常編譯,因此在把一切弄的不可收拾之前甚带,需要給自己一個救生圈她肯,Git就是這樣的工具,可以將目標代碼復(fù)原鹰贵。
- 轉(zhuǎn)到目標工程的目錄下晴氨,運行:
$git status
查看目標工程是否已經(jīng)在git管理之下,如果返回:
說明當(dāng)前工程沒有配置Git碉输。
- 逐條執(zhí)行以下命令籽前,建立版本庫,并將文件都添加到版本庫中
$git init
$git add .
- 最后提交當(dāng)前版本:
$git commit -m "init" -a
- 這樣,目標工程就置于Git版本管理之下了枝哄,需要恢復(fù)時運行:
$git checkout .
也可以使用Xcode 內(nèi)置菜單(推薦):
工具1: Xcode 8 重構(gòu)(Refactor)菜單
-
Rename
重命名
:顧名思義肄梨,用來重命名類、屬性挠锥、方法以及局部變量名等等众羡,它能夠改寫整個工程所有調(diào)用的地方,當(dāng)改寫類名時蓖租,會同步改好.h
和.m
文件的文件名粱侣,好像是一個智能的,基于調(diào)用上下文(有語義)的find and replace
查找替換工具蓖宦∑胗ぃ【注:Xcode8該功能只能替換.h
和.m
文件中的對象名,無法替換其它調(diào)用位置稠茂,Xcode7可以全部替換】 -
Extract
提煉
:可以將選擇的代碼片段轉(zhuǎn)換成一個新的方法或函數(shù)柠偶,能自動生成參數(shù)和返回值,并調(diào)用新方法替換原來的代碼片段睬关。 -
Move Up
上移
將方法诱担、屬性或?qū)嵗兞恳频礁割悾╯uper class)中。 -
Move Down
下移
:你可能以為下移
是上移
的反向操作共螺,可以將方法该肴、屬性或?qū)嵗兞恳频阶宇愔星橹瘢浅2恍颐瓴唬乱?strong>只能移動實例變量,因此并不是很實用秦效! -
Encapsulate
封裝
:當(dāng)需要自定義set
和get
方法時雏蛮,封裝可以自動幫你生成。
工具2:在作用域中編輯
Edit All in Scope
^?E
(^
表示control鍵阱州,下同)
工具3:跳轉(zhuǎn)到定義處
Jump to Definition
^?J
等同 ?+鼠標點擊變量名
挑秉,可以快速跳轉(zhuǎn)到變量,方法苔货,類的定義處犀概,需要返回上一編輯處時Go back
^?<-
工具4:快速打開文件
Open Quickly
??O
(?
表示Shift鍵)
這不同于一般的查找,支持在項目中全局搜索夜惭,同時支持文件名和代碼姻灶,并可使用縮略詞,建議代替查找工具诈茧,作為日常定位文件和定義的常用工具产喉。