• 欢迎访问青海Sunbet电子科技有限公司官网,我们热忱的期待您能反馈宝贵意见
    服务热线:0971-8175922,156-0971-2256

    行业资讯

    “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      BenNorthrop是一位居住在美国宾夕法尼亚州的程序员,在其40岁之际,受邀在《软件工程日报》的播客中针对“老程序员的编程生涯”话题发表演讲时表示:「我希望能成为马丁·福勒那样的大师,像他那样在生活与工作之间找到平衡点(我敢打赌他的生活绝对安排得多姿多彩)。也可以说,正是因为从知识衰减与积累速率的角度看待问题,我才有了这种释然的心态。」


      这一言论引起了众多人的共鸣,特别是“大龄程序员”。


      谁是马丁·福勒?


      马丁·福勒(MartinFowler)是一位世界级软件开发大师,ThoughtWorks的首席科学家。他毕业于伦敦大学,专攻电子工程与计算机科学专业。他是一位作家、演说者、咨询师和泛软件开发领域的意见领袖。他曾担任XP2005和AgileUniverse大会的议程主席,是敏捷联盟(AgileAlliance)的创建人及《敏捷软件开发宣言》的作者之一,同时还是IEEESoftware杂志的设计专栏作家。


      一直以来,他非常大的兴趣就是了解如何设计软件系统,以非常大化开发团队可以提供的价值。不是十分了解马丁的人可能会认为他是个工作狂,但其实他的生活非常丰富多彩。


      马丁是个桌游爱好者,他认为桌游是一种人人都可以上手但又必须经过深思熟虑才会好玩的棋盘游戏。对于玩桌游,马丁是这么说的:「我喜欢它们,因为桌游具有很强的策略性,所以你需要思考和学习来才能发觉它们的乐趣所在。」马丁在官网上还公开了自己的游戏清单。


      “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      除开游戏,马丁还会和网友分享外出旅游的景色,分享自己家猫咪的故事。


      “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      马丁致力于改善企业级的软件设计,对优秀的设计以及支撑优秀设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP和UML等领域都有卓越贡献,著有《重构:改善既有代码的设计》《分析模式:可复用的对象模型》《领域特定语言》《企业应用架构模式》等经典著作。


      不仅如此,马丁还常常在官网上发表关于构建系统体系结构的文章来和大家交流,他称自己的官网为:


      「Awebsiteonbuildingsoftwareeffectively」。


      当然,马丁不仅仅是一位作者,更是一位满世界飞的杰出演说家。他一方面跟行业伙伴进行深入交流,一方面亲自实践并思考、总结,然后通过出版物、博客、网站、演说等,和大家一起分享他的理念。


      马丁汇聚在软件开发实践应用中的思想理念,却深深影响了行业。


      直到今天,他的演讲或者出版物中的理念都值得反复玩味。马丁也因此被行业内的人称为“书写开发哲学”的人。


      同时,也因为他乐于在社交网络上分享和交流专业知识,人们也亲切地称呼他为“马丁大叔”。


      为了让代码整洁有序,他创作了《重构》


      上世纪90年代,当时还是咨询顾问的马丁·福勒造访客户调研其开发项目。该系统的核心是一个类继承体系,他看了开发人员所写的一些代码,发现整个体系相当凌乱,于是马丁建议项目经理看看这些代码,把它们整理一下。但是项目经理并不热衷于此,毕竟程序看上去还可以运行,而且项目面临很大的进度压力。于是项目经理说,晚些时候再抽时间做这些整理工作。


      马丁也把他的想法告诉了在这个继承体系上工作的程序员,告诉他们可能发生的事情。程序员都很敏锐,马上意识到了问题的严重性。他们知道这并不全是他们的错,有时候的确需要借助外力才能发现问题。程序员立刻用了一两天的时间整理好这个继承体系,并删掉了其中一半代码,功能毫发无损。他们对此十分满意,而且发现在继承体系中加入新的类或使用系统中的其他类都更快、更容易了。


      受此事启发,马丁·福勒撰写了《重构:改善既有代码的设计》第1版。


      “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      重构,一言以蔽之,是在不改变外部行为的前提下,有条不紊地改善代码。20多年前,正是《重构:改善既有代码的设计》第1版的出版,才使得重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。


      如今,马丁·福勒的《重构:改善既有代码的设计》一书已经成为全球有经验的程序员手中的利器,既可用来改善既有代码的设计、提升软件的可维护性,又可用于使既有代码更易理解、焕发出新的活力。


      20年后,备受关注的第2版书籍终于出版,第2版在第1版的基础上做了全面修订,反映了编程领域已发生的许多变化。第2版中介绍的重构列表更加内聚,并用JavaScript语言重写了代码范例。此外,第2版中还新增了与函数式编程相关的重构范例,旨在教会读者如何在没有类的环境下开展重构。


      新版沿袭了第1版的结构,依次解释什么是重构,为什么要重构,如何通过“坏味道”识别出需要重构的代码,以及如何在实践中成功实施重构(无论用的是什么编程语言):


      理解重构的过程和重构的基本原则;


      快速有效地应用各种重构手法,提升程序的表达力和可维护性;


      识别代码中能指示出需要重构的地方的“坏味道”;


      深入了解各种重构手法,每个手法都包含解释、动机、做法和范例4个部分;


      构建稳固的测试,以支持重构工作的开展;


      理解重构过程的权衡取舍以及重构存在的挑战等。


      时隔20年,马丁结合当下软件开发行业的实际情况,更清晰地揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。


      这是一本值得软件开发人员、项目管理人员等细细品读的好书,同时也适合高等院校计算机及相关专业师生作为参考读物。


      《分析模式》建立起业务人员和开发人员的桥梁


      “软件开发是一个年轻的专业,我们仍在学习技术并构建有效地实现它的工具。”


      ——马丁·福勒《分析模式:可复用的对象模型》


      在ThoughtWorks担任对象建模顾问期间,马丁·福勒需要为客户提供建模指导。然而,将大量建模所积累的经验传达给别人并不能帮助企业的员工掌握到核心技巧。后来他意识到,将以前创建模型的经验汇总的同时,还要改进它们以适应新的需求。在当时,市面上有很多图书会用简化的案例讲述这一抽象的理论,不少开发者阅读后无法真正理解,更难以运用到实际应用中。


      典型的方法论固然有价值,但是只是学习的第一步,开发者还需要通过实际开发中创建的产物来进一步学习。


      于是,马丁·福勒决定将自己多年的经验汇集于《分析模式:可复用的对象模型》中,他将以往真实项目作为案例背景,然后以“模式”的方式进行归纳,生动形象地把分析模式完整的核心理念传达给读者。马丁·福勒认为,建模人员不应该仅关注过程,即如何建模,还应当关注过程的结果,即所得到的模型本身。


      “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      典型的方法论书籍只关注工具和技术,大家期望有一本书能够突破这一局限,而这本开创性的著作正好满足了这一需求。在本书中,作者关注的是面向对象分析和设计的非常终结果,也就是模型本身。作者在本书中分享了丰富的对象建模经验,以及识别重复问题并将其转化为可复用的模型,并给出了一系列来自不同领域(包括交易、测量、会计和组织关系等)的模式。


      概念模式无法孤立地存在,基于这一认识,作者还给出了一系列“支持模式”。这些模式探讨了如何将概念模型转化为软件,并使其适合于大型信息系统的架构。对每种模式的讲解都包含了其背后的设计思路、应该(或不应该)使用这些模式的时机以及实现的诀窍。本书中展示的例子构成了一本实用手册,既包含有用的模型,又涵盖对复用技能的深刻洞见,这些都有助于改进分析、建模和实现。


      要开发复杂的企业应用,先要为业务领域建立准确而深刻的分析模型。本书不是通过简化的案例讲述抽象的理论,而是直接给出来自真实项目的复杂模型,并以“模式”的方式进行归纳。本书不仅包括这些模式本身,还体现了作者丰富的实践经验和对建模技术的深入洞见。本书主要包括两部分:


      第一部分介绍来自人员与组织管理、观察与测量、存货与会计、计划、金融衍生品交易等多个业务领域的“分析模式”;


      第二部分则给出一系列“支持模式”,用于将分析模型实现为具体。


      具有一定经验的架构师、业务分析师以及高级开发人员通过研读本书可以很快将书中的模式和思路应用于实践,有效提高开发水平。软件开发的入门者阅读本书尽管未必能立刻领悟其全部内涵,但也足以打开一扇通向新境界的窗户,为日后的提高奠定基础。


      分析模式和重构思想对当下程序员的启发


      「任何一个傻瓜都可以写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员。」


      马丁·福勒认为创建具有良好架构的软件并非一蹴而就的事情。就像优秀的散文一样,软件也需要定期进行修订,并且程序员应了解产品的更多功能需求以及如何才是实现其目标的优秀产品设计。


      重构是一种支持安全地对程序进行更改的重要技术。它所包括的一些小更改不会改变可察觉的软件行为。通过组合多项小更改,开发人员可以修改软件的结构,以支持在非常初构思系统时未计划的重大修改。


      软件如果仅在开发人员机器上运行,就无法为软件客户提供价值。一直以来,发布软件都是一个漫长而复杂的过程,这无法满足软件快速演变的需求。持续交付采用自动化和协作式工作流程来消除这一瓶颈,使团队可以按照客户所需的节奏发布软件。为了使持续交付成为可能,我们需要建立坚实的测试基础,通过一系列自动化测试来确保自己的更改不会带入任何错误。这促使我们将测试集成到编程中,从而改善我们的架构。


      作为程序员,掌握了「重构」和「分析模式」既可以往上游去探索需求的梳理,用户痛点的分析,业务价值的挖掘,又可以向下游梳理测试的编写,产品的发布,运维监控。视野开拓了,才有可能对产品有整体的了解,也更容易在程序员这个角色上做得更好。


      “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      重构:改善既有代码的设计(第2版)


      作者:[美]马丁•福勒(MartinFowler)


      译者:熊节,林从羽


      重构改善既有代码的设计(第2版平装版)(异步图书出品)


      ¥73.7


      购买


      重构改善既有代码的设计第2版平装版


      作者:[美]马丁·福勒(MartinFowler)


      当当


      内容简介:


      本书清晰揭示了重构的过程,解释了重构的原理和优秀实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。


      “希望成为马丁·福勒那样的大师”,40岁程序员谈职业理想


      分析模式:可复用的对象模型


      作者:[美]马丁·福勒(MartinFowler)


      译者:钟敬


      分析模式:可复用的对象模型


      作者:[美]马丁·福勒(MartinFowler)


      当当


      内容简介:


      要开发复杂的企业应用,先要为业务领域建立准确而深刻的分析模型,本书不是通过简化的案例讲述抽象的理论,而是直接给出来自真实项目的复杂模型,并以“模式”的方式进行归纳。本书包括两部分:第一部分介绍了来自人员与组织管理、观察与测量、存货与会计、计划、金融衍生品交易等多个业务领域的“分析模式”;第二部分则给出一系列“支持模式”,用于将分析模型实现为具体的软件。具有一定经验的架构师、业务分析师以及高级开发人员通过研读本书可以很快将书中的模式和思路应用于实践,有效提高开发水平。软件开发的入门者阅读本书尽管未必能立刻领悟本书的全部内涵,但也足以打开一扇通向新境界的窗户,为日后的提高奠定基础。