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

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

项目 内容
这个作业属于哪个课程 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR
这个作业的要求在哪里 https://www.cnblogs.com/nyx1314/p/18761649
我在这个课程的目标是 提升软件工程实践能力,掌握现代软件开发方法与团队协作技巧
这个作业在哪个具体方面帮助我实现目标 通过深入阅读教材与思考提问,加深对软件工程原理的理解,培养批判性思维与问题解决能力

阅读提问

问题1:代码覆盖率与测试复杂性的平衡

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

在实际项目中,如何平衡追求高代码覆盖率与控制测试复杂性之间的关系?我查了一些资料,了解到代码覆盖率只是衡量测试充分性的一个指标,不能完全代表代码质量。根据我的实践,在一个复杂的电商项目中,为了达到高覆盖率,编写了大量的单元测试用例,但维护成本很高,而且一些边缘路径的测试对发现实际问题的帮助不大。但是我还是不太懂,我的困惑是:是否应该根据不同项目的特点,制定合理的覆盖率目标,同时注重测试用例的设计质量,而不是单纯追求数量?

问题2:结对编程与团队复审的协同

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

结对编程与团队复审是否存在冲突或重复劳动?在一个金融项目的开发团队中,我们采用了结对编程,每对开发者在编写代码时互相审查,但后来发现团队复审时仍然会提出一些相同的问题,感觉有些浪费时间。我反对作者认为两者完全相辅相成的观点,我认为在某些情况下,可能会增加工作量而收益递减。我的困惑是:如何优化结对编程与团队复审的流程,使其既能保证代码质量,又能提高效率?

问题3:PM参与开发与测试的边界

书中提到:

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

PM是否应该参与开发和测试工作?在我的经验中,一个互联网创业项目的PM,因为技术背景较强,经常参与代码编写和测试用例设计,导致项目管理职责有所缺失,项目进度受到影响。我查了一些项目管理的资料,大多建议PM专注于项目整体规划与协调,而不是深入技术细节。我的困惑是:PM参与开发和测试的边界在哪里?如何根据项目规模和团队情况,合理安排PM的工作内容?

问题4:开源与商业价值的平衡

关于MSF中开源与商业价值的讨论,我有这个问题:在当前软件行业环境下,如何在开源与商业价值之间找到平衡?我了解到很多开源项目通过提供付费支持、云服务等方式实现商业变现,比如Red Hat的开源软件与企业服务结合的模式。根据我的实践,在一个开源大数据分析项目的参与中,发现开源社区的活跃度与项目的商业成功并不总是一致的。我反对书中认为开源就一定会影响商业价值的观点,我认为关键在于如何构建合适的商业模式。我的困惑是:对于一个初创团队,如何在开源贡献与商业利益之间做出合理决策?

问题5:技术创新与个人小作坊的关系

书中关于技术创新与小作坊的讨论,让我思考:在现代软件开发中,个人小作坊式的创新是否仍然有价值?我查了一些资料,发现很多知名软件产品最初都是从小作坊式开发起步的,比如早期的微信团队。根据我的实践,在一个个人开发的移动应用项目中,通过小作坊式的灵活开发与快速迭代,成功吸引了早期用户。但是我还是不太懂,我的困惑是:如何在保持小作坊创新优势的同时,逐步实现规模化与专业化发展?是否应该在合适的时机引入团队协作与规范管理?

posted @ 2025-03-09 23:53  睡觉觉鸟就是这样的  阅读(15)  评论(0)    收藏  举报