2010-08-13 144 views
4

对于编写更易于理解的代码,您有什么提示/建议?有关编写更多可读代码的建议?

我一直有些沮丧的缺乏结构和糟糕的格式的一些代码,我最近一直在维护,并想提出一系列指导方针,以编写更易于理解的代码。

无论语言如何,任何建议都可能有所帮助。

问候。

+6

这应该是CW – jordanstephens 2010-08-13 01:49:39

+3

我觉得这已经覆盖了多次为特定语言和特定的风格方面,一般多在这样的问题:http://stackoverflow.com/questions/114342/what-are-code-smells-什么 - 是最最好的路到正确的 - 他们,http://stackoverflow.com/questions/366588/what-does-a-good-programmers-code-look-like,HTTP://计算器。 COM /问题/ 1852808 /什么,应该-I-DO到提高,我的代码风格-的编程,http://stackoverflow.com/questions/20564/what-c​​onstitutes-beautiful-code。 – gnovice 2010-08-13 02:41:44

回答

6

我建议您阅读以下内容:

+0

谢谢你的建议,我已经拥有有效的Java和实用主义程序员,但优秀的资源之前,我从来没有听说过“清洁守则”的。 – 2010-08-13 01:56:28

3

尝试这些:

  • 米尼米ze嵌套 - 嵌套越少,代码越容易读取。
  • 使用临时变量 - 虽然它们可以使您的代码看起来笨重有时他们也可以大大提高可读性。
  • 细分大功能 - 将大型功能分解为可轻松理解和测试的小型单一责任功能。
+1

...并为临时变量使用有意义的名称。 – 2010-08-13 01:54:50

4

“如果你需要3级以上的缩进,你就有点犯糊涂了,应当修改你的程序” - Linus Torvalds的

2

有许多代码风格的指引和启发,但最好的方法确保可读性是在有人编写代码时,其他人应该阅读它,然后批评它。

+0

和阅读它的人甚至可以是同一个人,在路上6个月。 – 2011-11-22 09:24:01

5
  1. 命名 - 函数,变量,类等等一个好的名字可以使代码易读。名称应该是描述性的和清楚的,并且如果事物的目的发生变化,确保更新名称。

  2. 分解复杂的函数 - 我的经验法则是,如果我不能在屏幕上同时适合整个函数/方法,它可能是太多了,需要分解。

  3. 可读性过度聪明 - 你将在5年后比你将与语言的晦涩的功能巧妙用途

我可以继续下去,但是这是打动更多人的代码,他们可以阅读和维护一个好的开始。

9

我喜欢这些书:

你也应该阅读代码。如果代码难以阅读,问问自己究竟作者做了什么或没有做什么让自己很难理解,更重要的是,你如何使用自己学到的东西来自己编写更好的代码。

+2

这很有趣。你的亚马逊链接变成了'rads.stackoverflow.com'链接,它指向亚马逊的'?tag = stackoverfl08-20'结尾。聪明的东西SO开发者! – Omar 2010-08-13 02:14:08

3
  1. 保持干爽 - 不要重复自己
  2. 保持方法小
  3. 测试,当您去 - 你的单元测试将帮助你设计,充当文档,并保持你的代码工作正常。
  4. 小心地命名方法和变量 - 一个深思熟虑的名字比评论更好。
+0

爱的缩写。 – 2010-08-13 03:10:08

+1

我希望它是我的。 – duffymo 2010-08-13 09:28:29

1

选择coding style —任何编码风格—和使用它一直(与团队中其他人一起)。如果你使用的是一致的风格,你会习惯它,并且develop code smells会导致你错误的代码。

有很多工具可以用来自动设置代码的格式,如果你使用IDE,它可能有一个内置的。

0

看来问题的关键在于将不可读代码转换为可读代码,这与编写新的可读代码不同。

做其他事情之前:如果尚未完成,使用版本控制

  1. 如果尚未完成,请使用自动测试。

一般来说,客户并不关心代码的可读性如何。客户非常关心软件是否按预期运行。

当你最初交给维护的软件时,你有软件bug的替罪羊。但是,如果您的前任根据客户要求修正了一个错误,并且您无意中删除了修复程序(可能无法读取),那么客户将没有太多耐心。

2

看看Code style由谷歌Web工具包使用

真的很不错

+0

有趣的确,感谢和1 + – 2010-08-21 21:59:51

2

编写维护的代码,关键是要遵循一些基本的代码设计原则:

  1. 单一职责原则 - SRP - 一个班级必须执行一项责任。
  2. DRY - 与SRP几乎相互影响 - 不要重复自己 - 换句话说,不要让多个类执行相同的责任(因为它会导致重复相同的代码)
  3. 垂直切片应用程序并调用每个切片一个模块。提出一个模块化结构,在模块之间有清晰的依赖关系。发布项目的模块结构并强制团队遵守它。显然没有周期性的依赖关系。在构建期间使用像maven或apache ivy这样的工具进行依赖关系管理。
  4. 如使用策略,如AOP,装饰等

有了这些东西的地方水平要求必须实现非功能性要求的做法,大部分的代码将成为维护。上述每一点本身都相当重要。我绝对爱this book

看看博客等讨论这些事情。 所有最优秀的

2

既然你已经保持了大量的代码库,有一个良好的IDE和执行在所有标准格式化会有所帮助。要将现有的代码改为更具可读性的内容远不止于此。

开始从书“重构:改善既有代码的设计 - Martin Fowler的,肯特·贝克,约翰·布兰特,威廉奥普戴克,唐·罗伯茨”

+0

为书建议+1 – 2010-08-13 04:51:16

1

一些浮现在脑海中:

  • 唐“T不必要把this中的方法,如前:

this.doSomething();

  • 不要使用匈牙利比如:

private int mCount;

  • 声明靠近都用到哪里局部变量,最好尽可能晚