Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重构怪物般的JavaScript项目_Javascript_Refactoring - Fatal编程技术网

重构怪物般的JavaScript项目

重构怪物般的JavaScript项目,javascript,refactoring,Javascript,Refactoring,我发现自己是从一个可怕的JavaScript项目中走出来的。我没有看到任何对已知设计模式的引用,代码文件由5000多行凌乱的代码组成。通常函数的长度约为100行。名称空间也很混乱。有什么想法可以让这个项目有意义吗 我一直试图阅读源代码,但没有任何评论。而且没有测试,所以做出改变是运气的问题 放弃该项目不是一种选择 有什么好的帮助工具吗?目前我正在使用sublime&Chrome。如果您有可以编写测试的规范,那么可以安全地重构。你的测试会告诉你是否打破了任何东西 另一方面,如果没有规范,可以通过生

我发现自己是从一个可怕的JavaScript项目中走出来的。我没有看到任何对已知设计模式的引用,代码文件由5000多行凌乱的代码组成。通常函数的长度约为100行。名称空间也很混乱。有什么想法可以让这个项目有意义吗

我一直试图阅读源代码,但没有任何评论。而且没有测试,所以做出改变是运气的问题

放弃该项目不是一种选择


有什么好的帮助工具吗?目前我正在使用sublime&Chrome。

如果您有可以编写测试的规范,那么可以安全地重构。你的测试会告诉你是否打破了任何东西

另一方面,如果没有规范,可以通过生成一组随机值来编写测试,并记录相关结果。使用当前代码,您(根据定义)知道它们是正确的

我在一次关于重构丑陋的遗留代码的会议上看到了后一种方法。演讲者生成了许多随机值/结果对,将它们转换为单元测试,并开始极快地重构。结果非常惊人,你肯定知道在这个过程中没有任何东西被破坏


当然,如果您的应用程序比“给我一个输入,我告诉您输出”样式更复杂,那么这就更复杂了。但也许这会让你开始

使用调试器逐步完成。这听起来是个不错的方法。我没有规格,执行线到处都在跳动。有一些框架混合在一起,还有一些函数,因此这将是一个有趣的挑战。是否有工具可以根据源代码的执行路径映射源代码。我的意思是一些工具,它允许我看到一些代码是如何通过代码传播的。我知道调试器,但它的使用速度太慢了。