Code Complete的关键点是什么?[关闭]


72

我听说很多人都提到Code Complete是一本值得一读的书。不幸的是,我太忙了,以至于我没有时间阅读它,所以谁能告诉我这本书的重点是什么?


49
Code Complete 2的第824页的要点是您应该阅读编程书籍!
azheglov 2010年

@azheglov:这是第2版中的2还是Code Complete 2中的2,应在Code Complete之后阅读?
克里斯,2010年

@Chris,差不多4年后:它是第2版中的第2版,进行了修订和更新。我希望您在此同时也读过它:-)
streptel 2014年

Answers:


83

Code Complete是关于软件工艺的;这是一本面向初学者/中级水平的书,是为正在工作的程序员编写的,但是对于至少已经进行了一年编程的人来说,它仍然非常有用。

因此,《代码完成》(第2版)的要点在其第34章“软件技巧的主题”中得到了很好的总结。如我的注释所解释:

  1. 克服复杂性:通过纪律,惯例和抽象来减轻您的思维负担。
  2. 选择您的过程:从开始(需求)到完成(部署)以及超越(维护)的质量意识。
  3. 首先以人为本,然后以计算机编写程序:代码的可读性对于可理解性,可审查性,错误率,错误纠正,可修改性以及随之而来的开发时间和质量至关重要。
  4. 编程成您的语言,而不是用它:想到什么?为什么?之前如何?
  5. 借助约定来集中您的注意力:约定通过在需要的地方提供结构来管理复杂性,从而可以有效利用最终资源-您的注意力。
  6. 根据问题域编写程序:尽可能以最高的抽象水平进行工作;顶级代码应描述要解决的问题。区分OS级别,编程语言级别,低级实现结构,低级问题域术语,最后是对(非编码器)用户完全有意义的高级问题域术语。
  7. 注意下落的岩石:由于编程将艺术与科学融为一体,因此良好的判断力至关重要,包括注意警告标志。
  8. 反复,反复,反复:反复进行需求,设计,估计,代码,代码调整。
  9. Thou Shalt Render Software和Religion Asunder:不拘一格,愿意尝试。不要成为一个僵硬的狂热者,它会阻止好奇心和学习。不仅仅是在工具箱中放锤子。

但是最重要的要点是在第33章“ 个人品格”中:一旦您有意识地寻求作为编码员的进步,就可以并且会做到。最快的方法是采取编码大师态度(谦虚,好奇,知识诚实,纪律,创造力),同时还要养成习惯(书中列出了许多良好习惯,例如选择良好的变量/价值)名称)。

此外,这本书清楚地表明,软件的平均水平与优秀水平之间的差距是巨大的。仅凭这一事实就可以驱使尽职调查的编码员变得更好。

这就是它的不足;长版在书中。:)如果您需要更多详细信息,我也可以给我发送不太长,不太短的笔记。但是,即使写作风格有时很累,这本书肯定是花了很多时间和金钱。

除了代码完整之外,我强烈建议The Pragmatic Programmer。它适用于中级程序员,编写精美,并结合了高,中,低级建议。


您确定这是一本中级水平的书吗?似乎很基本,带有“记住要删除未使用的变量名”之类的建议-也许对大学一年级或二年级的某人非常有用,但不适合(IMO)中级水平。
科伦

1
@Colen:感谢您的评论,我应该指定它是针对高级初学者/中级编码员的。
limist 2011年

10
@Colen:尽管Code Complete既处理一些简单的主题,又处理复杂的主题,但绝对不适合初学者。几乎任何水平的开发人员都可以从中受益。您会惊讶于一些“高级”开发人员实际上对基础知识知之甚少,特别是如果他们仅使用一种语言进行编程或在整个职业生涯中为一家公司工作过。
史蒂夫·希尔

1
IMO代码完整是不必要的冗长-请买家当心!
BKSpurgeon

这是本书主题的很好总结。能否请您分享不太长,不太短的笔记?
Akshay Khot

18

这是一本中间书,是软件开发最佳实践的杂烩。

如果您是一名初学者,那么您将不会理解很多材料,并且如果您有经验,那么本书只会确认您已经知道的内容。因此,这本书对于已经拥有一点编程知识的中级程序员可能是最有价值的,但是他们需要一本最佳实践书来将它们结合在一起。

在如何格式化代码块以及每种方法的相对优点上花费了几页。就个人而言,我认为关于将花括号放在何处的激烈辩论已经结束。(或者是?)


4
您的括号赢得了您的好评。:p
内森·泰勒

我应该在哪里放大括号?
佩塔2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.