代码清理和优化,从何入手?

Code cleanup and optimization, where to start?

我想优化我的 angularjs 前端应用程序并清理代码以提供更好的代码质量。

我考虑引入更多抽象,因为我实现了很多外观相似但略有不同的控制器。

我的问题如下:

一个代码的好坏是你自己的意见。

为了让代码看起来更好更高效,我会这样做:

  • 不要排得太长。
  • 使用有意义的变量。
  • 太乱的时候用tabs输入。

还有很多东西可以清理您的代码,但这些只是一些示例。

如果代码有效 - 不要碰它:)

然后当您处理错误修复或新的 features\changes - 看看您是否也可以逐渐改进您正在使用的代码片段。您使用代码的次数越多,您对整体情况的理解就会越好,改进和优化的机会也会变得更加明显。 (您还应该继续从其他来源学习 - 书籍、互联网、其他代码库)

现在有神奇的 "one size fits all" 解决方案 :) 但是,您可以按照其他答案中的建议从简单的样式更改开始。

您所指的过程通常称为Refactoring。有许多改进代码的标准技术; Martin Fowler 的书 "Refactoring" 有一个列表和示例。

许多流行的 IDE 都内置了重构工具。

敏捷开发中的一个过程被称为 "red/green/refactor"。红色表示您的代码没有通过单元测试;绿色意味着它通过了(即它做了它应该做的事情),"refactor" 意味着你让它变得优雅、可维护和干净。因为您进行了单元测试,所以您知道重构不会破坏代码。

从哪里开始是一个棘手的问题 - 我通常建议您在修复错误时进行重构。不妨写个单元测试暴露bug,一边修复bug一边整理代码。因为那个模块有bug,很可能是高危的,所以要提高代码质量。

回答您的问题:

  1. 是的,有经验的程序员可以通过查看代码本身来判断代码是否具有某些特征。存在一些指标可以指示质量方面的警报信号,例如面向对象语言中的 "many dots"(在 Javascript 中相同),这表明紧密耦合。这是一个comprehensive list.
  2. 通过静态代码分析查看或如前所述。
  3. 正如其他人所说,不要仅仅为了拥有美观的代码库而进行优化或重构。当您需要再次触摸现有代码时,例如添加功能或修复错误,然后开始寻找代码冗余和许多其他可能指示重构代码的信号。 Martin Fowler 写了一篇优秀的 book about it with step-by-step examples which IMO is a must-read for every developer. Also a good starting point is Misko's site。他谈到可测试性,但 "good" 代码是可测试的。

重构之前真正重要的是有一个强大的自动化测试基础可以依赖。如果不添加测试并非常缓慢地确保您不会破坏现有功能。

这个话题真的很大,不可能在这里 post 完成,但我认为它是成为有经验的程序员的最重要的话题之一。