老子曾说:“人法地,地法天,天法道,道法自然”。架构也遵循这个道理,架构没有执行就只是空谈架构。

      架构的目的就是解决问题,首先我们要明白解决的主体是谁;要解决什么问题,找到其特性;实际情况如何,进行分析调研;要如何解决,提出解决方法;要如何运作等等。说白了,就是如何实现效益最大化

      何为架构?架构就是组合,即将一个整体划分成多个独立的单体,单体可各自运作,单体再构成一个整体。为什么会出现架构?当一个人在规定时间难以完成一件事情时,就需要通过架构对这件事情进行拆分,实现一件事情多个人同时分工完成其中的不同部分,并形成资源的整合。

      一个架构包含核心生命周期和非核心生命周期,当这个架构呈现饱和非核心生命周期已经不足以完成当下工作时,需要对整个架构进行重新切分。一个生命周期拆分后,会形成多个子生命周期。切分的原则是让非核心生命周期独立出来,形成新的核心生命周期和非核心生命周期。那什么时候进行架构切分呢?当执行者的负重太重(时间不够)时进行切分。切分的实际就是对利益相关人的利益进行切分或合并,使得利益相关人的权责对等。可拆分也可合并。

      架构实际就是随着业务的不断扩大(也是架构的进化):通过对业务生命周期进行拆分,突出并精简业务核心生命周期,拆分出非核心生命周期,达到不同生命周期在空间和时间上并行,便于不同的人同时开展工作,提升业务人员单位时间内产出的办法。

      以下从组织架构、软件架构两方面举例阐述架构。

  1. 组织架构

      组织结构也可以说是管理架构,国家、企业、公司、学校等的职能分层。以学校为例进行简要说明,学校领导层管理整个学校的事情,当他们管理不过来的时候,保存自己的核心生命周期,拆分非核心声明周期,将学校划分成多个学院,每个学院安排相应人员去管理,学校领导通过学院领导直接或者间接管理学校;然而学院领导面对一个学院的学生人数也是太多了,管理不过来,于是又通过架构划分出了学院老师,让老师协助学院领导去管理学生。就一个简单的组织管理架构就出来了,核心生命周期直接管理非核心生命周期,或者通过核心生命周期去间接管理非核心生命周期。架构的目的就是在整个系统不断增长的情况下,通过架构的合理分配,让整个系统依然能稳定有效运行。

 

gun的架构是什么意思 架构什么意思?_组织架构

      再比如企业,刚开始首席执行官一个人处理所有业务,直接和客户打较大,这个时候客户少,问题不大。

gun的架构是什么意思 架构什么意思?_gun的架构是什么意思_02

      但当客户量和规模逐渐上来时,首席执行官一个人不可能完成所有事情,于是将整个公司的运营生命周期拆分为非核心子生命周期,分配给不同的人来运营管理,而自己只用控制核心生命周期,从而形成了组织架构。

gun的架构是什么意思 架构什么意思?_gun的架构是什么意思_03

 

 

2、软件架构

      软件的整个生命周期大致分为:软件开发生命周期和软件运行生命周期。何为软件?人通过类似于人的语言,将人的知识传递给计算机,让计算机代替人执行相应的非生命周期,从而实现节约成本时间等。从软件运行生命周期来说,一个可运行的独立部署单元才算是一个软件。

      软件架构师是通过对软件生命周期的拆分,在符合业务架构的前提下,以达到软件本身访问增长目的的方式。业务是核心问题,技术是用来解决问题的工具,架构是用来让业务长大的组织方法,并且提高效益分配。技术是架构师手中用来解决问题的工具,当没有合适的技术时,架构师回去创造技术或者催生出新的技术。

      对于首席执行官来说,需要一个首席技术官来辅助他管理软件方法的事物,管理软件开发团队的分工。对于软件开发团队所共同面临的问题,建立相应的内部分工,形成软件开发内部团队,配合业务软件开发团队进行工作,从而形成了组织架构和软件架构

gun的架构是什么意思 架构什么意思?_架构_04

      从软件程序编写上来说,将实现不同功能的函数封装在不同的库中,要使用时直接调用就行。比如说,我要通过软件输入、处理并显示一个东西,需要In类、Run类、Out类,通过Main核心生命周期控制,当然这是三个类的也有其各自的生命周期,其控制的非生命周期分别是输入、处理显示。最开始设计的只是输入两个整数并相加然后显示,随着时间流逝,需求不断增加,只是简单的整数相加不能满足了,我想实现任意数或者字符的输入相加显示。这时,我需要对Main控制的非生命周期进行拆分,拆分成三个相对的核心生命周期In、Run、Out,让他们控制任意数或者字符的输入、处理、显示。架构也由最开始的一层架构拆分变成了二层架构。

gun的架构是什么意思 架构什么意思?_效益最大化_05

        面向对象的三大特性:继承、封装、多态,多态表示一种事物有多重表示形态,继承和多态更多的是指事物的共性,只有封装和面向对象的内聚有关。

gun的架构是什么意思 架构什么意思?_架构_06

      总之,架构就是通过合理拆分实现效益最大化。

      系统维护,把代码发布功能和功能启用进行架构拆分,先确保代码上线没有问题,再通过软件开关打开关闭某个功能,功能的打开和关闭就形成了一个新的发布生命周期。发布生命周期就被拆分为代码的发布生命周期和功能的发布生命周期,其中功能的发布生命周期是核心生命周期。这个做法可以快速地退回有问题的功能,而不用退回所有代码,加速产品上线问题的处理,并保证用户正常访问。