热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

名人堂:MartinFowler

(这是发表在《程序员》杂志2001年第12期上的一篇文章。现在,CSDN海外图书专区正在销售MartinFowler先生的《Refactoring》&#

  

(这是发表在《程序员》杂志2001年第12期上的一篇文章。现在,CSDN海外图书专区正在销售Martin Fowler先生的《Refactoring》,我在海外图书专区“名家接触”讨论栏目放进了Martin Fowler先生的一些资料,与各位共飨。CSDN海外图书专区的地址是:www.csdn.net/overseas)

现在最前卫的软件开发方法是什么?相信很多人都会说:XP(极限编程)。提到XP,就不能不提到作为XP基础的重构(refactoring)技术。而提到重构技术,你就应该认识一下Martin Fowler。
    
    现在,Martin Fowler有一个令人肃然起敬的头衔——ThoughtWorks的首席科学家。这是一家系统集成及顾问公司。2000年三月,他放弃了自己长时间从事的成功的职业,改做一名独立顾问,因为他发现在以前的公司里不能发挥自己的才能。
    
    从80年代开始,他就一直从事软件开发的工作。在80年代中期,他对面向对象开发这个新领域发生了兴趣。他擅长在商业信息系统中加入面向对象的思想。一开始,他在两家公司工作过;后来作为独立顾问,他继续进行这项工作。在早期,他使用Smalltalk和C++,现在使用JAVA和Internet。他在面向对象分析和设计、UML、模式、以及快速开发方法领域都是世界顶尖的专家。
    
    他写过四本软件开发方面的书。《分析模式》是对他商业建模的经验的收集回顾,其中有很多重要的商业对象开发模式。《UML Disilled》是对UML符号、语意以及迭代式开发过程的概览,在1998年获得软件开发生产力奖金,现在已经出到了第二版。《Refactoring》描述了如何以可控的、快速的方式改变现有软件的设计。他最近与Kent Beck合写的《Planning Extreme Programming》则描述了如何进行XP设计。这四本书被全世界的软件开发者奉为经典,尤其是后两本,让软件开发者们看到了快速、灵活的软件开发的可能性。他所描述的重构技术和基于重构的XP方法,被称为“软件开发史上的一次风暴”。世界最大的网上书店AMAZON这样评价他的《Refactoring》:
    
    《Refactoring》告诉你,重构怎样让面向对象的代码更简单、更容易维护。所有的程序员都可以使用重构技术来改进他们的代码。这本书非常清楚的展现了一组改进代码的技巧。作者Martin Fowler同时还精通软件模式和UML,这些经验使这本书更加优秀。无论是面向对象的初学者还是有丰富经验的开发者,都可以从这本书得到立竿见影的利益。《Refactoring》,一本将改变你的编程方式的书。
    
    Martin Fowler在许多软件开发的国际性会议上做过演讲。他还是OOPSLA、软件开发委员会、UML世界、XP2001、TOOLS等几个协会的会员。同时,他还是“分布式运算”杂志的专栏作家。现在,他又为“软件开发”杂志做顾问,同时还为“IEEE软件”写一个设计专栏。
    
    谈到自己的职业生涯,Martin Fowler说:“我从1991年就开始从事顾问的工作了。在那以后,越来越多的公司有了自己的顾问。尽管我很喜欢顾问这个职业,但它不是我生活的全部。我希望独立于公司,这样我可以有时间写作——这才是我生活中最重要的部分。所以,1999年春天,我离开了原来的公司,转而为ThoughtWorks公司工作。这是一家让职员和客户都感到满意的公司。他们给人以最大限度的信任。无数的公司无数次的重复这句话,但是他们真正这样做。这对我很重要,因为我相信,成功的软件开发最重要的因素是被激励的有才华的开发者。如果你无法拥有这个世界上所有的技术和方法,你就应该雇用最好的人并留住他们。ThoughtWorks正是因为这一点而成功——而我也正是因为这一点而喜欢这家公司。”
    
    Martin Fowler现在与他的妻子Cindy一起住在Melrose,马萨诸塞州波士顿市城郊的一个镇上。他的妻子Cindy是一个建筑工程师,在他们闲暇的时候,他们喜欢外出旅游。在夏天,他们会骑车出游;冬天他们则去滑雪。他出生在英国的Walsall,在到美国之前曾在伦敦住了十年。尽管美国没有优质的啤酒、板球和英国的村庄,但他仍然非常喜欢美国。
     


推荐阅读
  • 开发笔记:里氏替换原则
    本文由编程笔记#小编为大家整理,主要介绍了里氏替换原则相关的知识,希望对你有一定的参考价值。1.定义:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2, ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Unit4博客&课程总结Unit4作业的架构设计本单元作业的设计我分为了三个模块处理:模型构建+预处理+任务函数,前两部分即为整个图的完整构建,第三部分即为实现题目要求的查询方法。 ... [详细]
  • 【blockly教程】第五章 循环结构
    在这里,我们将介绍一个新游戏--PondTutor在PondTutor(https:blockly-games.appspot.compond-tutor)这个游戏中 ... [详细]
  • Androidwifi对象属性及简易Demo本章介绍Android开发中WiFi热点和WiFi属性的获取,介绍WiFi的名称、状态等属性以及获取周围 ... [详细]
author-avatar
樊家醪糟律_905
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有