趣头条党委书记、总裁刘安逸

雷锋网版权文章,。详情见转载须知。

人民网北京12月18日电 (杨曦)由人民日报社主办的第五届中国品牌论坛18日在北京举行。国内政要、企业代表、权威专家、媒体嘉宾等300余人会聚一堂,以“质量立国,品牌强国”为主题,开展深层次、多领域、高水平对话交流,回顾发展历程、解读政策机遇、共画未来蓝图。趣头条党委书记、总裁刘安逸表示,新时代,趣头条坚持以满足人民日益增长的美好生活需要为目标,以通过内容为用户带来乐趣和价值为使命,持续加强品牌建设。

“未来,趣头条将继续坚持技术创新、服务创新、内容创新,不断提升企业的综合实力,提高品牌的美誉度和影响力,把握住新时代机遇,为中国互联网发展做出新的贡献。”刘安逸说。

你有没有尝试过这样一个复杂的分支模型:它有多个团队,并且希望它们都在同一个页面上?这是不会发生的。很快,这个系统就变成了不同 repo 的不同版本的一个清单,只有敲出 YAML 来更新清单的人知道所有东西在哪里。如果你不够细心,「在生产什么」就变成了一个存在主义的问题。

整个分支模型是根据可预测的、长期的发布周期进行预测的。如果每隔几分钟或几小时发布一次新代码,开销就太大了,更不用说 CD 的中心实践之一是向前滚动修复。Git-flow将修补程序视为一个单独的实体,需要小心地控制,并与其他工作分离开来。

关键在于,团队需要反思:这个分支模型将帮助我们解决哪些问题?会产生什么问题?这种模型将鼓励什么样的发展?我们想鼓励这种行为吗?使用分支模型的最终目的都是方便软件开发过程中的合作,因此,需要考虑使用它的特定人群的需求,而不是互联网流传的「成功」的东西。

虽然我不敢说不采用 Git-flow 这样的分支策略就可以避免合并冲突,但是当所有这些分支组合在一起时,引入的潜在复杂性太大了,无法忽略。如果你们公司的代码提交速度很慢,那就没关系。但是对于任何快速迭代的组织或初创企业来说,情况并非如此。

更重要的是,你还需要随时跟踪每个分支,这造成了很高的认知负荷。我已经使用 git 10 年了,我甚至不确定自己是否能在精神上跟上这里的发展。

刘安逸认为,成功品牌的背后一定有企业战略的支持,企业最核心的战略是市场和消费者价值主张。趣头条挑选产品和赛道的核心方向,一个是市场足够大,企业通过产品服务精准满足用户多元化的需求。二是差异足够大,企业创新点吻合用户的甜蜜点,足以打开用户心智。

持续交付是一种实践。在这种实践中,团队以自动化的方式直接发布到生产中(实际上是合并到 master)。看看混乱的 Git-flow,你能解释一下如何持续地交付吗?

在多个存储库中不可能使用 Git-flow

预计移动收入将下降,但降幅将小于2019年前9个月的6.1%。

随着微服务的出现,micro-repo 的理念也得到了更多的推动,各个团队可以控制他们的存储库和工作流,他们还可以控制谁进入了他们的存储库以及其工作流是如何工作的。

如果不应该使用 Git-flow,那应该用什么?

这个过程大约持续 3.2 秒。如果团队是独立的,micro-repo 应该是独立部署的,这样就不能很好地将你的工作流程与你在 mono repo 中创建的集中式分支模型联系起来。

Git-flow 使连续交付变得不可能

好吧,你们当中的一些人不相信这个真理,所以让我们深入研究为什么 Git-flow 分支模型应该葬身火海。

刘安逸表示,新时代随着网络技术的发展,移动设备的普及,我国三线及以下城市,和乡镇、农村市场日趋活跃,消费热情和消费能力不断提升。但从供给侧来看,新兴市场消费群体对个性化内容和信息优质优价商品和服务等多元化需求尚未充分满足,文化教育等方面的服务品质、体验与一、二线城市还有一定差距。趣头条就是诞生在新时代,针对性地围绕满足消费者不断增长的信息消费需求,获得了快速增长,打造出新的品牌。

因此,如果由于协调发布的困难而取消了 micro-repo,那为什么不让所有微服务团队都遵守一个大的发布分支工作流呢?

重新定位合并节点是一个复杂的话题,但它很重要。如果你使用 Git-flow,你将不得不放弃 rebase。记住,rebase 取消了合并提交,你再也看不到两个分支组合在一起的节点。由于 Git-flow 的视觉复杂性,你需要可视化地跟踪分支,这意味着如果你想解决问题,就不需要 rebase。

在 git 中,随着在某个分支上工作人数的增加,发生合并冲突的次数将大大增加。在 Git-flow 中,这个数字增加得更多,因为还有三个具有不同生命周期的其他分支合并到开发中:特性分支、发布分支和紧急修复。合并冲突发生的可能性并不是线性变化的,它可能会使合并冲突的概率增加三倍。

Git-flow 特别复杂,甚至在考虑微服务或连续交付之前就已经如此了。下面的图片直观地展示了这一点:

刘安逸介绍,趣头条在品牌建设方面有以下几个做法:第一,服务新兴市场,缩小数字鸿沟;第二,丰富产品矩阵,构建内容生态;第三,主打娱乐互动,倡导快乐生活;第四,坚持向善向上,争作优秀品牌。

在开始的九个月中略有下降(0.7%)之后,预计2019年的整体服务收入将保持稳定或略有反弹。

如果你的团队每月或每季度发布一次,并且是一个并行处理多个发布的团队,那么 Git-flow 可能是一个不错的选择。如果你的团队是一个初创企业,或者是一个面向 internet 的网站或 web 应用程序,同一天可能发布多个版本,那 Git-flow 对你来说就不合适了。如果你的团队是一个不到 10 人的微型团队,Git-flow 会给你的工作带来太多的规矩和开销。

这里有特性分支、发布分支、master 分支、dev 分支、一个紧急修复分支和 git 标记。这些都是在构建和发布过程中必须跟踪、理解和考虑的事情。

很多人会相信看到的博文,这其实是错误的。并非所有的策略都适用于所有情况,这是一个真理。我将同样的逻辑应用于这个分支模型。

我不能回答。并非所有分支模型都适用于所有团队和所有情况。如果你练习 CD,你需要一些尽可能简化过程的东西。

雷锋网雷锋网(公众号:雷锋网)雷锋网

运营商将这一下降归因于政府推动运营商在降低资费的同时提高移动互联网速度。它还提到“市场饱和,激烈的市场竞争以及4G数据赠金减少”。

如果你读过这篇博文,你就会注意到,尽管作者声称他们在项目中成功使用了 Git-flow ,但却故意避开了让项目成功的细节。

另一方面,如果你的团队有 20 多人进行并行发布,那么 Gitflow 可以确保不会把事情搞砸。

Git-flow 违反了「短命」分支规则