第七组【团队作业】第五周作业

  1. 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,他就可以根据文档,从头开始搭建环境,并成功地把最新、最稳定版本的软件编译出来,并运行必要的单元测试? (在这过程中,不需要和老队员做任何交流)

答:是的,部署文档包括以下内容:
1.环境搭建步骤:包括安装操作系统、配置基本环境、安装必要的软件和工具等。
2.代码获取和编译步骤:指导如何获取最新的代码版本,并编译它们。这可能涉及到版本控制系统(如Git)的使用,以及编译器、构建工具的配置和使用。
3.单元测试运行步骤:指导如何运行单元测试,以确保编译的软件版本符合预期的功能和稳定性要求。
4.权限设置说明:说明如何设置相应的权限以及如何处理可能的权限问题。
5.故障排除指南:提供一些常见问题的解决方案,以及如何处理可能的错误或故障。
6.其他说明:可能还包括其他相关的说明,例如配置文件的修改、环境变量的设置等。

1.你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?
场景:程序员甲正在对几个文件进行修改,实现一个大的功能,这时候,程序员乙也要改其中一个文件,快速修复一个问题。怎么办?
一个代码文件被签出 (check out) 之后,另一个团队成员可以签出这个文件,并修改,然后签入么?
有几种设计,各有什么优缺点?
例如,签出文件后,此文件就加锁,别人无法签出;或者,所有人都可以自由签出文件

答:在航空票务系统的开发中,团队的源代码通常会托管在专门的代码托管平台上,例如GitHub、GitLab、Bitbucket等。这些平台提供了版本控制系统(如Git)的功能,可以有效地管理团队的代码库。
在处理文件的锁定问题时,不同的团队可能采取不同的方式,以下是几种常见的设计以及它们的优缺点:

1.文件签出加锁:
优点: 签出文件后,其他团队成员无法签出相同文件,避免了多人同时修改同一文件可能引发的冲突。
缺点: 如果某个团队成员长时间占用文件而没有及时释放锁定,会导致其他成员的等待时间增加,影响整体开发效率。

2.所有人都可以自由签出文件:
优点: 灵活性高,团队成员可以自由签出文件进行修改,不会因为他人的签出而受限。
缺点: 多人同时修改同一文件可能引发冲突,需要通过版本控制系统的合并机制解决冲突,可能需要花费额外的时间和精力。

3.部分文件加锁,部分文件自由签出:
优点: 对于那些可能频繁被修改或者风险较大的文件可以加锁,避免冲突;对于其他文件可以自由签出,提高灵活性。
缺点: 需要对文件进行分类和管理,可能增加管理成本。

4.使用分支进行开发:
优点: 每个团队成员可以在自己的分支上进行开发,不会影响到主分支上的其他成员,避免了直接在同一文件上修改可能引发的冲突。
缺点: 需要花费额外的时间和精力进行分支的合并和管理,特别是在团队规模较大或者开发周期较长的情况下。

  1. 如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。
    场景: 程序员甲看到某个文件被修改了,他怎么看到这个文件在最近的修改究竟改了哪些地方? (例子)
    场景: 程序员甲看到某个文件在最新版本被改动了100 多行, 那么和这100多行对应的其他修改在什么文件中呢? 这个修改是为了解决哪些问题而作的呢? 那些问题有工作项 (work item,issue),或者bug 来跟踪么?

答:在使用版本控制系统(例如Git)管理代码时,可以使用版本控制系统提供的一些功能来查看文件的差异以及代码修改与工作项之间的关系。
1.查看文件差异:
使用版本控制系统提供的命令行工具或者图形化界面,可以查看某个文件在不同版本之间的差异。通常使用以下命令可以查看文件的差异:
git diff
这将显示指定文件在当前工作目录和最新提交之间的差异。

2.查看代码修改与工作项的关系:
在使用一些代码托管平台(如GitHub、GitLab、Bitbucket等)时,通常会结合使用版本控制系统和问题追踪系统(如GitHub Issues、Jira等),通过提交信息或者特定的关键词来建立代码修改与工作项之间的关联。
例如,在提交代码时,可以在提交信息中引用工作项的编号或者关键字,这样代码托管平台会自动将提交与工作项关联起来。通过在工作项页面查看提交历史,就可以看到代码修改与工作项的关系。
另外,一些代码托管平台还提供了自动关联工作项的功能,可以根据提交信息中的关键词或者特定的规则来自动关联工作项。

在场景中,如果程序员甲想要查看某个文件最近的修改,可以使用版本控制系统的命令或者图形化界面查看文件的差异,从而了解具体的修改内容。如果想要了解修改的目的或者和其他问题的关系,可以查看提交信息或者相关的工作项,从中获取更多的信息。

  1. 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)? 你用了什么工具来帮助你?

答:在某个文件在我签出之后已经被别人修改并签入的情况下,我需要执行合并操作来将我的修改与他人的修改结合起来,以避免冲突并保留双方的修改。
通常,会使用版本控制系统提供的合并工具来辅助完成这个任务。如果使用的是Git版本控制系统,可以使用如下命令进行合并:
git merge

在解决冲突时,我可以使用图形化的合并工具,例如:

  1. Git自带的合并工具:Git提供了一些内置的合并工具,例如git mergetool命令可以打开配置好的图形化合并工具来解决冲突。
  2. Visual Studio Code:如果我是使用VS Code作为开发工具,它提供了内置的合并工具,可以直接在编辑器中解决冲突。
posted @ 2024-04-05 20:55  黄佩瑶  阅读(15)  评论(4编辑  收藏  举报