[I.1] 个人作业:阅读和提问
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2026年春季软件工程(北航计算机学院) |
| 这个作业的要求在哪里 | 个人作业:阅读和提问 |
| 我在这个课程的目标是 | 了解以团队完成软件开发的流程,承担自己角色的责任,吸取团队软件开发经验 |
| 这个作业在哪个具体方面帮助我实现目标 | 提高独立的批判性思考的能力,提高提问的质量以获得有效的回复 |
问题1:通过记录随机数种子,不就可以重复测试的结果么?
在第2章中,提到了单元测试应该产生可重复、一致的结果。如果用随机数以增加测试的真实性,在一般情况下不好,如果某个随机数导致程序出错,但是下一次运行又不能重复这一错误,则于事无补。
在过往编写与随机数相关的代码时,经常使用随机数生成器但固定随机数种子以重现测试结果。我认为完全可以在测试时先随机生成一个随机种子并将其记录下来,再用该种子初始化随机数生成器,在出现错误时即可用所记录的种子重新运行测试。因此我不太明白为什么教材会说在单元测试中使用随机数在一般情况下不好,而不是一般情况下可以。
问题2:一条错误路径很难到达真的可以考虑删掉吗?
在第2章中,提到了单元测试应该覆盖所有代码路径,并且说:如果你的模块中的某个错误处理路径很难到达,那你也许要想想是否可以把这个错误处理拿掉。
但是一条错误路径很难到达真的可以考虑删掉吗?我感觉这跟课上提到的,飞机上发生事故的概率极低,却一定需要有安全须知是差不多的,不能因为一条错误路径很难到达就不去写,万一真到达了可能会产生无法预料的结果。
问题3:新手PM的试错成本应该由谁承担?如何在不牺牲个人职业信誉的前提下获得成长?
在第9章中提到,PM要有自省的能力,在做第一个项目时可以拍脑袋定工期,拍胸脯打包票,最后拍屁股走人(谁没年轻过呢),但是失败之后要有自省和自我改进的能力。
在第9章中介绍的PM的具体任务,可以看出PM对于一个项目是非常重要的,我认为想要优秀地完成这些任务不是一朝一夕可以做到的,那在成长的过程中所需的成本和造就的后果应该如何/由谁承担?以上提到的“拍屁股走人”并用“谁没年轻过”轻描淡写,如果第一次作为PM负责第一个项目就有如上行径不会让自己的业内声誉产生不好的影响吗?
问题4:有了AI的加入后,结对编程的存在的必要性和有效性是否还存在?
在第4章中提到,结对编程中,编码不再是私人的工作,而是一种公开的“表演”。程序员的代码、工作方式、技术水平都变得公开和透明,这也许是有些人不喜欢这一方式的原因。
由于现在编码工作有了AI的加入,尤其是今年初有了OpenClaw,两个程序员的结对编程已经可以被两只龙虾代替。以上提到的“表演”内容,已经可以预见地会从代码、工作方式和技术水平,演变为与AI的对话、龙虾的养成、等等。知识和经验的交流是不是也会从如何编码变为如何写提示词,如何审查AI的代码,如何养好龙虾?
问题5:UI涉及的深度体现在哪里?是否有规范和流程让UI设计达到让产品有“越用越顺手”的用户体验感?
在第12章中提到了,我同意第一印象很重要,但是当用户已经是第N次使用你的产品时,你的UI能否为这些用户提供方便呢?
有一些人会对UI设计有“UI设计不就是画图和美化”的刻板印象,但通过教材我发现同样的产品会有用一次就不想再打开/越用越顺手的区别,而这个区别很可能就出在UI的设计上。这导致我产生了这个问题,像是软件工程这门课教我们软件团队开发的规范和流程,那UI呢,感觉上UI包括了艺术性,所以在设计过程可能会更难被规范。

浙公网安备 33010602011771号