[I.1] 个人作业: 阅读和提问

[I.1] 个人作业: 阅读和提问

项目 内容
这个作业属于哪个课程 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR
这个作业的要求在哪里 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR/homework/13365
我对这个课程的目标是 学习软件工程的基本构建方法与团队协作方法,最终实现一个完整的软件
这个作业在哪个具体方面帮助我实现目标 通过阅读教材,从理论层面了解软件工程的基本构建思路与测试方法,为之后的实践打下基础

问题1 : 平衡测试与开发

在追求100%代码覆盖率的单元测试过程中,开发者可能会面临测试代码复杂性和维护成本增加的问题。然而,100%的代码覆盖率并不能完全保证代码的正确性,尤其是在处理错误路径、性能问题、并发问题和外部依赖时。那么,如何在确保代码覆盖率的同时,平衡测试的复杂性与代码质量?

在第二章第三节中提到:

单元测试应该覆盖所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。
单元测试必须覆盖所测单元的所有代码路径。

关注点:项目的复杂程度必然会直接影响到测试的复杂程度,如何正确处理测试的复杂性与代码质量的平衡

自己的一些思考:

一种是从开发的层面考虑,尽可能的使软件的各个功能之间的耦合度降低一点,对于每个部分分开写单元测试比整体的单元测试容易;

第二个是从测试的角度,覆盖率只是指标,不是目标:100%的代码覆盖率意味着所有代码都被执行过,但它并不能保证代码在所有情况下都正确。覆盖率无法检测到逻辑错误、性能问题、并发问题或与外部系统的交互问题。
关注关键路径:与其盲目追求100%的覆盖率,不如优先覆盖关键路径和核心逻辑。对于一些简单的、显而易见的代码(如getter/setter方法),可以适当降低覆盖要求。

问题2:结对与团队复审

结对编程中,已经要不间断的进行代码复审,这与团队的复审是否有冲突,或者是工作的重叠?该如何平衡

书中第三章第二节提到:

在结对编程中,任何一段代码都至少被两双眼睛看过,两个脑袋思考过。代码被不断地复审,这样可以避免牛仔式的编程。

那么代码既然已经被不间断的复审了,团队的复审是否还有必要呢?

自己的一些思考:结对编程和团队复审并不是非此即彼的关系,而是相辅相成的。结对编程提供了即时反馈和细节优化,而团队复审提供了全局视角和额外保障。尽管两者在某些方面会有重叠,但这种重叠是为了确保代码质量的更高标准。在实际开发中,团队可以根据项目的规模、复杂性和团队的特点,灵活调整两者的结合方式,以达到最佳的效果。

问题3:PM的职责

在书中提到:


 PM做开发和测试之外的所有事情 

开发和测试是一个软件的非常重要且核心的部分,但是书中写了PM做开发和测试之外的事情,那么PM能不能做开发和测试呢?

一些思考:PM是否能够参与开发和测试,取决于其技术背景、团队规模和项目需求。虽然PM参与技术工作有一定的优点,但其核心职责仍然是项目管理。过度参与开发和测试可能会导致职责冲突和团队分工混乱。因此,PM应优先履行项目管理的职责,同时具备一定的技术理解能力,以便更好地与团队沟通和协调。在必要时,PM可以适度参与技术工作,但不应成为主要的开发或测试人员。

问题4:开源还是闭源?

关于MSF中有这样一段对话:


斯坦:那开源/共享软件是怎么一回事,如果开源了,商业价值如何体现?

阿超:这个问题问得好,我估计如果开放讨论,以咱们的风格,三天三夜也讲不完。但是回到具体问题,让我们设想一下,如果我们项目成功了,有人以“开源”的名义来要我们的源程序,我们答应么?

二柱:凭什么!

阿超:对呀,凭什么?!在软件中凝聚了我们“无差别的人类劳动”——这就是软件这一商品的价值,我们的口粮、公司的水电费都得用这一价值去交换,我们如果重视商业价值,就要有重视商业价值的做法。有一些原来 “闭源” 的项目,后来变成开源的,总是有各自的原因,这些原因里面,商业运作的因素也很明显。

二柱:但是正如你所说的,我们都是搞技术的,那怎样才能保证我们“重视商业价值”?

那么,该如何看待开源还是闭源呢?

一些思考:开源的好处:社区贡献与反馈,学习与展示,推动技术进步,获得认可。
开源的潜在风险:知识产权问题,维护成本,滥用风险,竞争风险。
是否开源自己的项目代码,取决于你的目标、项目的性质以及你愿意承担的风险和维护成本。开源可以带来技术社区的认可和反馈,但也可能带来法律、安全和竞争方面的风险。在做出决定之前,建议你仔细权衡利弊,并选择合适的开源策略(如许可证、维护计划等)。无论是否开源,最重要的是确保你的代码能够实现你的目标,并为用户或社区创造价值。

问题5:如何看待创新和小作坊

有这样一段话:

那些想开作坊的人, 你们对知识产权又是如何尊重和保护的呢? 你心里 “热爱技术”么? 你是否发现了你作坊的独特价值?  你能放弃貌似免费的看热闹的机会,在网上斗嘴的爽快, 倒卖绘图仪的短期收益, 吹嘘自己要写一个平台的风光, 先练好内功? 

那么,应该如何看待技术创新和自己的小作坊的关系呢?是一个人埋头苦干在自己的小作坊里,还是风风光光地展示呢?

我的一些思考:创新与个人小作坊之间有着密切的联系。个人小作坊以其灵活性、低成本实验和独特性,成为创新的重要来源和试验田。然而,个人小作坊在规模、资源和影响力上与大规模创新存在明显区别。要充分发挥个人小作坊的创新潜力,需要聚焦细分领域、利用外部资源、快速迭代并建立合作网络。同时,个人小作坊与大企业可以形成互补关系,共同推动创新的发展。

posted @ 2025-03-09 23:31  黑夜中的黎明  阅读(31)  评论(0)    收藏  举报