复杂的产品

大公司容易做出复杂的产品,这主要有两个原因。

(1)公司的人越多,产品复杂度就越高,因为每个人都想留下自己的印记。

大公司的规则是,当你贡献了某种新功能,就会得到晋升。

哪怕这些功能是多余的,十个月后就会发现它们毫无用处,它们的开发者也会收到奖励,所以所有人总是热衷于添加新功能。

(2)公司规模越大,客户越多,就越需要应对具体的用例。

销售人员会告诉你,一些客户需要这个功能;客户支持人员则会告诉你,另一些用户提出了那个需求。

除非你有足够的远见,指出它们不符合软件发展的愿景,否则你就不得不按照那些人的要求,不停地添加功能。

现实中,大公司内部有各种压力,程序员几乎没有自己的立场,必须取悦所有上级部门,在各种压力之间搞平衡,最终就做出具有巨大复杂性的软件。

公司CI流程

1)需求添加开发任务,绑定服务(repo)后即在远端创建了开发分支,拉取分支到本地
git checkout your_dev_br || (git fetch origin && git checkout -b your_dev_br origin/your_dev_br)

2)非最新,将master分支当前最新的代码合入到该需求分支

方式一,merge:
git fetch origin && git checkout your_dev_br && git pull && git merge origin/master

方式二,rebase:
git fetch origin && git checkout your_dev_br && git pull && git rebase -i origin/master

3)修改冲突
git fetch origin&&
git checkout -b conflict_your_dev_br_test-20251120.xxxxxx origin/conflict_your_dev_br_test-20251120.xxxxxx&&
git merge --no-ff origin/test-20251120.xxxxxx