【云驻共创】与大佬们一起图书对话《代码大全2》

举报
liuzhen007 发表于 2021/07/27 23:41:43 2021/07/27
【摘要】 前言《代码大全 2 》 是著名 IT 热销书作者 Steve McConnell 十一年前的经典著作的全新演绎。第二版不是第一版的简单修订增补,而是完全进行了重写,增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。正...


前言

《代码大全 2 》 是著名 IT 热销书作者 Steve McConnell 十一年前的经典著作的全新演绎。第二版不是第一版的简单修订增补,而是完全进行了重写,增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。

正文

今天我们主要介绍《代码大全 2 》这本书 ,它对于我们工作和学习都具有非常重要的指导意义,本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论你是什么背景,阅读本书都会让你在更短的时间内、更容易地写出更好的程序。

这次有五位大佬分享了他们与《代码大全 2 》一书的切身故事,他们分别是肖然, ThoughtWorks 中国 区创新 总监;李忠利,一位连续创业者,原张飞充电 COO ,合伙人;陈玉毅, 开源社区的追随者与贡献者;徐毅,华为云 DevCloud 首席布道师。



一、如何与《代码大全 2 》结缘,这又是一本怎样的书?


肖然:这本书是一本工程学书籍,可能第一遍读不懂,需要多读几遍,最好买一本,放在自己的床头,每两年读一遍,每次 读一定 都会有不同的感受。


徐毅:书中的内容都是非常实在的,告诉了大家如何去写代码,《代码大全 2 》是一本返璞归真的书,越嚼越有味道。


李忠利:测试人员不是软件产品质量的提升者,这一点在《代码大全 2 》一书中有着重描述,研发人员才是软件产品质量的关键角色。书中很多观点都非常的鞭 辟入里。


陈玉毅:这本书的翻译版可以说是开发者的随身书,为梦想插上翅膀。翻译版本的推出属于历久弥新,经典再现。



二、在书和日常的工作经验的碰撞融合中,有没有一些想要和大家交流探讨的内容?


肖然:对比软件工程学科和科学研究课题,软件工程学科和其他学科不太一样的一点,软件工程开发总是先做再改,其他学科都是先想好了再做。未来中国的软件工程,应该会像中国的基建工程一样,成为国际上的霸主,或者成为软件狂魔,引领世界的发展。


李忠利:结合自己的创业和工作经历,软件产品必须要有用户,这样才能产生利润,才能有能力和机会继续完善自己的软件产品。只谈软件质量不谈产品利润对于创业团队来说是不切实际的。


陈玉毅:要解决一个问题必须要找到问题的根源,决策者如果阅读了这本书,会对软件质量的把控和工作决策有一定的启示作用。当遇到问题时,可以参考书中的某些观点和准则。


徐毅:写代码有时候就像一个人说话,写多写少不影响这个人的好坏。不是说代码写的越多越好,也不是说代码写的越少越好。写代码往往需要和注释、文档相结合,才能写出好的代码,这样才能便于他 人理解。


三、这本书能够继续带给开发者的价值是什么?


肖然:需要多花一些时间去读这本书,书中的内容也非常克制,都是浓缩的实打实的知识。很多内容都是经典的,从微观的代码编写细节到宏观的软件工程架构,对自己工作有非常大的帮助作用。每隔一段时间建议拿起书来读一读,不同的章节在不同的工作阶段会有不同的感悟和收获。


计算机行业是一个不断学习的行业,这本书不管你是学生,还是从业者,都可以读一读。因为尽管现在你是一名学生,但是最终还是会成为一个计算机从业者,书中都有需要学习的内容。


李忠利:底层思考逻辑是自己从 书中得到的最大收获,很多工作内容必须在一种思想指导下完成,万变不离其宗。而不是朝三暮四,看到好的东西,直接搬过来,抄过来。对比谷歌、百度等公司的测试与研发的比例,说明了书中的一个观点:测试不能决定软件产品的最终质量。遇到问题应该直接解决,而不是绕过去,测试人员往往就是这样的借口,会让研发人员不去深入思考自己的代码存在的深层次问题。这本书不是一本束之高阁的书,应该多看看,多读读,对自己的职业生涯发展会有很大的帮助。


创业是一件缺人缺钱的事情,跟随底层逻辑思路思考,需要利用有限的资源去创造最大的收益。由于大学 生缺少必要的实战和管理经验,因此,不建议大学生在毕业后直接去创业。


