Home > Backend Development > PHP Tutorial > javascript - 自动化重构方案与实践

javascript - 自动化重构方案与实践

WBOY
Release: 2016-06-06 20:29:27
Original
1292 people have browsed it

如何进行代码的"自动化重构"
例如: 如何修改一下代码的方法名及其的调用?

<code>#!/usr/bin/env python

def test():
    test = 'test()'
    print test[:-2]

test()
</code>
Copy after login
Copy after login

注:
1. IDE一般都有这样的功能, 这里希望的是自动化完成批量的操作.
2. 这里不考虑正则之类的方法, 例如代码中的同名字符串很容易会被替换掉.
3. 题主的实践是使的用python-rope [https://github.com/python-rope/rope]
来重构, 但是只找到修改变量的方法. 有没有有经验的提供一下方法或者其他类似工具.
4. 不一定局限于python 重构其他语言的工具也可以分享一下.
5. 这里的"自动化重构"是指, 不需要我手动进行操作. 当我编写好重构规则, 即可批量对某些项目进行重构. 类似python-rope

回复内容:

如何进行代码的"自动化重构"
例如: 如何修改一下代码的方法名及其的调用?

<code>#!/usr/bin/env python

def test():
    test = 'test()'
    print test[:-2]

test()
</code>
Copy after login
Copy after login

注:
1. IDE一般都有这样的功能, 这里希望的是自动化完成批量的操作.
2. 这里不考虑正则之类的方法, 例如代码中的同名字符串很容易会被替换掉.
3. 题主的实践是使的用python-rope [https://github.com/python-rope/rope]
来重构, 但是只找到修改变量的方法. 有没有有经验的提供一下方法或者其他类似工具.
4. 不一定局限于python 重构其他语言的工具也可以分享一下.
5. 这里的"自动化重构"是指, 不需要我手动进行操作. 当我编写好重构规则, 即可批量对某些项目进行重构. 类似python-rope

  1. 使用自动化重构类
    python-rope [https://github.com/python-rope/rope]

  2. 使用headless IDE
    eclim
    https://github.com/ervandew/eclim

我们通常用的是Jetbrains一系列的IDE,这一系列的IDE有WebStorm(JavaScript), Intellij(Java),Pycharm(Python)等,这些工具都自带重构功能。像在Intellij中就有下面的一些重构选项,可以参考一下Martin的《重构》一书。

javascript - 自动化重构方案与实践

然后,你需要的这个功能应该是Rename,快捷键是Shift + F6

1.选中test()
2.按下Shift + F6会弹出对话框
3.输入新的方法名
4.选择部份,或者全部需要修改的内容。

javascript - 自动化重构方案与实践

实习的时候写了一系列的文章介绍如何借助IDE重构: ThoughtWorks 实习记——重构与Intellij Idea初探

用图回复一下评论。。

javascript - 自动化重构方案与实践

重构自动化就是一个伪命题,要做自动化的时候,需要有明确的输入,明确的输出,期望的输出,这样你才能比较自动化的输出和你期望的输出是否一致

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template