• 《构建之法》阅读与思考——四、十七章


    前言:刚刚读了第四章,讲的是两人合作,这章在代码规范(代码风格规范、代码设计规范)上作了非常条理细致的讲解,之前,我对缩进问题和命名问题,一直有着一些困惑,缩进该所多少呢?命名时该如何去命名,才能让诸多变量见名知意?书中这样的一句话“当我们的程序比‘Hello World’复杂10倍时,像给变量命名这样简单的事也就不那么简单了”,这章的内容解决了我长期的困惑(自己之前对这些问题也做过搜索,但是答案都很零散,难成体系),在阅读的过程当中,我的困惑一一得解,这种感觉真的很开心。

    第四章  两人合作

    4.3.4 如何处理C++中的类

    析构函数   1)把所有的清理都放在析构函数中。如果有些资源在析构函数前就释放了,记住要重置这些成员为0或NULL。  2)析构函数不应该出错。

    问题:1)我第一次看到“析构函数”这个名词术语,十分奇怪,析构函数是什么函数呢?2)为什么析构函数不应该出错?3)为什么所有的清理都要放在析构函数中,如果有些资源在析构函数前就释放,需得重置这些成员为0或NULL呢?4)书上提到析构函数是在关于C++的讲述当中,那JAVA中有没有析构函数呢?

    想法:通过查询学习,我了解到析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。

    关于析构函数的说明:
    1).当程序的执行离开实例化自动对象所在的作用域时,自动对象就会撤销,这时析构函数隐式调用.并不是说在main函数结束时才执行。
    2).析构函数本身并不释放对象占用的内存空间,它只是在系统收回对象的内存空间之前执行扫尾工作.析构函数体内并不一定要有delete语句。可以有也可以没
    3).和构造函数一样,每个类都有一个析构函数,即使没有显式提供一个析构函数,编译器也会生成一个空的析构函数 .

    对于问题2)3),我没有查询到相关的资料,在了解了折构函数后,我对这两个问题有一些自己的理解(不知道是否正确),或许是因为编译器生成空的析构函数,系统会自动执行,将所有的清理放在析构函数中。觉得若要深究析构函数这个内容,应该有很多的挖掘点,自己现在理解的还是很不到位。

    对于第四个问题,JAVA中有没有析构函数,我了解到java中有析构函数,但我们一般用不到它,因为java有自动内存回收机制,无需程序员来释放,也就不要担心内存泄露,在java中对象析构时会调用void finalize()方法,因此如果确实需要析构的话就可以为写的类添加一个void finalize(){}方法,来完成所需要的工作。

    第十七章  人,绩效和职业道德

    原文摘要:P406-P407   原则1:软件工程师的行为应与公众的利益一致。原则二:软件工程师应以客户和雇主利益最大化的方式做事。原则三:3.12  致力于开发尊重用户隐私的软件。

    问题1:读到这儿,我想起了之前的一篇报道。

    联邦调查局在曼哈顿网络安全国际大会上表示,他们快被苹果的“用户隐私保护”措施逼疯了。据了解,美国联邦调查局目前已经积累了近8000台苹果设备无法破解,这使得他们无法及时接触犯罪手机中的重要信息,在FBI缴获的这些iPhone、iPad中,包含犯罪分子有关人口贩卖、恐怖行为、跨国犯罪、有组织犯罪和儿童性侵等案件的信息,所以如果能够破解手机,将会是为FBI打击犯罪分子提供很大的帮助,而如果无法破解,其他犯罪分子依然会逍遥法外。而苹果公司的库克曾多次表示苹果本身并没有办法破解用户的手机,即使有相关的方法也不会帮助联邦调查局开放破解用户的电话,这不能成为先例,因为这会威胁所有苹果设备的安全性和用户的隐私。

    在知道了上述案例后,我更加疑惑,如果公众利益与客户利益发生冲突,软件公司该如何抉择呢?

    在之前,我一直认为,个人利益应该服从于国家利益,要为了公众的利益着想。但是,在读了上述案例之后,我觉着自己原来将事情想的过于简单了。就如库克所说,倘若软件公司帮助国家破解用户电话,造成先例,又会损害到非罪犯使用者的设备安全性及用户隐私;但是不去配合国家,又会让犯罪分子逍遥法外,危害更多的人。似乎无论何种选择,都会危害到公众的利益,所以如何选择,真的很让人头疼。

    原文摘要:17.3.5  效能曲线和假团队   在各种阶段的团队之间,还有一个“假团队”的阶段,“假团队”成员间面和心不和,有人打酱油,团队效率低。

    问题2:遇到这种假团队现象,团队中的领导及团队成员该如何处理呢?

    查询资料后,我发现真团队和假团队在各个方面都是天差地别的,如下图所示:

    对于这个问题,我觉得更多的是在谈论团队的相处与合作,从我现在的体会去讲,遇到这种“假团队”情况,团队成员要多多交流,不仅是交流工作上的问题,其他方面也可以,相互之间坦诚以待,建立深厚的友情,既然大家都是朋友,又有什么看得起看不起呢,又有什么不能包容的呢。这样,一个充满温情的真团队就建立起来了。(可能会由于少不经事,想问题比较简单吧)。

    后记:在读十七章时,有些内容给了我启迪,有些内容引发了我的思考,有些问题在查询之后或得解答,有些则依旧困惑着我,想在这儿提醒一下自己,如果以后工作中遇到问题,可以来读十七章的内容,或许会得到解答或是安慰。

     

  • 相关阅读:
    PHP(Zend Studio)入门视频
    PHP开发工具
    ggplot2 pdf import in Adobe Illustrator missing font AdobePiStd
    Python逐行读取文件内容
    R语言合并data.frame
    shell删除最后一列、删除第一行、比较文件
    C语言的fopen函数(文件操作/读写)
    Android 必须知道2018年流行的框架库及开发语言,看这一篇就够了!
    谈谈你对Glide和Picasso他们的对比的优缺点
    Google推荐——Glide使用详解(图片加载框架)
  • 原文地址:https://www.cnblogs.com/zhaollguaner/p/8667398.html
Copyright © 2020-2023  润新知