阅读《构建之法》第四章、第十七章收获

阅读《构建之法》第四章、第十七章

阅读这一章的时候,我意识到了很多以前写程序没有注意到的地方,以前写程序就只知道能运行就好,根本不管自己写的程序占多少内存,运行的时间,是否有优化的空间,写代码的时候也不注意规范,有时候设计的函数根本用不上,造成代码冗余。同时也认识到结对编程的重要性,没读这本书之前就觉得结对编程就是两个人一人负责一个模块,然后合在一起,调试调试。但实则不然,真正的结对编程应该像书中那样,一个是驾驶人,一个是领航人,两个人有规律的进行编程。期间,一人编程一人复审,极大地提高了效率和编程水平。

第四章

原文:在C语言家族中,比较通用的,也是经过了很多实践检验的方法叫“匈牙利命名法”。例如:

fFileExist,表明是一个bool值,表示文件存在;

szPath,表明是一个以0结束的字符串,表示一个路径。

问题一:以前有的学长学姐给我们开讨论班的时候一般会提到驼峰命名法,所以对驼峰命名法比较熟悉看书上可能有点没太看懂“匈牙利命名法”的命名规则是什么?

回答:在网上找了几篇博客了解了一下,感觉有了点收获。

http://blog.sina.com.cn/s/blog_810c86000101at9g.html

https://blog.csdn.net/haiross/article/details/45147993

https://blog.csdn.net/andrewniu/article/details/50477050

命名规则:变量名=变量类型+变量的英文意思(或缩写)

开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母大写。

例如:1.指针变量命名的基本原则为:“p”+变量类型前缀+命名

2. 全局变量用 g_ 开头,即:变量名=g_+ 变量类型+变量的英文意思(或缩写)如:int g_nCount=0;

3. 静态变量用s_ 开头, 即:变量名=s_+变量类型+变量的英文意思(或缩写)如:static int s_nCount;

4. 成员变量用 m_开头,即:变量名=m_+变量类型+变量的英文意思(或缩写)如:int m_nLineCount;

5. 对const的变量要求在变量的命名规则前加入 c_,即:c_+变量命名规则 如:const       char*     c_szFileName;

原文:

断言

如何验证正确性?那就要用断言(Assert)。断言和错误处理是什么关系?

当你觉得某事肯定如何时,就可以用断言。

Assert(p!=NULL);

然后可以直接使用变量p。

如果你认为某事可能会发生,这时就要写代码来处理可能发生的错误情况。如.........

问题二:什么是断言?断言与异常有什么区别?

通过百度我了解到断言是用来检验非法情况的。用错误处理代码来处理预期会发生的状况,用断言来处理绝不应该发生的状况。断言通常用于调试版本,用来发现程序中的逻辑错误。

虽然看了几篇博客,但是感觉对于断言和异常理解的仍然不是很透彻。

原文:如何处理C++中的类

虚函数

(1)使用虚函数来实现多态。

(2)仅在很有必要时,才使用虚函数。

(3)如果一个类型要实现多态,在基类中的析构函数应该是虚函数。

析构函数

(1)把所有的清理工作都放在析构函数中。如果有些资源在析构函数之前就释放了,记住要重置这些成员为0或NULL。

(2)析构函数也不应该出错。

问题三:虚函数、析构函数是什么?该如何使用?C++中的多态和Java中的多态有区别吗?

虚函数

一个类函数的调用并不是在编译时刻被确定的,而是在运行时刻被确定的。由于编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,所以被成为“虚”函数。虚函数只能借助于指针或者引用来达到多态的效果。

析构函数的作用是用来完成对象被删除前的一些清理工作,也就是专门的扫尾工作。

析构函数与构造函数的作用正好相反,如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭。析构函数允许类自动完成类似清理工作,不必调用其他成员函数。析构函数也是特殊的类成员函数。

Java中的多态的三个条件是继承、多态和父类引用指向子类对象。而C++中,如果父类中的函数前边标有virtual,才显现出多态。读了一篇博客分享给大家。

https://www.cnblogs.com/plmnko/archive/2010/10/19/1855760.html

第十七章

原文:软件团队如何做人员的效绩管理?有人说用工作量来衡量、有人说按照角色来定位、有人说根据工作时间来衡量。但是在软件团队中,不合理的效绩考核不但影响个人的收入,而且会影响人员的士气、流动、后续的合作以及产品的质量,不能不慎重。

问题四:如何进行效绩考核才是最深入人心的呢?

我的看法:我觉得效绩考核首先应该考虑的是团队贡献维度,在一个团队项目中,你不是为自己做了多少,而是为了一个团队付出了多少,是否有积极带动团队中的人员更加高效的工作,是否对团队有正面影响,可以通过团队成员进行投票选择。其次,我觉得应该考虑个人的效率及其对产品的贡献,个人效率体现出这个人时候将精力投放到项目中,如果将大部分的精力都放在项目中,那么他的代码质量会很高,测试人员能够减少一些调试时间,会积极促进项目的开发速度。我们所希望的最好的团队就是大家都能全身心的投入到工作中去,身边的人互相影响、积极带动,一起DeBug!

原文地址:https://www.cnblogs.com/BoscoJK/p/8684878.html

时间: 2024-10-31 00:56:40

阅读《构建之法》第四章、第十七章收获的相关文章

阅读<构建之法>10、11、12章

第十章: 典型用户和场景对后面工作有什么帮助吗? 第十一章: 每日构建的目的是什么呢?有没有具体说明? 第十二章: 产品定位人群是否也局限了产品的可拓展性?

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

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

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

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

构建之法第四章学习心得

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

《构建之法》第1.2.3章读后感以及《硅谷传奇》观后感

阅读教材<构建之法>第1.2.3章之后,满满的对话,生动形象.其中第一章写到软件=程序+软件工程,程序=数据结构+算法,这也反馈出我们要学好数据结构以及算法.软件工程这方面的内容.我们要做出"足够好”的软件,并且不要忽视软件的每一个小部分,因为软件的每一部分都有可能成为关键的致命部分,犹如飞机或小车的安全带.我们做出的软件要符合客户的要求,软件分析需求分析至关重要,要花费很长的时间和精力.而且,软件维护是一个漫长的历程.在个人软件开发过程中,单元测试.回归测试以及效能分析虽然花费大量

《构建之法》第六第七章读后感

<构建之法>第六第七章读后感 阅读<构建之法>第6~7章,并参考以下链接,发布读后感.提出问题.并简要说明你对Scrum的理解. 学习附录: Scrum中文网--什么是Scrum?  http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html#tab-id-1 Scrum认证体系 http://www.scrumcn.com/agile/scrumtraining/scrum-certification-progr

第一次阅读构建之法

    第一次阅读构建之法,把以前很多门课的知识点联系到了一起.      软件=程序+软件工程.我认为这是对软件的一种及其精炼的解释.程序即是指一行行代码,软件工程则包含了各种软件开发活动,包括构建管理.源代码管理.软件设计.软件测试.项目管理等等,是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.      从一个简单的程序,扩展到一个满足各种功能的应用软件,再扩展到一个能保证服务质量的软件服务.源程序是建立在数据结构上的一些算法.构建不仅仅是CC和link命令,一个复杂

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

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

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

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

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

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