5.30软件构造心得

健壮性和正确性,二者对编程中程序员的思路有什么不同的影响?
当程序需要较强的健壮性时,应当尽量避免程序的意外退出,即使用户输入了不合法的数据,也应当尽力进行纠正;而当程序需要较高的正确性时,应当严格对输入的数据格式进行检查,从不接受不合法的数据。
为了应对1%可能出现的错误或异常,需要增加很多行的代码,这是否划算?(考虑这个反例:民航飞机上为何不安装降落伞?)
一般情况下是划算的。但是如果对程序的正确性要求不高时,为了提高编程效率或者提升软件性能,适当省略某些检测代码也是合乎要求的。
“让自己的程序能应对更多的异常情况”和“让客户端/程序的用户承担确保正确性的职责”,二者有什么差异?你在哪些编程场景下会考虑遵循前者、在哪些场景下考虑遵循后者?
前者主要要求程序有较强的健壮性,而后者要求正确性。编写面向一般用户的应用程序时常常多考虑前者,编写专业人员使用的且需要程序绝对准确时常常多考虑后者。
过分谨慎的“防御”(excessively defensive)真的有必要吗?如果你在完成Lab5的时候发现Lab5追求的是I/O大文件时的性能(时间/空间),你是否会回过头来修改你在Lab3和本实验里所做的各类defensive措施?如何在二者之间取得平衡?
过分的谨慎是没有必要的,但是前提是能够考虑到常常发生的错误情况,可能会删除部分过于影响性能的代码。应当根据程序的应用场合以及对使用者的要求综合考虑,进行权衡。
通过调试发现并定位错误,你自己的编程经历中有总结出一些有效的方法吗?请分享之。Assertion和log技术是否会帮助你更有效的定位错误?
在不知道程序哪里出错时,在程序中加入一些打印语句来查看变量的值是一种行之有效的方法,理论上可以更快地发现错误。
怎么才是“充分的测试”?代码覆盖度100%是否就意味着100%充分的测试?
考虑到了所有经常发生的错误输入格式,并且能尽可能多地覆盖所有的情况,才能说是充分的测试。不一定,代码覆盖度只是衡量充分性的一个因素,不能以偏概全。
Debug一个错误的程序,有乐趣吗?
相信我,没有。

期末考试临近,你对占成绩60%的闭卷考试有什么期望或建议?//请严肃的提出,杜绝开玩笑,教师会认真考虑你们的建议。
其实我真心希望这门课没有期末考试,让我们用我们这一整个学期所学的知识去实现一个大项目,或者说增加两个实验也行,真心感觉这种课重在实践,有些人会答题但是并不太会写代码,而我认为我们最重要的能力就是写代码,也包括程序设计竞赛,这才是我们的代码能力,而这是试卷远远不能体现出来的。实现理论的就是编程,所以我真心希望我们能没有期末考试,而改成实验。如果真不行,我也希望我们期末考试的占比能小一些,这种课真的不应该让期末考试占这么大的比重,哪怕占30%也行啊。希望老师能采纳我的意见,谢谢老师。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值