今天读了王建民老师推荐的一些资料《架构漫谈》(王概凯)收益很大。王概凯先生一共写了九篇文章,从第一篇到第九篇循序渐进,思路清晰,就算是我这样的初学者也可以读得懂。
这九篇文章的题目分别是这样的:“什么是架构”、“认识概念是理解架构的基础”、“如何做好架构之识别问题”、“如何做好架构之架构拆分”、“什么是软件”、“软件架构到底解决什么问题”、“不要空设架构师这个职位,给他实权”、“从架构的角度看如何写好代码”、“理清技术、业务和架构之间的关系”;
从初学者的角度我个人写一下自己从这就篇文章中分别吸收到了那一些知识。“什么是架构”这篇文章在第篇就解答了我作为一名懵懂学生的疑惑:我们跟者老师学习架构,到底架构是个什么东西呢,它能给整个项目带来什么好处或者起着什么作用呢?王概凯先生在他的第一篇文章中(按照个人的理解)是这样说的:在了解什么是架构之前我们先要了解为什么会产生架构;那就是当一群人或者一个项目组同时工作的时候,由于每个人的能力是有限的,而且每个人的专长是有所不同的,所以为了达到资源利用最大化,我们需要对现有的资源进行重新的分配,然后获得任务的个体与其他的个体进行有效的沟通,共同完成一个目标。王概凯先生这样总结架构产生的原因
1. 必须由人执行的工作(不需要人介入,就意味着不需要改造,也就不需要架构了)
2. 每个人的能力有限(每个人都有自己的强项,个人的产出受限于最短板,并且由于人的结构限制,同时只能专注于做好一件事情,比如虽然有两只眼睛,但是只能同时专注于一件事物,有两只手,无法同时做不同的事情。ps. 虽然有少部分人可以左手画圆右手画框,但是不是普遍现象)
3. 每个人的时间有限(为了减少时间的投入,必然会导致把工作分解出去,给擅长于这些工作的角色来完成,见 2,从而缩短时间)
4. 人对目标系统有更高的要求(如果满足于现状,也就不需要进行架构了)
5. 目标系统的复杂性使得单个人完成这个系统,满足条件 2,3(如果个人就可以完成系统的提高,也不需要别的人参与,也就不需要架构的涉及,只是工匠,并且一般这个工作对时间的要求也不迫切。当足够熟练之后,也会有一定的架构思考,但考虑更多的是如何提高质量,提高个人的时间效率)。
至于第一节的目标什么是架构,总结来说就是:给系统制定边界(需要需求分析),然后将目标系统按照模块进行拆分,最后将拆分好的内容分配到个人手中,做好每个人在工作中的协调交流工作。
关于第二篇文章“认识概念是理解架构的基础”我觉得和第三篇“如何做好架构之识别问题”结合起来理解更加容易一些,说了那么多个人就收获了一个关键点:在分析问题或者在做架构之前一定要抓住问题的根本原因(有意向的读者可以读原文中“切土豆”的那个例子非常直白明了),当我们去解决一个问题的时候,一定要先把问题搞清楚,找出问题的主体,发现项目中存在的隐藏问题这才是一个合格的架构师应该具备的素养。
原文:http://www.cnblogs.com/aishangtaxuefeihong/p/6495013.html