读构建之法第四章第十七章有感

第四章

 1、原文;“函数最好有单一的出口,为了达到这个目的,可以使用goto.只要有助于程序逻辑的清晰体现,什么方法都可以使用。——P69”

   问题:关于goto,我记得老师讲过,这个在编程中是尽力避免的,所以我在之前并没有了解过它。本书却建议用,这让我产生了困惑。

   我的看法:goto语句它可以不受限制的灵活跳转,这样程序员在使用goto语句的时候就很容易因为跳转而略过了一些关键语句。但是它能从多重循环体中跳出,用不着写很多次的break语句。我查了一些资料,发现自从提倡结构化设计以来,goto 就成了有争议的语句。我阅读了一些同学的博客,他们对goto的作用及利弊条理清晰的列了出来,在这里我就不详细的列出来了。但是在我查资料的过程中,发现所有的资料最后都写了建议慎用,少用,但没有一个回答是不要用。我又仔细地读了书中的这段话,发现是我误会了作者的意思,其实他的这句话也不是我之前所理解的提倡我们用goto.而是为了程序逻辑的清晰体现可以用。这和我们所提倡的慎用是没有矛盾的。

 2、原文:“在结对编程中,程序各方面的质量取决于一对程序员中各方面水平较高的一位。这样对编程有如下好处:...... 。结对编程恶意取得更高的投入产出比。——P79”

  “结对编程让代码不断地处于复审的过程,程序员能够不断地审核,及时发现问题,避免吧问题带到后面的阶段去。”

   问题:结对编程真的利大于弊吗?

   我的看法:在结对编程中,程序各方面的质量取决于一对程序员中各方面水平较高的一位,这个我也深以为然,但是对应的水平高的那位同时也承担了更多的编程任务,同时还可能要去教伙伴编码,在项目中付出大量的精力。所以我觉得可能在团队中产生矛盾,避免矛盾的方式大概就是在选择伙伴时找水平差不多的,最好技术和个性能互补,还要合得来。这又产生了另一个问题,这样多要求的伙伴找得到吗?我觉得是比较难得。而且要求技术水平不要差太大,那么水平高的那位对程序质量的决定性就不是那么强,那这样岂不是违背了结对的初衷?有浪费时间的嫌疑。而且结对编程不能替代代码评审。虽然结对编程对代码的审核程度比代码评审细致的多。但两个结对的人有明显的思维趋同性,从而忽略同样的问题或者犯下同样的错误。据我了解,在国内很少有人做结对项目,认为在别人的注视下工作是一种打扰,管理者怀疑结对编程会让团队效率降低等等。

第十七章

 1、原文:“关于代码量,作者在上课的时候给同学讲了这个故事:......代码量等于树叶量,当作如是观。——P398”

“萝卜与白菜——P403”

   问题:代码量难道就是毫无用处的树叶吗?。

   我的看法:这个我是有疑惑的,因为我认为,代码量是程序员的基础,不管是评定效率还是代码的有机结合解决客户需求,都要有大量的代码作为基础。当然我说的是认真敲出的代码。我觉得一个高效的程序员、一个大牛。他的成长过程肯定有大量的代码做基础。可能是因为我还在学习阶段,在成长的阶段,身边厉害的同学都是比别的人敲过更多的代码。所以我认为一个程序员他敲的代码多收获和经验自然会更多、bug会更少。就像17.7萝卜与白菜所说的萝卜,我不懂为什么作者会认为他未来每天都忙忙碌碌敲很多代码,做很多工作,然后没有一点进步,还是会继续让自己的代码有那么多缺陷。我恰恰认为他会在缺陷在汲取教训,进行改正。而且他勤劳又热心,在团队中很有价值。

原文地址:https://www.cnblogs.com/yanglqa/p/8682762.html

时间: 2024-10-14 02:57:37

读构建之法第四章第十七章有感的相关文章

读构建之法第四、十七章有感(作业四)

第四章: 问题: 看到这里的时候,才注意到代码中的"下划线"这个东西,在之前的敲代码过程中并没有怎么遇到下划线,在经过百度后得到了一些答案: 这只是Python中下划线的一部分应用,在不同的语言中,下划线的用处也不太相同,而在原文中作者对下划线的解释很简单,对于"下划线用来分隔变量名字中的作用域标注和变量的语义"这句话也不太理解,我认为作者可以适当地放一些代码片段来说明下划线的用法,如果作者提及下划线的原因仅仅是因为命名的话,我觉得完全可以放在下划线的上一小节&qu

读构建之法8、9、10章有感

第八章.需求分析 书中介绍了一些获取需求的常用方法.流程.及分析框架,看了后才发现原来需求分析还有着者这么多的学问. 以前听人说,需求分析在实际项目开发中所占分量很重,甚至往往需要花的精力比敲代码要多.我听到时不以为然 ,认为需求分析不就是看一下软件要什么功能,要做成什么样而已吗.再后来,我真的接手了一个小商业项目的需 求分析任务,才明白需求分析是一件多么让人崩溃的事情,客户对软件编程一无所知,只是含糊地给我一些文档, 而我又不清楚他们的业内流程.业内术语等,不知道如何去获取对需求,只能像只无头

