小伙伴关心的问题:软件jack(软件教程网),本文通过数据整理汇集了软件jack(软件教程网)相关信息,下面一起看看。

软件jack(软件教程网)

If youre afraid to change something it is clearly poorly designed.

这是世界范围内知名的软件工程师、作家、演说家Martin Fowler的一句名言,意思是“如果你害怕改变某些内容,那么明显是设计不佳”,这也是许多软件开发者对软件设计的评判标准。他在软件设计、模式、敏捷开发上的诸多观点、理论,影响了无数开发者,甚至有人说他改变了人类开发软件的模式。

今天,小异就和大家一起来看软件开发大师Martin Fowler的故事。

▲ Martin Fowler(来源其个人网站)

01

寻求设计之道

Martin Fowler 1963年冬季出生在英格兰中部的沃尔索尔地区,一直到他在玛丽女王的文法学校读完中学之前,没有离开当地。在十七八岁的年纪,他开始接触计算机,并且对在上面运行的程序软件开始感兴趣。被伦敦大学学院录取之时,他便选择了电子工程与计算机科学专业,并在1986年毕业后进入了普华永道从事软件开发工作。

这段时间,他对编程本身进行了思考,重点关注领域、分析、设计、概念建模等内容。并形成了这些方面思想的早期思路,为他之后的软件开发、写作提供了非常坚实的基础。当时,他一直努力做的是一件事,就是寻找一个更简单方法或者是规则来帮助进行软件设计。

他曾表示伦敦普华永道的团队帮助他完成了许多关于分析模式的早期工作,并陪他在Smithfields炸鸡店度过了许多夜晚。

1991年,他因为想独立写作,成为了一名独立顾问。

1994年,他离开伦敦移居美国波士顿地区。在那里他曾担任建模顾问,帮助客户对员工进行建模培训并为项目提供指导。在此期间,他认识到模式在软件设计中至关重要,他认为:模式为我们提供了我们关注的目标;并且为我们提供了一种调整设计美学的方法,作为优秀的例子,我们能够从中学到很多东西。

所以,在1996年他出版了一本《分析模式:可重用的对象模型》,成为当时面向对象分析和设计人员、建模项目中的领域专家等读者的常备书籍。

▲ 分析模式:可重用的对象模型

之后,他还出版过《UML Distilled:标准对象建模语言简要指南》,在软件设计的道路上不断探索。

02

让世界重新认识重构

当时,“重构”最早出现在Smalltalk圈子,并很快进入了其他编程语言阵营,成为所有开发者必须面对的问题。

Martin Fowler曾造访调研一个客户的开发项目,他发现该项目整个系统相当混乱,继承体系在类的处理上有许多问题。他提供了一些方法来处理这些问题,但是在面对核心部分进行整理的时候,却失败了——因为整个项目代码太复杂,无法调试到可接受的水平。之后,该项目重启,几乎从头开始编写整个系统,Kent Beck(极限编程的创造者)成为了顾问,他做了一件让Martin Fowler极受启发的事情——坚持以持续不断的重构行为来整理代码,之后团队效能得到了巨大的提升。

这件事激发了他写一本书的冲动,让他想把Kent和其他人已经学会的“以重构方式改进软件质量”的知识让更多人知道。

于是在1999年他写出了这本让重构领域为之欢呼的《重构:改善既有代码的设计》,以一系列重构方法为核心,解释重构的原理和最佳实践,帮助广大软件开发者改善自己的代码设计。在书中他指出:重构是在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构的过程。也就是说,重构的本质其实就是在代码写好之后改进他的设计。

他强调,重构的每个步骤都很简单,甚至显得过于简单:只需要把某个字段从一个类移到另一个类,把某些代码从一个函数拉出来构成另一个函数就可以了。但就是这些小小的修改步骤,滴水成河,积累起来就可以从根本上改善代码设计的质量——对应了该书籍的名字“改善既有代码的设计”。

