首页
学习
活动
专区
工具
TVP
发布

程序袁的专栏

敏捷教练养成,https:://yuanshenjian.cn
专栏作者
20
文章
22200
阅读量
20
订阅数
人人都“会”的站会
每日站会,英文Stand-up,跟Scrum框架中说的Daily Scrum是一个事儿。
袁慎建@ThoughtWorks
2020-07-16
2.4K0
为什么敏捷估算采用斐波那契数列?
我在ThoughtWorks经历的一些敏捷交付项目中,估算方式有采用人天的“绝对”估算,估算值采用的是自然升序序列,比如1、2、3、4、5... 。也有采用复杂度相对估算,估算值有采用自然升序数列的,最多的还是斐波数列(1,2,3,5,8,13,21,34.....,前头去掉了一个1)。我还听过一种相对估算,估算值采用衣服尺寸,比如:S,M,L,XL,XXL,XXL。由于经验匮乏,这种估算我本人只是听说过,实际中没有经历过,但我对这种估算是心存疑虑的...
袁慎建@ThoughtWorks
2020-05-08
1.5K0
聊聊面向对象设计中的Is-A
面向对象编程范式得到了广大开发者的青睐,在做面向对象软件设计的同仁也或多或少曾经心存困惑过。比如,怎么样才是正确的封装?如何恰当的继承?何时应该抽象? 对于设计,我们很难说对与错,通常只有好与不好的区分,而所谓的最佳实践也只是 -- 在当前约束下,人们所能找到的最佳解决方案。
袁慎建@ThoughtWorks
2020-04-16
5270
简单聊聊契约式设计(上)
我在阅读Bob大叔的《敏捷软件开发:原则、模式与实践》第十章的时候第一次接触Design by Contract这个概念。Bob大叔在讲述面向对象设计SOLID原则中的LSP(Liskov Substitution Principle)时,就借助DbC的设计思想来支撑LSP[1]。关于DbC,我将用两篇文章来简单聊聊。
袁慎建@ThoughtWorks
2020-04-16
5840
简单聊聊契约式设计(下)
在 上一篇文章 中通过里氏替换原则的示例,Bob大叔抛出了一个观点 – 做模型设计的时候,要基于客户程序使用的角度去审视模型的有效性。这就需要我们要去猜测客户程序的一些”合理”的假设。当一个事情需要靠猜测的时候,我们总会觉得心里不安。Bob大叔提到DbC这项技术,能够帮助我们来明确用户的合理假设。本文来聊聊如何借助DbC的设计思想来加持LSP。
袁慎建@ThoughtWorks
2020-04-16
1.4K0
简单设计
经常听到程序员们针对代码设计的一些讨论,A对B说:“我的这个设计用了策略模式和状态模式,假如后面客户会有这样的需求,可以无缝扩展,无比健壮。” B听着一脸狐疑,心中已经念叨了数遍 :"哼,这就是典型的过度设计",但B也不好说出口,因为上周才因为过度设计的分歧打了一次口水仗了。
袁慎建@ThoughtWorks
2020-04-15
6410
面向对象设计SOLID原则
做了这么多年的面向对象编程还是写出违背SOLID原则的代码,一看都懂、一做就被怼,敏感度不够,如何是好?
袁慎建@ThoughtWorks
2020-04-15
9470
让里氏替换原则为你效力
从事软件开发的朋友或多或少都听过以下一些原则:比如KiSS、DRY、LKP、COC、DbC、SoC、HP、SOLID等。这些原则已经在业界被证实了自身的价值,尤其当谈到面向对象设计的时候,SOLID则是一个避不开的主题。
袁慎建@ThoughtWorks
2018-12-26
1.1K0
Scrum需要一个双刃团队
1993年,Jeff和Ken开创了Scrum,至今已经有25年之久。如今敏捷开发也不是什么流行词儿,不少IT组织已经走在敏捷转型的路上,还有一部分组织则刚痛下决心抛弃瀑布式计划型开发模型,试图采纳敏捷开发框架(比如Scrum)。但大部分组织即便拼得遍体鳞伤,仍然无法按期交付卓越的软件,最后要么放弃,要么就医 -- 引入专业敏捷咨询师,ThoughtWorks已帮助业界诸多大型组织成功地敏捷转型。
袁慎建@ThoughtWorks
2018-11-30
5560
深入解读敏捷宣言
犹他州(Utah)的雪鸟城(Snowbird)是一个不太可能发生软件革命的地方,它位于盐湖城外约25英里的地方,一点都不像硅谷:既不以阳光和温和的气候闻名,也不是什么科技创新中心,更没有那么多充满热情的企业家。但就在这里,一个滑雪胜地,一群具有反叛性的软件开发人员于2001年2月聚集在一起,经历了为期三天的讨论,他们制定并签署了行业历史上最重要的文件之一:敏捷宣言。
袁慎建@ThoughtWorks
2018-11-26
1.2K0
简单设计落地三板斧
如果你认同 简单设计的价值观,我相信 解析简单设计原则 对你来说很容易理解并接受,它不像面向对象设计原则(比如:SOLID)那么晦涩难懂,它给你指明了一条明朗可通行的道路。即便如此,前进的道路依然不是一帆风顺,尤其对于新手来说,怎么将这些已经很接地气的原则更高效地落地,从而创造更大的价值,本文我将分享帮助我们落地简单设计的三板斧:TDD、重构和整洁代码。
袁慎建@ThoughtWorks
2018-11-22
6340
解析简单设计原则
在 我的简单设计价值观 一文中,我分享了我在实践中形成对简单设计的理解。而提到价值观,平时跟同事讨论某个技术实践的时候,一旦触碰到价值观,我就会很谨慎,因为在两个人价值观不同的前提下,去讨论一项实践的好坏,很可能在面红耳赤之后不欢而散。
袁慎建@ThoughtWorks
2018-11-21
1.4K0
我的简单设计价值观
很多时候,我们习惯把简单跟容易理解为是一个意思,比如:这个问题好简单(复杂),另一层含义是:解决这个问题很容易(困难)?这个时候简单跟容易是一个意思。再比如说:我真羡慕她能过如此简单的生活。另一层含义是什么呢?我们先来看一张图:
袁慎建@ThoughtWorks
2018-11-20
1.1K0
ThoughtWorks给你不一样的入职之旅
ThoughtWorks是一家极具创造力的公司,在这里,人才是最重要的资产。如果你以应届生的身份加入TW,你将获得5周的出国留学机会(ThoughtWorks University,简称TWU),如果你通过社招加入TW,你会获得为期三天的TWI。除了TWU、TWI,TW还提供诸如NHO、Session、Workshop、Buddy/Sponsor、TL、极光计划(领导力)等数不胜数的培训。所有这些培训都在让你的职业之旅变得不一样。
袁慎建@ThoughtWorks
2018-11-19
1.2K0
从另一个角度告诉你单元测试的意义
当下微服务如火如荼,各个团队在争先恐后推出微服务,不论在概念上还是在实践上,如果自己没有跟微服务挂上钩,便会被贴上落伍的标签。我们在推微服务的时候,我们说微服务架构具备如下优势:
袁慎建@ThoughtWorks
2018-09-29
1.5K0
一枚程序员眼中的单元测试
如今程序员群体赶上了中国最庞大的农民群体,大街上随便抓一把,十有八九是程序员,还一个刚从某国企离职报名参加软件培训班。我想码农的称号或许就是这么来的吧。
袁慎建@ThoughtWorks
2018-09-29
1.2K0
微服务架构下的测试应对策略(下)
消费者驱动契约测试的流程是,消费者定义他们期望的API或消息是什么样子,这些期望即为契约,从这些契约可以生成存根,此后消费者团队可以在构建过程中重复使用它们。消费者和生产者都需要验证契约。
袁慎建@ThoughtWorks
2018-09-29
1.1K0
改善程序员生活质量的 3+10 习惯
2017年的一天,代码伴随着手指极具节奏感地输出在IDE上,突然某Chrome插件弹出一封邮件提示:“今天是我在ThoughtWorks的最后一天”。遇到这种离职邮件,我都会点进去,一来看看是否是自己曾经共事的小伙伴,二来了解一下小伙伴离职的原因。离职原因无出其右:跳出去接受更有挑战的机会。但这次我受惊了:因为患有严重的颈椎病,去寻求治疗…
袁慎建@ThoughtWorks
2018-09-29
4530
我在ThoughtWorks中的敏捷实践
E项目是一个在线的物资跟踪监控系统。由ThoughtWorks团队为客户提供的一套完善的软件交付服务。
袁慎建@ThoughtWorks
2018-09-29
1.8K0
微服务架构下的测试应对策略(上)
伴随着互联网的快速发展,Web应用系统从面向企业内部发展到面向市场用户,业务的日趋复杂以及用户量的上升,那些曾经工作良好的单体应用开始遇到开发、测试、部署、发布各个方面的瓶颈,诸如扩展新增功能艰难、系统庞大难以维护、编译太耗时,发布流程太慢等问题困扰着开发团队。
袁慎建@ThoughtWorks
2018-09-29
1.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档