软件工程第四周理论与实践学习
一、理论学习
1、完成慕课第四、五章的相关学习
2. 阅读《构建之法》讲义中的“软件过程”和“团队中的角色与合作”
软件工程中团队合作非常重要,一个人的力量太过微薄,合作就难以避免和人打交道,充分的尊重和合适的交流讨论是非常有必要的,对于不同的意见和想法要用积极的态度来解决,心往一处想,力往一处使,为共同的目标而战;在合作过程中应当相互信任,各司其职,把自己的工作做到尽善尽美。
二、实践学习
本周实践学习主要学习多个账号操作同一个代码仓库,我的伙伴是王天雨,操作的是我的仓库。协同开发在github上有两种方式:
1、fork
别人可以fork你的仓库,然后他们完成某个功能后提交pull request,你确认以后将其他人的修改合并到自己仓库,这种方式别人是无法对仓库进行修改的
2、添加合作者
仓库的setting中可以邀请用户参与到这个仓库中来,通过用户名邀请
邀请后会发一封邮件给你的小伙伴确认,确认后他就可以和你一样对这个仓库进行所有操作
我们选择的是第二种添加合作者的方式
添加完成后小伙伴先将项目克隆本地仓库(相当于在本地创建了一个这个项目的仓库)这里知道到的操作有几种:1、用github平台提供的软件。2、用git命令行工具。3、用VsCode,里面有自带的git工具。
队友将项目克隆到本地后,就可以对文件进行修改、添加、删除等操作,我们选择了单词检索程序,王天雨在本地新建一个文件并提交,为了体现仓库一些修改的操作,天雨提交的时候将文件命名为txt文件,写好代码后推送到远程仓库,我进入仓库就可以看到新添加的文件了
我使用的是VsCode中的git工具
进入到本地仓库的文件下,然后在菜单点击拉取,就可以将远程仓库上新建的文件、文件夹同步到本地的文件下
我最初是将txt文件直接修改为py文件并推送,发现在本地和github上都会多出一个新的py文件,并不是修改,后来直接在github上点进txt文件里修改了后缀,并在本地删除新建的py文件,这个操作是可以同步到远程的,删除后对代码稍加修改,并暂存、提交,在远程代码就完成了更新,多人操作一个仓库非常有意思,有一种远程合作的快乐,点击提交记录可以看到不同用户提交的记录
点到文件里的history也可以看到对此文件的操作记录
这时候小伙伴已经将文件修改了一步,假设这时候我要对这个文件进行修改,我在本地修改后进行推送操作发现报错
这就是由于代码存在冲突,新建一个文件并将新修改的代码拉取下来,我以为新建文件再拉取会把仓库里所有的文件拉取下来,结果只会拉取和本地不一样的文件下来
拉取完成后我们进vscode对两个文件进行比对,对选中的文件右键点击“与已选项目进行比较”
可以看到标红出即是冲突的地方,我们要将新添加的东西修改到远程文件里,所以我们应该修改合作开发文件下的英文检索文件,我们将红色部分的内容修改到左侧,并保存,对此文件进行修改提交,发现可以正常提交到远程。进入仓库可以看到
我们修改的部分已经顺利提交到代码仓库。
这时候我们进软件工程学习文件中拉取远程代码发现会报同样的错误,因为本地文件和在合作开发里的文件(合作开发里的是修改好冲突提交到远程的)不一样,删除即可,删除后再次拉取,本地仓库和远程就完美同步。
当然我们这里只是一些不影响整体代码的修改,实际操作过程中可能设计方法、类的编写冲突,那时候就要交流这个文件冲突的部分到底用谁的,确定好后才能提交。
代码仓库地址:https://github.com/dbefb/nickYang
三、总结
本周学习感觉VsCode是一个强大的工具,很多操作都很方便快捷,对于提高效率有很大的帮助,尤其是对冲突解决,文件对比界面非常非常的直观,直奔主题修改标红界面;觉得软件合作开发非常有趣,也有很大的遗憾,我时不时也幻想过能在某个公司的某个小团队内敲代码,能有一个团队开发一个工具、软件或游戏。