也正如他自己所言,对于一本编程书而言,18年已经太漫长。因此在2018年,他对该书进行了全面“重构”,在保留其精髓的前提下,进行了重大修订:使用更简洁、更易懂的JavaScript展示代码范例;删除了老旧不适合当下编程习惯的重构方法。

▲ 《重构》的全新“重构”版本

《重构》的出版之后,越来越多的开发者加入重构领域,为推动该领域发展做出了诸多贡献。而Martin Fowler也成为重构领域的大师级人物,他的理念与方法影响了无数开发者。

不过,他对此非常自谦,认为:

I dont come up with original ideas, but do a pretty good job of recognizing and packaging the ideas of others

我没有提出原创的想法,但在识别和包装他人的想法方面做得很好

03

谦逊的大师

2000年,Martin Fowler加入ThoughtWorks公司,并担任其首席科学家。他认为ThoughtWorks公司对人和客户的态度非常符合自己的观点:他们(ThoughtWorks公司)确实相信人是他们最大的资本。在那儿,他为大型企业客户提供关于统一建模语言、重构、分析模式等问题的解决方案。他认为对成功软件开发影响最大的是有动力的人才。

很有趣的是,他谦逊地称自己这个“首席科学家”头衔是“exceedingly inappropriate”(非常不合适的)。因为他认为自己不是任何人的首领,也不做任何科学。在他看来,他的主要角色是帮助他的同事发现和传播自己在软件开发方面学到的知识。

2001年,他与16位其他著名的软件开发者在犹他州雪岛的一个度假村会面,讨论轻量级开发方法,起草并签署了著名的敏捷软件开发宣言。

▲ 敏捷软件开发宣言

在谈论敏捷原则的时候,他强调道:

与其把重点放在流程和工具上,作为进一步发展软件开发组织的一种方式,不如把重点放在团队中的人员、个人以及他们在个人层面上的互动方式上,这更有价值。

但是,这不仅仅涉及提高技能,同时还要注重让开发人员更快乐,以便让更有能力的人留下来。这对团队的启发,是应该让团队选择他们软件的流程,然后让这个流程适合团队,而不是相反选择一个流程让团队去适合它。

之后几年,他一直开始关注领域特定语言的内容,在2010年出版了具有很强影响力的《领域特定语言》,成为领域特定语言(Domain-Specific Language,DSL)领域的丰碑制作。

▲ 领域特定语言的奠基性作品

这本《领域特定语言》介绍了广泛的DSL技术,探索了DSL可用的各项技术的广度。读者能够从中学会各种DSL的构建方法,并且知道什么时候适合使用何种DSL。

在这些领域的探索,让他成为真正的大师,同时他又保持了谦逊。尽管大多数人被他的思想影响在软件设计上获得了许多成功,他依然认为自己“欠很多人人情”,是站在前人的肩膀上,在他人的基础上做了一些自己的“包装”工作。

他有一个网站,最初是用来发表自己文章的地方,后来因为太过知名,吸引了大量的读者,索性用来发布一些其他同事的文章。

▲ Martin Fowler个人网站最新文章

04

编程之外

从中学开始,Martin Fowler就喜欢战略棋盘游戏,而最近他还经常在电脑上玩此类游戏。在自己的网站上,他还给大量此类游戏进行了认真地评分和推荐。

▲ Martin Fowler在个人网站上分享的对棋盘游戏的评分

同时,他还沉迷于摄影,也分享了许多随手或者精心拍摄的作品。

▲ Martin Fowler在个人网站上分享的摄影作品

他的妻子是一位软件架构师,在工作之外,徒步运动是他们假期的主要活动。而戏剧,同样是他们的共同爱好,在波士顿各个剧场探索也是他们一大乐趣。

05

学习大师的一切

不论是在领域特定语言领域,还是重构领域,还是分析模式领域,Martin Fowler都给我们总结了大量有效的经验方法,给无数开发者指明了一条开阔而明朗的软件设计之路。

同时,他又是一名谦逊的大师,我们在学习软件开发技术与思想的同时,也应当注意到,谦逊也是开发者美好的品德。

更多软件jack(软件教程网)相关信息请关注本站,本文仅仅做为展示!