HF_Cherish

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

英文及译文下载链接: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所言。

 

posted on 2014-03-24 18:46  HF_Cherish  阅读(339)  评论(0编辑  收藏  举报