第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc20/
这个作业的目标 通读《构筑之法》中的内容,列出三个问题
姓名-学号 谢文凯-2018330301201

问题一:单元测试不能保证代码的完全正确,那么对于测不出来的那些bug应该怎么处理?
我看了这段文字:

阿超:对,把单元测试的责任和代码作者绑定在一起后,代码作者就能更真切地体会到复杂代码的副作用,因为验证复杂代码的正确性要困难得多。要注意:100%的代码覆盖率并不等同于100%的正确性!······
-- P27 2.1.2 好的单元测试的标准

那么问题就是就算单元测试覆盖了所有的代码路径,但还是不能保证它100%正确,程序还是会产生bug,那么这样应该怎么去排除其中的问题呢?哪怕是一个已经发布的软件,用户依旧可以在使用的过程中找到这样或那样的问题,那么这个时候怎么找出测试时没有出现的问题。而且一个程序越到后期,它的体积就越大,想要精确的找到问题出在哪也就越不容易,那时又应该怎么找。

问题二:开发软件到底是团体好还是个人好?
我看了这段文字:

足球队有不少“阵型”:442、433、451以及它们的各种变体。还有不少风格:南美、欧洲;技术、力量;小快灵、抢逼围、双翼齐飞、全攻全守,等等。然而,尽管有那么多关于团队阵型的战略和理论,足球的每一次盘带、传球、跑动、射门、扑救,依然都是单个球员完全的。······
软件团队和团队中的工程师也是这样。软件系统的绝大部分模块都是由个人开发或维护的。
--P43 3.1 个人能力的衡量与发展

当一个人对代码进行编写的时候,他可以很清楚他究竟是何种思路,可以顺顺利利的把后面的程序进行下去。而共同的编写就不一样了,可能会让人完全看不懂之前的人写了点什么东西,让人无从下手。对于个人来说,所有事情都事必躬亲真的太辛苦了,但对于团体来说,意见的不同,矛盾的产生,思路的相悖都可能导致事情发展不下去。继续拿足球队来说,有如梅西一样可以单刀过人,长驱直入的球员,也有配合默契的球队,当然还有不会配合个人能力又不好的人。这时我们是选择团队合作还是单飞呢?

问题三:代码复审到底有什么必要?
我看了P75页上复审者与开发者的对话
在我看来复审者对开发者的提问就像是客户在不断的向开发者提要求一样,我们做复审的目的是为了减少错误的发生,而不是找一个人来对着你的代码点头,而且让别的程序员来对你的程序进行复审,但因为对方不清楚你的程序,可能会找不出错误,同时这又比较的花费时间,做不到多次,反复的复审。若想让复审者深入了解你的程序的话,有两种方法,一是让他把程序从头看到尾,但这及其浪费时间,还有可能根本看不懂你的程序;二是同你一起编写这段程序,这样对程序就太过了解,感觉与开发者自查又没有区别,同时因为过于了解可能进入思维盲区找不到可能找到的问题。

posted @ 2020-11-03 13:57  xx2333  阅读(70)  评论(0)    收藏  举报