zoukankan      html  css  js  c++  java
  • 阅读笔记--《架构漫谈》—01

    一、     什么是架构

    在这一篇关于什么是架构的文章中,作者通过类别的方式确实让自己知道了什么是架构,让我心中对架构有了自己心中的理解。

    在还没有开始上“软件体系架构”这门课的时候,老师在上课的时候就常常提到架构的重要性,已经架构一直都在我们软件开发行业的最顶层,在这篇关于什么是架构的文章中,我才发现,确实,在软件开发之前,架构就已经存在于人们的生活中。

    在架构产生的叙述中,指明架构产生的动力就是,必须由人执行的工作、每个人的能力有限、每个人的时间有限、人对目标系统有更高的要求、目标系统的复杂性使得单个人完成这个系统;这五个架构产生的动力方面让我觉得都是必要存在的,类比到我们软件开发的过程中,首先,要有人执行工作,开发人员写程序,需求人员做需求,其次,大家的能力和时间都有限,开发人员和需求人员这样不同的分工就正好证明了这一点。一个系统的开发,肯定离不开需求,需求从哪里来呢,就是来自于人对目标系统更高的要求。

    文章得出什么是架构的结论,如下1~4点,我也确实认可这4点,人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题,这就产生了整个架构活动:

    1. 根据要解决的问题,对目标系统的边界进行界定。

    2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。

    3. 并对这些切分出来的部分,设立沟通机制。

    4. 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

    二、     认识概念是理解架构的基础

    本部分一开篇就提到:架构实际上解决的是人的问题,而概念是人认识这个世界的基础。这两句话就辩证的看待了概念和架构的关系,只有自己本身存在一个概念,才能认识世界,进而理解什么是解决人的问题,什么是架构。

    文章提到了“相”,这个我以为只存在于佛家伦理中的词汇,感觉有点难懂,其实每个人都会有,是存在于每个人脑子潜意识中的东西,一个概念,用来对特定的意见事情进行解决的概念,确实是很抽象。而后关于概念于架构的阐述,确实刷新了我一些观念。

    根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。事实上,这一能力,在任何一个领域都是适用的,比如我们如果想要学习一项新的技术,如果知道这些概念所要解决的问题,学习这些新的技术或者概念就会如虎添翼,快速的入手;学习一个新的领域,也会非常的快速有效;使用这些概念来解释问题,甚至发明新的概念都是很容易的事。为什么强调这个呢,因为做架构的时候,很多时候都是在一个新的领域解决问题,必须要快速进入并掌握这个领域,然后才能够正确的解决问题。

    三、     如何做好架构的识别问题

    这部分开头的笑话,说实话我实在是不能理解笑话中“老公”的做法,这也许就是两个人思维的不同,也正好的指出了我们处理问题时会犯的一些错误,也引出了我们要如何识别问题。

    首先就是“主语”确定的问题,所有的概念基本都有一个很大的问题,就是缺乏主语。而我们大家都心照不宣的忽略这个主语,沟通的时候也都以为大家都懂得对方说的主语是谁,结果大家都一起犯错误。识别问题的一个最大的前提就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。

    作为软件工程师或者架构师,我们大部分时候是要去解决别人的问题,“别人”是谁,是值得好好思考的。当明白了问题的主体,我们才可能真正的认识问题是什么。因为问题的主体是问题的隐含边界,边界不确定下来,问题就是不确定的。

  • 相关阅读:
    4.5计算机网络笔记
    3.29计算机网络笔记
    3.22计算机网络笔记
    3.15计算机网络笔记
    用int类型表示最大公倍数
    markdown入门
    learning by doing
    技术博客(初用markdown)。
    物联网PPT智能家居王思齐和陈由钧第10组
    第六次java作业
  • 原文地址:https://www.cnblogs.com/Qi77/p/13107072.html
Copyright © 2011-2022 走看看