禅道博客

分享专业技术知识,文章内容干货满满!

极限编程

代码审查完整指南来了!

代码审查不是战场,审查员也不是作者的对手。他们的目标是一致的——解决产品问题并创建高质量的代码库。让我们深入探讨并了解如何从审查者的角度进行一次代码审查。 不要浪费时间 总有些问题时常重复出现。先是在一个拉取请求中,然后又在另一个拉取请求中;先是来自一个作者,然后又来自另一个作者。这些问题完全相同,这就是例行公事。事实上,如果某件事情可以自动化,那么它就必须自动化。   代码风格。没有必要为代码风格而争论不休,因为早在几十年前,项目中的每个人或整个社区就已经对代码风格进行了多次定义。在 linter(代码检查工具)...
敏捷开发 07-11

Linux之父:连你自己都懒得解释,那这就是一堆垃圾!

不出意外,Linus又开喷了,这次的激情开麦,源自一部分没有做注释的合并请求:Linux6.3内核收到了一部分合并请求,但这部分合并完全没有注释。 如果你懒得解释为什么存在一个合并,那这个合并从本质上来说就是错误的垃圾,这是每个开发者都应牢记于心的规则。我重复一遍:如果你不能解释清楚这个合并请求,那就不要做,就是这么简单。——Linus Torvalds 让Linus如此生气的代码注释,到底有啥用?注释不仅展现了代码背后的逻辑,让我们在后期维护时能更容易阅读、理解代码,还能将授权许可、版权信息编写进去。此外,注释也有提示作用,如标记为FIXME或TODO的注释往往表示待定的工作等...
💍
霍格沃茨青岛分校
2023-03-24

结对编程很可怕?掌握这几个技巧,让你的结对编程更易成功

结对编程是极限编程(XP)中的工程实践之一。但大家对结对编程的态度,褒贬不一,有人很喜欢,觉得它有利于团队的知识共享,打破成员间的知识孤岛,还利于促进团队的协作,提高效率等等好处;而有的人则很讨厌,觉得结对编程会降低效率,是在增加成本,尤其是两个开发人员经验差距较大时,而且这种发生会让开发这无法集中注意力,每个人的工作方式都不同,在同一台电脑上工作,挑战性很大。 一、为什么要结对编程? 我们需要明白的一点是,结对编程是一把双刃剑,有优势也有劣势。虽然它不能解决所有问题,但对比其他方法,它也是降低工作难度的一个行之有效的方法。 对于管理者来说要明白,结对编程虽然在项目开始时会增加成本...
💍
佘若兰
2022-12-07

将代码集体所有权进行到底!

极限编程中有一个实践是代码集体所有权(Collective Ownership)。这个实践从字面意思理解起来很简单,就是大家共同拥有代码,都有权限浏览、修改代码。这个实践从表面看是一个技术问题,只不过是源代码管理系统的权限如何设置的问题。但从本质上来讲,这是一个团队乃至整个公司的团队协作和勇气的问题。今天借这篇文章和大家仔细展开聊聊。开始讨论之前先来问个问题:是不是将源代码管理系统(如Git或者Subversion)的权限都放开,就是实施了代码集体所有权呢?请大家认真思考一下这个问题。我想有很多公司是这样设置的,但这只是技术上的一个设置而已,是不是真正实施了集体所有权,我们还要看团队实际的行为...
🍪
春哥
2022-10-18

无结对,不编程

极限编程里面有一个比较有争议实践就是结对编程。很多团队的管理者在谈到结对编程的时候,第一反应是浪费时间:本来一个人可以干的事情要安排两个人干,不是浪费时间吗?那结对编程到底会不会浪费时间呢?结合我们禅道团队自身十几年的结对编程实践,跟大家做一下分享。首先来定义一下什么是结对编程。很多朋友可能觉得自己的团队从来没有实施过结对编程,但其实每个开发团队都做过。最常见的场景就是遇到了棘手的Bug,一个人解决不了,拉上另外一个同事,一块讨论,一块交流,然后把这个问题解决了——这就是一种结对编程。再比如新人来了,团队指定一位师傅来带他。这位师傅跟新人坐到一块,演示解决问题的思路方法,跟新人讨论具体问题的思...
🍪
春哥
2022-10-11

