zoukankan      html  css  js  c++  java
  • 架构思维

    对于架构思维本身仍然是类似系统思维,结构化思维,编程思维等诸多思维模式的一个合集。由于架构的核心作用是在业务现实世界和抽象的IT实现之间建立起一道桥梁,因此架构思维最核心的就是要理解到业务驱动技术,技术为最终的业务服务。

    因此要真正通过架构设计来完成业务和技术,需求和实现,软件和硬件,静态和动态,成本和收益等多方面的平衡。

     

    分解是最基础的,架构的重点就是要对复杂问题进行分而治之,同时保证分解后的各个部分还能够高内聚,松耦合,最终又集成为一个完整的整体。分解核心是定义问题,因此架构首先仍然需要理解清楚需求。

    集成是配合分解完成的动作,最终分解完成的各个组件或子系统,通过合适的接口设计,最终还能够集成为一个完整的整体,分解仅仅是加速开发和降低问题复杂度,如果分解后的内容无法集成在一起,那么分解就没有任何意义。分解+集成可以理解为架构最核心的思考方式和方法。

    动态+静态:一直是我强调的重要思维模式,架构思考里面一定要注意这两者的结合,即涉及到流程,用例等动态分析内容,又涉及到数据,类等静态建模内容,而是两者要高度协作起来完成整个架构思考。

    复用是另外一个重要的思维,也可以理解为SOA参考架构的核心思考模式,包括最近谈的最多的业务能力组件化,组件能力服务化,平台+应用,共享中心建设,共性能力下沉等都是谈的复用的概念。及时你架构设计一个小系统,你也需要将各个模块需要用的共性功能抽取为可复用的共性组件。

    分层相对重要,架构在设计中要考虑分层,而核心仍然是资源+服务+应用的三大层,分为这三层仍然是SOA参考架构的核心思想。对于平台+应用更多只是上面分层模式的一个变形。分层的目的是通过分层既理清了整个应用的构建过程,又保证了各层之间的独立设计和松耦合。

    模式匹配:可以讲是所有思维模式里面的一个重点,而架构设计中的模式匹配就是要将最终的业务域问题匹配到对应的技术实现上面。即根据业务需求来挑选最适合的技术,而不是用主流和最先进的技术去反推业务。

    抽象是架构思维里面的一个重点,这里面包括了两个层面的内容,一个是常说的归纳方法,即各种类似场景的实现见的太多了,自然就归纳了一个规则或方法出来供以后的设计用。但是抽象更加重要,即将非类似场景中的共性内容也总结出来,进一步抽象为类似的东西,以更加方便的适应变更和各种变化。

    结构化思维是架构思维必须具备的,最常用的两种结构就是二维的表格和树模型,通过结构化思维引入了维度和XY概念后,可以帮助我们更好的分析和比对,结构化决策等。对于多维模型,我们也要有意识的将其转换为多个平面二维模型,方便我们进行分析。

    迭代思维是架构思考中需要考虑的另外一个内容,没有最优的架构,只有不断进化的架构,只有最适合的架构。因此架构本身也在随着业务需求的变化不算的迭代和演化,而不是追求用最新的技术一步到位。

     

    最后即我们常说的系统思维,系统思维是架构思维中最重要的思维模式,一个架构师必须要有充分的全局思考的能力,做好前面谈到各种平衡,追求整体的最优化而不是单个目标的最优。

    https://zhuanlan.zhihu.com/p/30679273

    ------------------越是喧嚣的世界,越需要宁静的思考------------------ 合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。 积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。
  • 相关阅读:
    java中的定时器
    JAVA中的定时器
    jQuery中的show()和hide()、fadeIn()和fadeOut()、slideDown()和slideUp用法
    ArrayList和LinkedList区别以及list,set,map三者的区别
    java.util包常用的类和接口
    字节流 字符流 输入流 输出流
    运行时异常和checked异常异同
    exception和error异同
    MVC控制器传递多个实体类集合到视图的方案总结
    利用Asp.net和Sql Server实现留言板功能
  • 原文地址:https://www.cnblogs.com/feng9exe/p/15294199.html
Copyright © 2011-2022 走看看