05 | 持续集成:集成本身就是写代码的一个环节
05 | 持续集成:集成本身就是写代码的一个环节
讲述:郑晔
时长11:57大小10.95M
集成之“灾”
迈向持续集成
“地面上”的持续集成
总结时刻
赞 34
提建议
精选留言(53)
- Scott2019-01-04曾经参与过一个项目,中美印三地开发,开发测试产品加起来可能过百吧。当时,我们中国团队做过一个这样的工具,每次在git-review上提交/更新review时,自动构建一个当前branch是最新版,打上review的patch,然后构建,跑UT,UT覆盖率在95%再向下走。 做到这一步,其实不算什么,但是已经超过国内80%的同行水平了。然后我们还会构建一个虚拟机镜像安装这个build,安装好了在专门的虚拟测试网络上启起来,利用自动测试工具跑一些基本的case,比如登陆啊,基本的操作啊,这一系列跑完,才可以正式的让人review。 这个项目因为一些方向性和市场的问题,一年多就失败了,项目组解散。但是集成水平,的确是我经历过的最高的。展开
作者回复: 确实做得不错!项目失败和实践之间是不能划等号的,不能因为项目失败就否认实践的优秀。
共 5 条评论70 - 捞鱼的搬砖奇2019-01-04关于代码提交的问题,举例子是公司要求每日提交,如果一个功能没做好也要提交?还是说只要没有编译问题,即使未完成也得提交?
作者回复: 好问题,你对提交的理解说明任务分解做得不够,不能小步提交,这是在任务分解模块要讲的内容,敬请期待。
共 2 条评论19 - 虢國技醬2019-01-04打卡: 目前我们团队借助git-flow,以git的分支 feature、release、hotfix和里程碑tag进行持续集成和构建; release 出发测试环境构建、tag出发生产环境部署
作者回复: 我最喜欢的分支模型是,没有feature分支的git flow。
共 3 条评论17 - pyhhou2019-01-04公司一部分人在美国这边做开发,另一部分在台湾做开发,每到集成,想到的头疼的问题第一个就是时差问题,一般的流程就是他们那边发现了问题邮件发给我们,我们看一下感觉好像不是这边的问题,给些解释和建议又邮件抛回去,感觉这种情况可能需要就是一方的负责人得牺牲一下自己的私人时间,积极开会沟通?持续集成必须合作的所有teams都同意,或是都有这样的意识才行,不然光靠一方的努力感觉弄不起来,不知老师如何看?
作者回复: 不仅仅是持续集成,任何涉及到协作的实践都需要协作相关方的共同配合才可能有效落地。 如果大家都觉得工作起来很辛苦,其中肯定有不对的地方,需要坐下来,一起商量解决方案。我在专栏中给大家提供的就是你坐下来可以提出的建议,比如,持续集成,验收标准等等。
共 2 条评论11 - 张简祺瑞2019-01-08持续集成不是很普通的事?
作者回复: 你有这种感觉,说明你所在的公司做得不错,但行业中还有大量需要提高的公司。
共 2 条评论10 - liu2019-01-04简单一句,小步快走。尽早的暴露问题并解决问题,能够减少系统潜在奉献。持续集成能够帮忙做到9
- 一步2019-01-12虽然我们在同一个时代写代码做开发,但在技术实践层面,不同的团队却仿佛生活在不同的年代。7
- zhengfc2019-02-23老师,您好;最近在做流程方面的重新梳理和实践,发现有个问题:比如产品那边起初是5个功能上线,后来由于某些原因或者市场原因临时砍掉一个一个功能,而这功能按持续集成每日构建的思路代码肯定是合掉了,这就产生代码回退和重新集成的问题,这个痛点有什么好的方案吗
作者回复: 在“任务分解”模块的答疑中,我介绍了 Feature Toggle,你可以了解一下。 这里面的关键点在于,你的代码模块需要划分清楚,这样无论是使用 Feature Toggle,还是调整代码,都有足够的空间去操作。
5 - 喜悦2019-01-06今日概念: 1. 集成:将各个独立部分组合在一起使其成为一个新个体的过程; 2. 每日集成:每天进行一次集成,它和持续集成只有时间间隔上的差别; 3. 持续集成:每日集成推演到极致的结果,将开发和集成合二为一; 今日总结: 集成本身就是写代码的一个环节,持续集成已经有了很成熟的体系与实现,早点使用持续集成吧;展开5
- 猿工匠2019-03-19开发完成的定义:集成为可运行的软件 开发模式:持续集成,尽早构建 git 版本工具,Jenkins 持续构建
作者回复: 很好的总结
4 - Jerry Wu2020-04-10老师,对于集成,我基本没有认识,这方面有体系化的课程吗? 我一直在小公司工作,是非常原始的状态,没什么协同可言。我作为后端工程师,要包揽大部分工作,确认需求、写代码、测试、上线、维护。遇上紧急的项目,就感到压力山大。 之前试过分摊工作给其他人,但最终的代码却漏洞百出,反而拖慢了进度。团队也一直做不大,像是个小作坊。 看完这节课,我在想,持续集成说不定能提高团队的协作,扩大团队规模。 老师,您能给些建议吗?展开
作者回复: 你可以先看看总复习中关于最佳实践的一节,从中把专栏里关于持续集成的内容找出来,一起读一下,形成一个完整的认识。 极客时间里也有持续交付的专栏,可以去了解,网上也有非常多的相关文章可以去看一下。
3 - 春之绿野2019-05-05有一次为了改进我们的代码,新拉了个分支出来,在开发的过程中,新的功能要在新老两个分支上做两遍,最后合并的时候还要梳理一遍有没有只做在老的分支上的功能,还有个稍微大点的功能是国外的同事开发在老的分支上的,合并过来,太痛苦了
作者回复: 我一直认为,大分支就是给自己找麻烦。后面还有关于分支的讨论。
3 - 彭薄2019-01-16我们公司是单独一个在现在教育网站,只有UI、后端和我一个前端,后端包揽了大部分事情,我每次写代码是Git下拉代码,然后修改,修改后上传,都结束后合并到主分支,通知后端上线。请问老师这算是每日构建持续集成吗?如果不算我们公司这种情况应该怎么样才算?
作者回复: 这种情况是最原始的开发状态,什么都没有。
共 2 条评论3 - delicate2020-12-22集成是不是就是提 MR?🤣如果从把新代码合并到已有代码这个角度看的话
作者回复: 如果你要这么理解,也可以😄
2 - 快乐一家2020-03-21认真拆分任务,尽早提交合并2
- 书生2019-01-07只要每个部门在做之前都定义好接口文档,不就解决问题了吗
作者回复: 从理论上想,是这个样子的,现实情况是,没有办法能约束这个文档,造成的结果是,总会有人偷偷改接口。
2 - 小小杨2021-03-25目前项目采用jenckis做持续集成 效果很明显 虽然会盯着jenckis 但很快发现编译错误 开发部署环境集成错误 指导定位是谁的问题 开发效率提升很明显
作者回复: 成为团队习惯就很有用
1 - lihp2020-04-18项目团队的持续集成平台是学习其他团队使用 Jenkins 搭建持续构建平台,渐渐推广到平时有合作关系的团队。 持续构建起初运转良好,能够做到每日构建,后续以为功能开发分支越来越多,持续构建疏于管理,至今为止,每次构建大升级后需要一番大调整,工作量不小,每日构建和自动化测试如老师在文中所提的观点,已经近似于“灾害”。 回顾整个过程,发现问题: 1.技术共享或推广,缺乏主动性。持续集成是一件好事,但缺乏主动推广,公司内团队近用了将近2年的时间才全面推广。 2.缺乏共识。持续集成好像是负责人等几个人的事情,其他成员不甚了解,甚至不知道如何修改和维护,一方面考研构建的架构和规则设定,另一方面也表现出持续集成的共识不足。 落地实践:持续构建已经与实际项目相差巨大,主要是在跨平台的构建和自动化测试两方面,相对有效的落地方案时先从最小的构建和最基本的测试开始完善,先集成起来,逐步优化中间环节,与当前项目靠拢。展开
作者回复: 任何的实践,首先自己要理解,其次要让别人理解,都很难。
1 - 孤独的二向箔2019-01-23之前在一个大厂做前端开发,但是没有持续集成,不知道其他同行有什么看法?
作者回复: 现在的前端已经进入工具链很完善的状态了,所以,持续集成也是可以做的。
1 - 梦醒时分2019-01-08没有feature分支的git flow。是指开发和测试分支都使用一个么
作者回复: 你可以先了解一下git flow,去掉feature分支就变成了主干开发,这是我鼓励的,换句话说,我的观点就是尽可能不使用分支,更别说开发分支,测试分支了。
共 3 条评论1