架构漫谈之感想

把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。

要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要。做架构的时候,很多时候都是在一个新的领域解决问题,必须要快速进入并掌握这个领域,然后才能够正确的解决问题。

做好架构首先需要做的就是识别出需要解决的问题。我们平时的一些口头语可能缺乏主语,而我们大家都心照不宣的忽略这个主语,沟通的时候也都以为大家都懂得对方说的主语是谁,结果闹出大笑话。识别问题的一个最大的前提就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。找出问题的主体,是做架构的首要问题。架构师要解决的,基本都是别人的问题,而且架构师要认识到:发现问题永远都比解决问题来的更加重要。从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。识别出的个别问题,需要通过架构的切分来进行相应调整,也就是利益的调整。切分的过程就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念。架构切分的输出实际上就是一个系统的模型,对于一个整体问题,有多少的相关方,每个相关方需要承担哪些权利和义务,不同的相关方是如何结合起来完成系统的整体任务的。架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。

架构的出现是有原因的。一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构。软件的本质,其实就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。软件工程师的职责在这个浪潮中,不堪重负,自然而然就分拆为不同的角色,形成了一个独特的架构体系。当我们说软件架构的时候,一定要清楚是部署的架构,还是代码的架构。软件架构的落地,需要软件的组织架构和流程来保障,离开了这个,软件架构是一句空话。架构实际上是在量不断的增大,超过了单台服务器的容量,逐渐的分拆,同时导致超过单个人员的能力,工作人员不断的增多,工作内容不断的分拆形成的。这本身就是架构的意义所在。不管怎么分拆,所达到的目标没有任何变化,就是完成业务在计算机中的虚拟化。

并不是做架构的就是架构师,架构师必须具备一定程度的自信,去真正的发现问题的主体,识别真正的问题,并把这个行为变成为自己面对问题的第一反应。架构师要去平衡别人的利益,甚至会调整别人的利益,必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。

如何把架构的思考进行落地,细化到我们代码的实践当中,尽量不要让代码成为系统长大的瓶颈,降低架构分拆的成本。我们的代码应该分为两部分:表达业务逻辑的代码和对用户提供访问并保存业务逻辑运行结果的代码。假期了解了SSH框架,集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

技术总是在人类解决对业务的要求不断提高的情况下产生,目的也是为了获取更大更好的利益。不同的技术,通过树状结构,组合在一起,形成了一个完整的架构解决方案,共同完成业务的目标。这就是技术,业务和架构之间的关系。

时间: 2024-10-14 19:33:30

架构漫谈之感想的相关文章

架构漫谈阅读感想

应老师的要求将王概凯老师的架构漫谈总体读了一遍,接下来谈一谈我读了之后的感想,大致上就是用自己的语言谈一谈短浅的理解. 首先我们要了解一下什么是架构? 根据要解决的问题,对目标系统的边界进行界定. 并对目标系统按某个原则的进行切分.切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间. 并对这些切分出来的部分,设立沟通机制. 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作. 把所有需要完成的工作分成多份不同的工作,不

读《架构漫谈》的一些感想

在阅读王概凯的<架构漫谈>,一共9篇.读之前以为的架构:架构啊,应该就是像想要盖房子一样,用木头搭起来的一个框架吧.听这名字,架构架构,多像“构造的架子”.读之后:我是谁?我在哪?架构能吃吗? 虽然上面的描述方法采用了夸张的修辞手法,但真实情况确实和夸张后的情况相差无几——我是真的没有读懂理解王概凯写的9篇<架构漫谈>.虽然我大可以大片大片的“引用”其中的内容,但是那样就不是我写的博客了.我一向认为既然要抄,就要全篇搬过来,但可惜<架构漫谈>没告诉人们“未经许可,随意转

架构漫谈阅读笔记

<架构漫谈>读后感 经过一个寒假对<架构之美>的解读,其实我已经对什么是架构有了一个初步的认识,但是还是有一些不太明白的地方.今天,我仔细地阅读了由资深架构师王概凯Kevin执笔的系列专栏--架构漫谈,让我对什么是架构.怎样做好架构.软件架构如何落地.如何写好程序等问题有了更深刻的认识. 正如文章开篇所说的那样:一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解.那么究竟什么是软件架构呢?其实,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由

