如何進行代碼的"自動化重構"
例如: 如何修改一下代碼的方法名及其的調用?
#!/usr/bin/env pythondef test(): test = 'test()' print test[:-2]test()
注:
1. IDE一般都有這樣的功能, 這裡希望的是自動化完成批量的操作.
2. 這裡不考慮正則之類的方法, 例如代碼中的同名字串很容易會被替換掉.
3. 題主的實踐是使的用python-rope [https://github.com/python-rope/rope]
來重構, 但是只找到修改變數的方法. 有沒有有經驗的提供一下方法或者其他類似工具.
4. 不一定局限於python 重構其他語言的工具也可以分享一下.
5. 這裡的"自動化重構"是指, 不需要我手動進行操作. 當我編寫好重構規則, 即可批量對某些項目進行重構. 類似python-rope
回複內容:
如何進行代碼的"自動化重構"
例如: 如何修改一下代碼的方法名及其的調用?
#!/usr/bin/env pythondef test(): test = 'test()' print test[:-2]test()
注:
1. IDE一般都有這樣的功能, 這裡希望的是自動化完成批量的操作.
2. 這裡不考慮正則之類的方法, 例如代碼中的同名字串很容易會被替換掉.
3. 題主的實踐是使的用python-rope [https://github.com/python-rope/rope]
來重構, 但是只找到修改變數的方法. 有沒有有經驗的提供一下方法或者其他類似工具.
4. 不一定局限於python 重構其他語言的工具也可以分享一下.
5. 這裡的"自動化重構"是指, 不需要我手動進行操作. 當我編寫好重構規則, 即可批量對某些項目進行重構. 類似python-rope
使用自動化重構類
python-rope [https://github.com/python-rope/rope]
使用headless IDE
eclim
https://github.com/ervandew/eclim
我們通常用的是Jetbrains一系列的IDE,這一系列的IDE有WebStorm
(JavaScript), Intellij
(Java),Pycharm
(Python)等,這些工具都內建重構功能。像在Intellij中就有下面的一些重構選項,可以參考一下Martin的《重構》一書。
然後,你需要的這個功能應該是Rename
,快速鍵是Shift
+ F6
1.選中test()
2.按下Shift + F6會彈出對話方塊
3.輸入新的方法名
4.選擇部份,或者全部需要修改的內容。
實習的時候寫了一系列的文章介紹如何藉助IDE重構: ThoughtWorks 實習記——重構與Intellij Idea初探
用圖回複一下評論。。
重構自動化就是一個偽命題,要做自動化的時候,需要有明確的輸入,明確的輸出,期望的輸出,這樣你才能比較自動化的輸出和你期望的輸出是否一致