读构建之法 第四章:两人合作

程序员写的代码最终是人在看,所以代码规范很重要,原则是:简明,易读,无二义性. 不光是程序书写的格式问题,还牵涉到程序设计.模块之间的关系.设计模式等方方面面. 代码复审的正确定义看代码是否在代码规范的框架内正确的解决了问题 代码复审的目的在于: 1.找出代码的错误,比如: 1)编码错误,比如一些碰巧骗过了编译器的错误 2) 不符合团队代码规范的地方 2. 发现逻辑错误,程序可以编译通过,但是代码的逻辑是错的 3. 发现算法错误,比如使用的算法不够优化,边界条件没有处理好等 4. 发现潜在的错误

构建之法第四、第五章读后感

第四第五章着重讲了合作的重要性,从两人合作到团队合作,编程开发都不是一件容易的事情,要注意许多要点. 代码书写的规范. 你写的代码不仅仅是给机器看的,给你看的,也是给其他人看的,是给合作的队友看的,在写的过程中要注意规范,要注意缩进.行宽.对齐等格式. 代码设计的规范. 函数中,你就只实现函数的具体功能,如构造函数,简单初始化所有数据成员即可. 代码复审. 找出代码的编辑错误.逻辑错误.算法错误跟潜在错误. 合作需要讲究技巧,要运用合理的方式影响合作的对方,尽量运用逻辑加感情,使对方能快速地接受

构建之法第七,第十七章读书有感

第四章 两人合作 关于合作中算法的使用 在第四章的叙述中,我们看到了代码的编写规范,代码的命名规范,我们还知道要写注释,要有良好的代码设计和错误处理.而这些都是我们在使用语言进行编辑中的问题.我们要阅读结队队友的代码,了解功能实现,明确函数意义.之后还要进行代码复审. 但是我们同时也知道,在代码实现的过程中,我们的分工是有侧重的.而同一个事情的完成是可以使用一些成型或自己的算法进行优化的.而如果我们在使用一个比较"复杂"(是指思想复杂而实现简单,例如dp,kmp,manacher算法等

构建之法第四章学习心得

今天我学习了构建之法第四章,主要讲述了两人合作的理论和知识点.合作,无论在任何领域,都是不可缺失的,往往能产生不可替代的效果.同样在软件设计中也是如此,经过我的学习,我了解到软件设计中两人合作主要包括包括代码规范.极限编程.结对编两人合作的不同阶段以及影响他人的技巧. 其中最让我印象深刻的是代码规范.包括:代码风格规范和代码设计规范,代码风格规范主要是文字上的规定,看似表面文章,实际上非常重要:代码设计规范牵涉到程序设计.模块之间的关系.设计模式.等方方面面的通行原则: 同时,我了解了代码风格规

读《构建之法》第4,17章有感

读<构建之法>第4,17章有感 第四章:两人合作 原文:另外,注释(包括所有的源代码)应该只用ASCII字符,不要用中文或其他特殊字符,否则会极大地影响程序的可移植性. 我的问题和看法:对于英语水平没有那么高的人来说,不允许中文注释真的太难了.刚开始学习代码的时候,老师就教导我们编程的时候一定要写注释,但是并没有非常严格的要求我们必须要用ASCII字符.我上网查找了一些资料,发现大部分公司对于注释并没有明确的要求.注释是为了方便让别人理解你的代码的,所以简洁易懂应该才是最重要的,在水平达到的情

读《构建之法:现代软件工程》第一章有感

在阅读了<构建之法:现代软件工程>第一章绪论后,我软件工程有了一定的了解,同时以一名机械学生为立场也有所感悟. 以前我只是简单的认为软件就是一个应用,你只需要去点击.exe文件就可以使用这个软件.而在阅读了邹欣老师的<构建之法:现代软件工程>后,我懂得软件=程序+软件工程,我们现在不应再停留于软件的用户体验.交互界面,更应该看到软件背后支撑它的程序代码等.软件工程是一个学科交叉的过程,它与许多学科都相关:计算机科学.计算机工程.管理学.数学.项目管理学.质量管理.软件人体工学.系统

读《构建之法》第4、17章有感

    诗云:半亩方塘一鉴开,天光云影共徘徊.问渠哪得清如许?为有源头活水来. 这是宋代理学大家朱熹对阅读一本好书的感受.这几天我看了邹欣老师写的<构建之法>第4.17章之后,产生了一点点类似的感受.下面我来点评一下. 关于"第4章 两人合作"的点评: 问题一: 原文(见第68页):另外,注释(包括所有源代码)应该只用ASCII字符,不要用中文或其他特殊字符,否则会极大地影响程序的可移植性. 个人见解:可移植性是指代码在不同平台能否执行.注释会被执行吗?不会.那么,注释就与