徐毅:尽管距离第一版《代码大全》时间已经有些久了,但是这本书依然很实用,历久弥新。随身携带,平时多翻看一些,可能放在办公桌上的这本书,被你用来垫显示器了,但是遇到问题,可以拿出查查资料。只有经历了才能懂得这本书的珍贵。


相比较英文原著,个人推荐先选择购买中文版阅读,从效率和效果的角度来说,也推荐先把中文版读一遍,如果感觉意犹未尽,可以 后边在 结合英文原著对比阅读。


陈玉毅:这本书可以从任意一章开始读起,因为每一章的内容都相当的详细和全 面。有人担心技术发展太快啦,书中的内容会不会过时了呢?其实不会,因为尽管技术在升级改变,但是人还是一样的人,人并没有改变,比如拍照,我们始终追求的是高清晰度,高亮度,同时有丰富的色彩。


四、书中的精彩摘录与释疑解惑


4.1 翻译心得与阅读提示


《代码大全 2 》一书绝对是重译经典,字斟句酌,上头犹如初恋。阅读这本书重温经典,如沐春风。随手翻阅,旁注指引,关联参考遥相呼应。检查清单,本章要点,简洁清晰,便于快速查阅。书中包含非常多的资源和信息,深入阅读,可以开阔我们 的视野。特别是我们带着问题去读书,细细品味精巧构思中闪光的观点和智慧。


研发工程师应该写出别人通俗易懂的代码,甚至可以省略注释。人们都有求知欲,都想掌握新的技术,同时,也要注意保持谦虚的心态。很多小伙伴应该具备一颗不断学习的心,虚心的听取别人的意见。


4.2 关于设计理念


设计是决定取舍和调整优先级的过程,设计是一个启发式的过程,设计是一个自然渐进的过程。管理复杂度是软件开发中最为重要的技术话题。软件的首要技术使命就是管理复杂度,以简单性作为目标的设计方案对此最有帮助。


优秀的设计都是迭代而来的。 尝试设计的可能性越多,最终的设计方案就会变得越好。将复杂度最小化是编写高质量代码的关键所在。类是管理复杂度的首先工具,要在设计类时给予足够的关注,才能实现这一目标。


4.3 关于开发者测试


测试对于绝大多数开发者来说都是一种煎熬。测试本身并不会提升软件的质量,试图增加更多的测试来提升软件的质量,就类似于靠天天称体重来减肥一样。如果希望减肥的话,不应该再买一个新的体重秤,而是改变饮食习惯,如果希望改善软件产品的质量,不要仅仅去增加更多的测试,而是需要采取正确的开发方法。


测试中没有发现错误可能意味着软 件完美无缺,但也同样有可能暗示着测试用例是无效的或者不完整的。开发者必须期望在自己的代码中发现错误。应该期望找到这个错误的人是自己,而不是别人。测试数据本身往往比被测试的代码拥有更高的错误密度。很多时候代码其实没有问题,而是测试用例有问题。


4.4 关于重构


软件变更时其质量要么改进,要么退化。软件演变的基本准则就是代码演变时应该提升程序的内在质量。


开发阶段的重构是提升程序质量的最佳时机,从而按照自己最开始的期望做出所有的变更。应该充分利用开发阶段的大好机会。


4.5 关于代码调优


恪守 “ 可度量的改进 ” 这一准则,就能够抵御过早的进行优化的诱惑,该准则也帮助作者本人坚守编写清晰明了、简单直接代码的一贯作风。未经度量的代码优化对性能上的改进充其量就是一次投机,然而,其对可读性所产生的负面影响则确凿无疑。


在最初的编码阶段为性能优化工作做好准备的最佳方式就是编写易于理解和修改的整洁代码。


4.6 关于变量命令


代码阅读的次数远远多余编写的次数,确保所选取的名字更侧重阅读方便而不是编写方便。


4.7 关于企业文件与工作氛围


以人为本,善待每一位程序员。程序员和管理者都是人,善待他们时 也就会获得最好的表现。


五、结语


毫无疑问,《代码大全 2 》是一本好书,较第一版增加了很多与时俱进的内容,是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。如果你是计算机行业的从业者或者是一位对计算机行业感兴趣的小伙伴,那么非常建议抽时间去读一读这本书,相信这本书一定会对你的学习和工作有非常重要的影响和帮助。



本文整理自【内容共创系列】华为云签约作者征集令,认证签约作者赢取专属权益!

查看活动详情:https://bbs.huaweicloud.cn/blogs/281988

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。