文章吧-经典好文章在线阅读:代码大全读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

代码大全读后感10篇

2017-12-10 21:32:02 来源:文章吧 阅读:载入中…

代码大全读后感10篇

  《代码大全》是一本由迈克康奈尔著作,电子工业出版社出版的平装图书,本书定价:148.00元,页数:914,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助。

  《代码大全》读后感(一):软件设计与开发的核心就在于: 控制复杂度

  最近在 《代码大全》这本书, 包括的内容非常多, 从软件设计到代码开发,团队管理都有,更像是一个软件编程领域的百科全书.

  但是,对于书中提到的一点印象最为深刻, 其实在 《人月神话》和《卓有成效的程序员》这两本书都有提到, 那就是:

  软件设计与开发的核心就在于 控制复杂度

  这句话的核心其实包括几个问题:

  软件开发的本质问题性难题是 复杂度 ?

  如何可以一定程序的降低复杂度 ?

  杂耍抛球

  其中, 书中对于软件设计必须控制复杂度的解释原因是:

  没有谁的大脑能容得下一个现代计算机程序, 也就是说, 作为软件开发人员, 我们不应该试着在同一时间把整个程序都塞进自己的大脑, 而应该试着以某种方式去组织程序, 以便能在同一个时刻可以专注于一个地方. 这么做的目的是尽量减少同一时间所要考虑的程序量. 你可以把它想做是一种心理上的杂耍(边抛边接: 通过轮流抛接使两个或者两个以上的物体同时保持于空中)- 程序要求你在空中保持的(精神上的)球越多,你就越可能漏掉其中的某一个, 从而导致设计或者编码上的错误

  —- 代码大全

  当我读到这一段的时候, 感觉这本书的作者真是说出了软件开发者心中的痛点, 我也认为这段话可以说真本书的一个核心, 其实代码大全的所有部分都是在围绕『如何降低软件开发中的复杂度』. 作者用这种, 杂耍抛球的方式非常形象的比喻了, 我们的大脑(生物结构上)本质的局限性导致的. 曾经美国人有一个非常有名的调查, 人类的大脑短期记忆能够容纳最多的不连续信息数就是7,加而或减二

  具体可以参考心理学上被引用最多的一篇论文之一:魔数七, 加二或者减二: 人类处理能力的局限性.

  而现实问题域中,我们要处理的变量何止是7!

  所以我们根本不可能同时让这么多变量一起出现在我们大脑中.

  没有银弹

  从哲学的角度来说, 柏拉图认为, 任何事物都有 两个属性: 本质属性 与 偶然属性. 通过此我们可以将软件行业

  遇到的问题也分为两类, 那么软件开发过程中 本质性的 难题是什么?

  《人月神话》的作者认为, 软件行业中遇到的非根本问题(偶然属性)都会随着时间发展,技术的提升,会逐步解决. 但是 开发中的根本性问题 - 对于现实复杂世界本质的概念的复杂性是无法降低的.

  一个软件系统有大量的状态,存在大量不同元素的相互叠加。 这使得软件系统的复杂性以指数的形式增长。而且,这些复杂度是软件系统的根本属性, 而不像数学和物理中那样可以建立简化的模型而忽略复杂的次要因素。

  《人月神话》中对于本质的复杂性无法避免, 起了一个名词, 日后基本成了这个行业的标志: 木有银弹.

  不要期望通过一种 万能药能解决软件行业中所有的复杂性问题. 所以 当每次一种新的技术/语言/框架 等出现的时候, 当有些人大喊可以颠覆以前软件开发中的所有问题的时候, 这时候你就要小心了. 心理默默的告诉自己, 没有银弹!

  降熵

  其实,软件的复杂度从某种意义上, 用物理学第二定律来理解和加强. 物理学第二定律又叫做,熵定律:

  自然过程中,一个孤立系统的总混乱度(即“熵”)不会减小。

  换成是软件行业的背景就是, 用《程序员修炼之道》里面的解释就是:

  软件的熵总是倾向于最大化的,程序员们称之为“软件腐烂”。

  程序员只有在开发过程中,不断的通过 外部做功(思考, 主动性的思考和改代码), 不断进行代码重构与整理, 通过外部系统注入能量,来降低整个软件系统的熵, 是整个软件达到有序的状态.

  为此软件开发行业提出了一些列的原则和指导方法, 重构/单元测试/ 模块化设计/ KISS原则/ 面向接口编程/模式设计/分布式系统… 等等如此,其实你都会发现, 这些方法和指导原则,都是 告诉程序员, 在软件开发的过程中, 通过这些方法降低软件系统整体的复杂度, 以便后期更好的维护与开发. 当软件复杂度可以得到很好的控制,而不是让软件的熵无限的增长, 那么这个软件系统的寿命也就会很长,得到更好的维护性.

  所以, 最后, 我们知道:软件开发中的本质难题是 复杂度, 那么我们在之后开发中 应该时刻的主动思考和做功: 如何通过不断的代码重构降低整体的复杂度. 保持我们的代码熵的最小化.

  让我们的代码 永垂不朽

  《代码大全》读后感(二):软件构建之实践指南

  本书原版名为《Code Complete》,第二版出版于2004年。国内直接翻译成《代码大全》确实有些误导初读者,本书实质上是囊括了所有与编码相关软件开发活动。与某些高谈阔论纸上谈兵方法论的书籍不同,作者有丰富的软件开发经验,书中的大量建议、Check List都有实战价值,本书当之无愧是一本“软件构建之实践指南”。如果你是一名软件工程师,请不要错过这本《代码大全》!

  在我看来如果一个团队中的开发人员都认真阅读过《代码大全》,那么在之后的开发过程中团队成员之间在理解、沟通方面会顺畅很多,《代码大全》为他们提供了一套标准、优秀的开发规范。正如Coding Standard对一个公司很重要一样,开发规范对一个团队的重要作用也是一样的。从这点上说,《代码大全》很适合作为公司员工培训书籍,貌似有不少公司也正是这么做的。

  《代码大全》读后感(三):写代码的人

  最近买了几本经典编程书,有《head first 设计模式》《人月神话》《程序员修炼之道》《代码大全》,《代码大全》是第二本看完的。

  看的期间不断有所悟,书中多处让我惊讶「原来是这样子」。不过由于工作之余时间有限,这本大著看了快两个月才完了,现在仅凭印象把之前悟到的写下来,算是总结。

  如果要用一句话概括《代码大全》的话,我以为是「为人写代码,而不是机器」。

  一:为人写代码,势必要考虑代码的扩展性。人是多变的,现实世界也是多变的,所以写代码之前需要设计,也才有设计模式,让你想变就变。

  二:为人写代码,势必要考虑代码的易读性。书中无数次强调变量名的重要性,同样是代码,int i = 5 和 int beautifulGirlsCount = 5 ,虽然这两种代码都能正确编译并运行,但前者需要结合上下文连猜带蒙都不一定理解正确,后者一目了然且看得春心荡漾。

  三:为人写代码,势必考虑代码的逻辑是否简单。在机器面前,人的智力显得太有限。如果代码没有遵循人类能理解的简单逻辑,如if 、for、switch之类,不加限制的使用goto、递归,当代码量到达一定程度,人就没法维护这样的程序。

  四:为人写代码,势必考虑异常的出现。从马士兵老师开始,就告诫我们得把你的用户当魔鬼,魔鬼是不会像我们想象中那样去使用我们的程序的。本书的防御式编程也重申了这点,人是会犯错的,毋庸置疑,重要的是犯错后你怎么抛异常、控制错误的影响范围和补救措施。

  五:为人写代码,势必要将代码写的漂亮。你看印在书里的文章,所有的文字都用标点符号分隔,行与行有间隙,分段,这些文章的排版,在代码里也要有。代码里的缩进、空行、分段,不仅让代码显得有逻辑,也有美感。所以格式化很重要,即使你代码写得很有逻辑,但写得一坨一坨,你也很难让他人忍着恶心看下去。

  这几点的概括显然没办法涵盖八百多页的《代码大全》,不过对于一个刚走在码农路上的我,可以让我消化好一阵子了。在现实世界中,要做到这几点,就更困难了。在看这本书的期间,每天白天在公司里看着前辈留下来那一坨坨的代码,不知何物的mActivity,随处一点就奔溃的系统,我就知道现实跟我一样有多骨感。但是,丰满的理想跟丰满的美女一样,不会突然从天上砸到我身上。好代码是一个个敲出来的,美女也是一步步勾引过来的,这里没有捷径可言。

  《代码大全》读后感(四):必看的编程基础书籍

  1. 翻译总体质量很好, 但也有些翻译的不是很贴切, 或者和当前惯例译法不一样的地方, 可能会对理解造成障碍, 但是译者会适时加上原本的单词, 影响不是很大

  2. 书中的一些建议可能有些过时, 读者应作多方参考, 做独立思考.

  3. 不得不吐槽的一点是, 书的封面设计真心很丑, 就这出版人感言还特意指出封面设计的 "美术功底" 不错, 也是醉了.

  4. 以上三点虽然全是负面的, 但也都是些小瑕疵, 依然动摇不了该书(包括翻译)对于程序员在技术上给出的这么多建议的实用性和作者语言风格的趣味性. 任何买这本书的人都不会感到后悔, 任何读完这本书的程序员都会上一个档次.

评价:

[匿名评论]登录注册

【读者发表的读后感】

查看代码大全读后感10篇的全部评论>>

评论加载中……