HaveFunWithEmbeddedSystem/Chapter0_序言/0.3_项目管理与协作开发.md
ithink.chan 1ed6c1e533 补充 0.3 项目管理与协作开发 的部分内容.
Signed-off-by: ithink.chan <chenyang@autoai.com>
2019-08-20 15:38:39 +08:00

14 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 0.3 项目管理与协作开发
当项目很小的时候一个人就可以完成全部开发工作,甚至不需要太多测试工作。
当项目变大之后,在有限的时间内,一个人不太可能完成全部的开发任务,需要进行多人写作开发。怎么协作呢?考虑当前有一份 Base 代码,甲在其上进行开发形成 BaseA0乙在其上进行开发形成 BaseB0丙在其上进行开发形成 BaseC0。如何才能将这三分代码组合形成最终的代码呢将三分代码交给丁进行统一合并是一种解决办法这种办法也很糟糕,修改的内容过多的话合并工作就会变得繁重并且容易出错。
为了修复 Bug 或者增加功能,软件版本不断演进,当 BaseA0 变成 BaseA1BaseB0 变成 BaseB3BaseC0 变成 BaseC5 之后,丁的合并工作将变得不堪重负。经常性的,丁还需要知道哪个版本具有什么功能,此时丁要对多个版本进行管理,将代码打包并且附上一份与之对应的说明文档。一旦版本过多,管理就会变得复杂。
开发一个新功能之后,很可能会发现一些新 Bug这个 Bug 是否只在新版本中出现了?此时我们要回溯版本,如果从多个打包文件中解压源码,将使工作目录下有多个源码工程,工作目录将变得脏乱不堪。
所有代码都保存在丁的电脑中也不安全,一旦丁的电脑损坏,所有人都无法继续工作,甚至有可能造成代码的永久丢失。
有没有办法可以一次性解决上面所有问题?答案就是版本管理工具。