当前位置: 首页 > news >正文

敏捷宣言创始人:十年之后看“修炼”

于2009年9月11日召开的敏捷中国大会2009上,极限编程创始人Kent Beck、敏捷宣言创始人之一Dave Thomas,国际敏捷权威专家Fred George,以及众多国内外专家讲师分享了他们敏捷实践体会和心得。

作为敏捷宣言的创始人之一,在Dave Thomas看来,敏捷并不是一个全新的事物,凡有经验的程序员在编程实践经验中都会逐渐摸索总结并应用到这些方法。

Dave Thomas在敏捷中国大会上演讲

Dave是《程序员修炼之道》(The Pragmatic Programmer)一书的作者。十年前,Dave Thomas和Andy Hunt合著了这本经典畅销书。此后的十年间,软件行业发生了翻天覆地的变化:敏捷软件开发盛行,单元测试和测试驱动开发在更多开发人员的工作中扮演着越来越重要的角色,从并行计算到网格计算再到云计算。Dave Thomas谈到,过去的十年中,很多东西已经过时,比如十年前使用的工具现在已少有人用。但是很多编程的基本理念并没有发生变化。可能某些细节已经过时,但是基本思想是不变的。

比如,“破窗”理论。所谓“破窗”理论是说,如果一幢建筑中开始有破窗户,大家就会认为这幢建筑无人管理和维修,也意味着将有越来越多破窗户出现。“破窗”理论说明如果出现小问题时不修改,更大的问题就会出现。因为如果大问题是从中等问题产生,而中等问题又是由小问题产生,那么我们就可以从源代码就杜绝问题的出现。这种保证代码质量的方法在《程序员修炼之道》中被大力推广。

再比如,DRY原则。所谓DRY(Don't Repeat Yourself),强调不要自我重复。作为一种架构设计思想,DYR所提倡的就是在软件开发过程中应消除所有自我重复,大到标准、框架、开发流程;中到组件、接口;小到功能、代码均纯存在自我重复。当然,Dave也表示,模式并不是所有问题的灵丹妙药。

再比如,消除耦合,保持每部分代码的独立性。这样做的好处是易于管理和重用。其他的基本思想还包括源代码控制、单元测试、自动化和迭代开发等。Dave结合近十年的技术发展对这些理念重新进行了梳理。

Fans在请Dave Thomas在书上签名

最后,Dave表示,“敏捷并不是一个产品。敏捷的产生,是因为当初我们犯了错误,所以我们总结出4条原则,希望节省后来人的时间。但是,学习敏捷不能模仿,不是复制,更不能抄袭。敏捷是一种思想,它需要的是行动者(Actor)。”

原文链接:http://tech.it168.com/a2009/0921/734/000000734229.shtml

转载于:https://www.cnblogs.com/mixer/archive/2010/08/05/2448804.html

相关文章:

  • ArcSDE vs. Oracle Spatial 17
  • 【转】人际关系经验
  • ArcSDE vs. Oracle Spatial 18
  • Entity Framework Code-First(下)
  • 《ArcSDE vs. Oracle Spatial》 PDF
  • 表单向Servlet提交参数时的中文乱码问题
  • Ubuntu10.04下Zend Studio7.1.2 开发环境配置日志
  • Lucid Lynx使用感受
  • Oracle日期转换函数的格式参数大小写规则【转自ITPUB】
  • 从△走进OO,走进策略模式
  • 如何花钱让2000元的月收入工资价值最大化?
  • uploadify可以获取到自己定义上传的文件名称的方法
  • ubuntu下arm-linux-gcc的安装
  • vs2005 创建dll 和exe文件[转]
  • Ubuntu下的多线程下载工具:MultiGet;并与 Firefox 建立关联
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【前端学习】-粗谈选择器
  • egg(89)--egg之redis的发布和订阅
  • github指令
  • JAVA多线程机制解析-volatilesynchronized
  • Mybatis初体验
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Terraform入门 - 3. 变更基础设施
  • Vue2 SSR 的优化之旅
  • 闭包--闭包之tab栏切换(四)
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 思维导图—你不知道的JavaScript中卷
  • 用mpvue开发微信小程序
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 最近的计划
  • C# - 为值类型重定义相等性
  • ​如何防止网络攻击?
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • (day6) 319. 灯泡开关
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .NET CLR Hosting 简介
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net 高效开发之不可错过的实用工具
  • .net打印*三角形
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .net网站发布-允许更新此预编译站点
  • @Query中countQuery的介绍
  • @取消转义
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [IE 技巧] 显示/隐藏IE 的菜单/工具栏
  • [MongoDB]------windos下的安装部署与基础使用
  • [NISACTF 2022]sign-ezc++