73
社区成员




项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2024年北航敏捷软件工程 |
这个作业的要求在哪里 | [I.3] 个人作业:结课总结 |
我在这个课程的目标是 | 学习软件工程,掌握团队开发能力 |
这个作业在哪个具体方面帮助我实现目标 | 对本学期课程学习的总结回顾 |
结队编程,也称为配对编程,是一种敏捷软件开发的实践,其中两名开发人员共同在一台计算机上工作,共同编写同一段代码。尽管从表面上看,两个人使用同一台设备似乎效率低下,但结队编程在很多方面实际上提高了开发的效率和代码质量:
在非活跃编码时,另一名开发人员可以进行审查代码、编写测试、或者思考潜在的设计问题和解决方案,这是一个持续的合作与学习过程。
敏捷开发的核心优势之一是其对变化的快速响应能力。敏捷团队通常每几周就完成一次开发迭代,每次迭代都可以根据用户反馈和市场变化进行调整。把握市场需求的几种方法包括:
对于“冲刺阶段外界人员不打扰开发人员”的规则,其目的是为了保证开发团队可以专注于完成迭代目标。但团队应该在迭代开始前和结束后与相关利益相关者进行充分的沟通,确保需求和期望的一致。
goto
尽管goto
在现代编程中通常被视为不佳的实践,因为它可以导致代码的流程难以跟踪和维护,但在某些情况下,goto
可以用来清晰地处理错误清理和多层嵌套的循环退出。例如,在一些需要多处资源清理的复杂函数中,使用goto
可以避免代码重复并使错误处理逻辑更加集中。正确使用时,goto
可以增强代码的清晰性和效率,尤其是在错误处理中。
单元测试应由谁编写一直是一个讨论的话题。虽然开发人员对自己的代码最为熟悉,可能最适合编写覆盖所有边界条件的测试,但这种做法可能导致测试存在盲点,因为开发人员可能会忽视自己没有意识到的错误。由专门的测试人员编写测试可以带来新的视角,可能更能发现潜在的问题。理想情况下,单元测试可以由开发人员初步编写,并由测试人员审查或补充,以确保测试的全面性和客观性。
未定义行为是许多低级编程语言中的一个常见问题。这些行为可能导致程序崩溃、安全漏洞或其他不可预测的行为。检测未定义行为可以通过以下方式:
单元测试和回归测试可能无法覆盖所有的未定义行为,因为这些测试依赖于测试用例的设计。结合使用静态和动态分析工具可以更有效地捕获这些问题。
在项目的不同阶段中,我学到的一些关键知识点包括:
通过结对编程和团队协作,我了解到沟通的重要性和团队合作的力量。每个人的视角都是宝贵的,团队合作可以显著提高解决问题的效率和创新性。