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

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

项目 内容
这个作业属于哪个工程 2025年春季软件工程(罗杰、任健)
这个作业的要求在哪里 [I.1] 个人作业:阅读和提问
我在这个课程的目标是 熟悉软件开发流程,丰富软件开发经验,提高软件开发的团队合作能力,掌握优秀的软件开发方式
这个作业具体在哪个具体方面帮助我实现目标 掌握了基本的软件开发流程和开发人员在开发过程中扮演的不同角色,了解了许多高效的软件开发方式

1

代码复用是提高软件开发效率的重要手段

我的问题是:代码复用在实际开发中是否总是有效的?我查了资料,有这些说法:代码复用可以减少重复劳动,提高开发效率,但也可能导致代码耦合度过高。对于一个少人的小项目,我们大多对整个项目的代码有一个完整的了解,这样在复用别人的代码时我们大多能避免出现问题。但是在大型项目中,我们时常会复用一些自己并不了解的代码,就算有说明文档,我们可能也会因为一些上下文不同或者参数范围等问题导致代码复用出现问题,有时这些问题非常隐蔽,且复用的代码其实本身设计没有问题,只是自己没有了解其语境在不完全合适的地方复用,找到这些问题就可能需要大量时间,这对开发效率来说是非常不利的。
那么如何判断哪些代码适合复用?有没有一种通用的代码复用策略来避免复用出现的问题?

2

代码重构是软件开发过程中不可或缺的一部分,它可以帮助改善代码的可读性和可维护性。

我的问题是:如何正确的选择代码重构的时机?
按理来说重构应该在代码变得难以维护或扩展时进行,但频繁的重构可能会导致项目进度延误。在我完全的一些小项目中,由于初始架构设计的缺陷,就经常出现是否需要对代码进行重构的选择时刻,有时候只是因为一个小功能难以实现,就要花大量的时间成本去进行重构对于我来说是非常不值的,同时重构的过程难免会出现各种各样的bug,这些情况都大大阻碍了项目的进程。在工作中面临交付成品的时间压力,重构有时意味着停滞不前甚至倒退,那么到底有没有方法在在保持项目进度的前提下,合理地安排代码重构?

3

软件工程强调团队协作,良好的团队沟通是项目成功的关键

对于这句话本身我并没有质疑,但是在远程开发环境下,如何高效地进行团队协作?
使用在线协作工具、定期召开远程会议、建立明确的沟通规范等方法可以提高远程团队的沟通效率,这些方法确实可以方便远程团队协作,但是仍然无法避免存在沟通不畅、信息传递延迟等问题。在项目初期,团队成员之间的信任感较弱,导致协作效率不高,尤其是在非正式交流方面,缺乏线下那种自然的沟通氛围。有没有方法可以尽可能的模仿线下开发环境,使得团队合作在远程情况下依然达到最高效率。

4

持续集成和持续部署(CI/CD)是现代软件开发的重要实践,它可以帮助团队快速迭代和交付

对于一个成熟的软件开发公司,实现持续集成和持续部署显然不是问题,但是如何在小团队中有效实施CI/CD?
CI/CD需要自动化测试、自动化构建和自动化部署的支持,但小团队可能缺乏资源来搭建完整的CI/CD流程。之前在我和朋友私下做的项目中,我们试图引入这种开发方式,但由于缺乏经验,搭建过程遇到了很多问题,最终没有坚持下去。那么小团队如何在有限资源下实施CI/CD?有没有一种简化版的CI/CD实践适合小团队?或者换个方式说小团队真的适合这种开发方式吗?

5

软件开发中的测试驱动开发(TDD)是一种以测试为先导的开发方法。

TDD是否适合所有类型的软件项目?
我查了资料,有这些说法:TDD可以提高代码质量,但需要较高的开发成本和学习曲线。根据我的实践,我得到这些经验:我们团队在开发一个小型脚本项目时尝试了TDD,但感觉投入产出比不高。在另一个项目中,我们尝试将TDD应用于前端界面开发,但由于界面的交互性和视觉效果复杂,测试编写非常困难,最终不得不放弃TDD,转而使用其他测试方法。
那么如何判断一个项目是否适合采用TDD?有没有一种方法可以降低TDD的入门难度?如果一个项目在初期不适合TDD,但在后期变得复杂,是否可以中途引入TDD?如何平滑过渡?

posted @ 2025-03-06 20:34  aka杰  阅读(17)  评论(0)    收藏  举报