读&lt;架构漫谈&gt;系列有感

读了这一系列博文,我对架构也有了大致的了解.在简单的阅读之后,我解决了几个问题. 第一个问题,什么是架构? 要学习架构,首先要知道架构.那么,什么是架构呢?引用<架构漫谈(一)>里的话就是把一个整体切割成不同的部分,由不同的角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构.架构的定义及步骤如下: 1.根据要解决的问题,对目标系统的边界进行界定. 2.并对目标系统按某个原则的进行切分.切分的原则,要便于不同的角

《架构漫谈》心得体会

首先,什么是架构? 要了解什么是架构,首先要知道它产生的原因:<架构漫谈>中说了五点,我的理解是: 架构--是人们为了提高生活质量,进而为了提高生产力,接着为了提高生产效率,而做出的对目标的有机的分割. 这种分割与建筑的架构是一样,对目标内部进行空间切分,又留下门窗与各部分进行连通,让各部分相互隔离而又 可以有效的沟通.就好像我们的社会,我们每个人通过自己的工作挣到钱(分割),让后通过钱与物的交易(沟通) ,获得我们各自需要的生活物品(目标).那么什么是架构?我的理解是: 架构--是解决问题的

iOS 组件化架构漫谈

组件化架构漫谈 前段时间公司项目打算重构,准确来说应该是按之前的产品逻辑重写一个项目.在重构项目之前涉及到架构选型的问题,我和组里小伙伴一起研究了一下组件化架构,打算将项目重构为组件化架构.当然不是直接拿来照搬,还是要根据公司具体的业务需求设计架构. 在学习组件化架构的过程中,从很多高质量的博客中学到不少东西,例如蘑菇街李忠.casatwy.bang的博客.在学习过程中也遇到一些问题,在微博和QQ上和一些做iOS的朋友进行了交流,非常感谢这些朋友的帮助. 本篇文章主要针对于之前蘑菇街提出的组件化

《架构漫谈》有感

人对事物的认识不是仅仅通过文字描述就足够的,纸上得来终觉浅,绝知此事要躬行.我们程序员更是这样,没有代码的积累怎么能有写软件的能力. 今天读了架构漫谈,说实话看到第四篇时我还不知道架构到底是什么东西.在我的认识里架构就是自己以前编的功能模块,它可以实现一定的功能,拼接起来就是一个完整大软件. <架构漫谈(四):如何做好架构之架构切分>,通过这篇文章我真的学到了一些东西,一些对我将来做软件有用的东西.文章里讲的是切分即利益调整,这比我想象中的要现实得多,作者说,动力是我们每个人的利益,切分也是对

《架构漫谈》阅读笔记

架构漫谈是由资深架构师王概凯执笔的系列专栏,通过对其阅读,我从中逐步认识到了什么是架构,怎样做好架构,软件架构如何落地等内容. 一.什么是架构 在软件行业,对于什么是架构一直有很多的争论.事实上,架构在软件发明时的N多年以前,就已经存在了,这个词最早出现在建筑上.架构产生的五个动力可以概括为:由个人执行的工作:每个人的能力有限:每个人时间有限:人对目标系统有更高的要求:目标系统的复杂性使得单个人完成这个系统.当这五个条件同时成立,一定会产生架构.从这个角度上来说,架构是人类发展过程中,由懵懵懂懂

阅读《架构漫谈》后,思考软件架构师应该如何工作

老师上课围绕<架构漫谈>前四篇图文并茂的讲解了何为架构,架构的基础,以及识别问题和架构切分这些作为架构师需要了解的最基本的知识.现在要讨论的是软件架构师应该如何工作,如何更好的,更快的,更有效率的工作. 要想做好一个工作就应该了解这个工作最基本的需求是什么,而作为一个软件架构师就必须应该清楚的知道自己的职责是什么.也就是说,软件架构师需要负责什么工作,要解决什么问题.以下内容,就<架构漫谈>为中心,一步步细谈软件架构师应该如何工作. <架构漫谈>第五篇介绍了什么是软件.