英文及译文下载链接:http://pan.baidu.com/share/link?shareid=163291504&uk=1428554614

1、文章主题总结

首先我们从文章的几个小标题看每部分讲了哪些:

1.1 What's  architecture?

作者在写他的著作 Patterns of Enterprise Application architecture 中尝试将architecture定义为:define architecture as a word we use when we want to talk about design but want to puff it up to make it sound important. 即Martin认为architecture一词被滥用,大家在想要说明某个东西重要时,就加上architecture这个名号。

另外Martin赞同Ralph Johnson的观点:对architecture的定义依然是:组件和组件交互的接口。不同的是,这些组件和接口是被expert developers所共同认可的。他强调人的重要性。expert developers认为重要的才是真正重要的,才是可以加到architecture里的。并且不是一个人,而是一群人,因为本来软件开发就不是一个人的活动。

1.2 The architect’s role

architect不应该是做所有决定的人,而是一个guide。guide本身是skilled,experienced的team成员,他引导其他人,保持与整个团队的通讯,从全局上指导developers更好的开发,并进而提高整个team的abilitity。

1.3 Getting rid of software architecture

开发过程中,change是不可避免的,所以我们采用这样的开发方法,它可以消除程序的不可变性(敏捷开发就是其中的一种方法)。而architecture可以define为人们认为程序中难以改变的成分。我们的目标是去不可变性(irreversibility),所以我们要去architecture。

2、我的观点

Martin很重视人在software development中的角色。现在软件理论技术实际上已经比较完善,但是项目开发依然面临很多问题,这些问题是因为缺乏真正的expert人才。有这样一张图:

从图中看出,programmers很多,但各公司依然在喊急缺,因为他们要的是experienced programmers。所以,人是目前software development成功与否的关键。

architecture很重要的一点是社交性。因为它不但依赖于软件,而且依赖于软件的什么部分是重要的,而其重要性是开发组大多数人的共识。这个很重要。因为一个搞土木的朋友曾说:建筑设计师做出的东西都很不负责,他们只为了好看,都不考虑设计出那样的图,是否真的可以实现。好多地方的承重什么的,他们都没有考虑。但是最终出名的都是他们。

因此有专门一个architect的组织不够合理,他分离了architect和programmer(真正的实施者)。因此拥有一个像guide那样的人很重要,如who needs an architect所言。

Who needs an architect?---Martin Fowler的更多相关文章

  1. 微服务(Microservices)—Martin Fowler【翻译】

    本文转载自:http://www.cnblogs.com/liuning8023/p/4493156.html -------------------------------------------- ...

  2. (转载)持续集成(第二版)[来自:Martin Fowler]

    转载自:iTech的博客 持续集成(第二版) 作者:Martin Fowler 译者:雷镇 持续集成 是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以 ...

  3. 马丁 福勒 Martin Fowler 关于依赖注入和反转控制的区别

    马丁 福勒 Martin Fowler 关于依赖注入和反转控制的区别 http://martinfowler.com/articles/injection.html 中文翻译:http://files ...

  4. <转载> 22种代码味道(Martin Fowler与Kent Beck) http://blog.csdn.net/lovelion/article/details/9301691

    Martin Fowler在Refactoring: Improving the Design of Existing Code(中译名:<重构——改善既有代码的设计>)一书中与Kent ...

  5. 福勒(Martin Fowler)

    福勒(Martin Fowler),在面向对象分析设计.UML.模式.软件开发方法学.XP.重构等方面,都是世界顶级的专家,现为Thought Works公司的首席科学家.Thought Works是 ...

  6. Martin Fowler关于IOC和DI的文章(中文版)

    IoC容器和Dependency Injection模式 Martin Fowler 编者语:最近研究IoC,在网上搜索到很多网页推荐阅读Martin Fowler的一片名叫Inversion of  ...

  7. Martin Fowler关于IOC和DI的文章(原版)

    Inversion of Control Containers and the Dependency Injection pattern In the Java community there's b ...

  8. MARTIN FOWLER谈敏捷开发

    转自:http://www.scrumcn.com/agile/scrum-knowledge-library/agile-development.html#tab-id-9 每个人都在谈论敏捷开发( ...

  9. 什么是微服务 Martin Fowler的microservices

    https://martinfowler.com/articles/microservices.html https://martinfowler.com/microservices/ 微服务,最早由 ...

随机推荐

  1. [转]在 Windows Server 2012 上安装 IIS 8

    本文转自:http://www.starland.net.cn/blog/view/158/1.aspx 本文译自:http://learn.iis.net/page.aspx/1088/instal ...

  2. 关于在Eclipse中构建patch开发环境

    git仓库中不能添加空文件夹. 至于为什么git 仓库中不能添加空文件夹,我没有找到具体的原因. 在V2EX上有人说: 我猜是因为git的内部实现,即只对文件做快照决定的吧,另一方面空文件夹确实对源代 ...

  3. 【组合数的唯一分解定理】Uva1635

    给出n.m,求得最终求和数列an=C(n-1,0)*x1 + C(n-1,1)*x2+...+C(n-1,n-1)*xn; 若xi与m无关,则an除以m的余数与xi无关,即余数不含xi的项: 输入:n ...

  4. MakeFile 文件详解

    GNU的make工作时的执行步骤入下:(想来其它的make也是类似)      1.读入所有的Makefile.      2.读入被include的其它Makefile.      3.初始化文件中 ...

  5. T-SQL利用Row_Number函数实现分页

    SQL: CREATE PROCEDURE PagingViewTest ( @currentPageIndex INT, --页序号 @pageSize INT, --页大小 @pageCount ...

  6. HDOJ2023求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  7. ios app名字的多语言支持

    经测试,不同版本的xcode会有操作细节不同,本次环境xcode6.4 1)编辑Info.plist,添加一个新的属性Application has localized display name, 设 ...

  8. python - 图例显示中文

    # -*- coding: utf-8 -*- """ Created on Mon Nov 30 13:24:00 2015 @author: jx_luo " ...

  9. OpenMP多线程linux下的使用,简单化

    http://hi.baidu.com/diwulechao/item/bc6d865c411b813c32e0a932 http://www.cnblogs.com/yangyangcv/archi ...

  10. 使用ptrace向已运行进程中注入.so并执行相关函数

    这个总结的很好,从前一个项目也用到这中技术 转自:http://blog.csdn.net/myarrow/article/details/9630377 1. 简介 使用ptrace向已运行进程中注 ...