如何实施极限编程?

极限编程虽然是敏捷开发的一种主要方法,但真正实施极限编程的团队比率很低,只有可怜的7%(数据来源:《2021年度敏捷状态报告》)。是什么原因阻碍了极限编程的推广和实施呢?结合我们自身实施极限编程的经验体会来看,我觉得可能有如下的原因: 首先极限编程并没有Scrum和看板那么酷。Scrum会对流程有明显的改动,很容易让团队感知到变化。作为改革的推动者,Scrum教练也更能体现自己的价值。看板本身就非常强调可视化,所以在价值呈现方面有先天的优势。但是极限编程的实践更多的是集中在工程侧,流程方面相关的实践又与Scrum有相似的地方,不太容易体现自己的价值。 其次极限编程的实施需要长期的过...
🍪
春哥
2022-09-05

如何做好代码片段管理?

在谈到编码规范的时候,我们关注的粒度从大到小划分的话,一般是按照应用、模块、对象、方法这样的层次来定义。在这些粒度上业内一般都有约定俗成的一些规范,就不再赘述。今天这篇文章我想重点和大家聊聊如何做好代码的片段管理。什么是代码片段呢?一组相关的代码行我们就可以称之为一个代码片段。比如下面的代码是做一些变量的定义和初始化,这些代码行我们就可以称之为一个代码片段。 再比如这段代码,是对数据库进行连接处理,我们也可以称之为一个代码片段。 为什么这次单独拿代码片段出来讲呢?主观原因是,从我们带团队的经验来看,开发人员往往缺失代码片段管理的概念。客观原因是现代编程语言粒度缺少代码片段这样的中间管理单...
🍪
春哥
2022-08-29

极限编程里最容易被忽略的实践

在前面的一篇文章里面我和大家聊过了极限编程的重要性,今天想和大家聊聊极限编程里面最简单但也往往最容易被忽略的实践——编码规范。说到编码规范,每一个开发人员都非常熟悉,每一个团队也都有自己的编码规范。但实际的执行情况如何呢?估计大多数的团队都是形同虚设,编码规范只是存放在文档库里面的一个文档而已。为什么编码规范难以落到实处?我觉得大家都忽略了编码规范的重要性。编码规范是极限编程中一系列实践的基础,认真执行编码规范可以说是极限编程里投资回报率最高的实践。首先编码规范是代码集体所有权的基础。可以想象下春秋战国时期各个诸侯国都有自己的文字,沟通交流的成本比较高,而秦始皇统一六国后迅速统一了文字,有利于...
🍪
春哥
2022-08-26

为什么必须要做极限编程?

自2001年《敏捷宣言》发布之后,敏捷开发已经流行了20多年。这20年来,敏捷开发取得的成果如何?根据The Standish Group的The Chaos Report 2020,敏捷项目的成功率是远高于瀑布开发模式的,但尽管如此,仍有超过一半的敏捷项目是充满挑战、乃至失败的。其中的原因是什么呢?根据《2021年度敏捷状态报告》,实施Scrum的占66%,实施Scrum + XP的有6%,仅实施XP的为1%,总体来看,做极限编程的只有7%。 禅道项目管理软件的《2020年IT行业项目管理调查报告》中也同样有类似的占比,实践极限编程的团队所占比例较低,为6.39%——国内外不同基数、不同...
🍪
春哥
2022-08-25
返回顶部
刘斌
高级客户经理
17685869372
526288068
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。 问题反馈反馈点击这里,让我们聆听您的建议与反馈。