• 架构漫谈九篇博客阅读感受


    阅读王概凯的架构漫谈,也有一些自己的感受

    作为软件工程师或者架构师,我们大部分时候是要去解决别人的问题,别人是谁,是值得好好思考的。当问题的主体离架构师越远,就会让找出问题主体的过程越加困难,我们再举一个软件行业比较熟悉的例子:用户给产品经理提出要求,想要一把锤子。这是典型的拿解决方案作为问题的。真正的问题的主体是谁,是用户还是设计师还是施工队? 如果产品经理当成是自己的问题,那么毫无疑问就给了锤子了。

    我们需要识别:用户究竟是二传手,还是问题的真正主体。如果是设计师,那么问题的边界就变成了设计师的问题;如果是施工队,那么问题就变成了施工队的问题;如果是用户,那么就要看看用户到底有什么困难,绝对不是要一个锤子这么简单。这也说明了,问题的主体对问题的边界确定有多么的重要。

    在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。

    我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。我们已经知道,随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化,比如:生活的更舒适,更轻松,更安全,占用并享有更多的东西。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。

      对比一个人干所有的事情,结果就是大家都能够得到更多,当然也产生了一个互相依赖的社会,互相谁都离不开谁。这就是自然而然而产生的架构切分,背后的原动力就是人们对自己利益的渴望。人们对自己利益的渴望也是推动社会物质发展的原动力。

      在这个模式下,每个人必须要舍掉自己的东西,才能够得到更多的东西。有些人不愿意和别人进行交换,不想去依赖于别人,这些人的生活就很明显的差很多,也辛苦很多,自然而然的就被社会淘汰了。

      当人们认识到要主动的去切分一个系统的时候,毫无疑问,我们不能忘掉利益这个原动力。所有的切分决策都不能够违背这一点,这是大方向。当然如果某个节点的能力很强,也可以达到减小树的高度的结果。技术的提升,也是可以提升每个节点的能力,降低树的层数。

    作为架构师或者做技术的人,在开发软件时,我们基本上就是在扮演上帝的角色:我们不但要创建出一个个的程序,还要让这些程序能够脱离我们在硬件上独立运行,以便为这个程序所服务的群体提供服务。当这个程序出现问题甚至bug的时候,我们还得扮演牧师的角色去修复这些问题。

    技术总是在人类解决对业务的要求不断提高的情况下产生,目的也是为了获取更大更好的利益。所以:

    1.技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。

    2.有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求——也就是业务。

    所以技术与技术之间,有两种关系:

    1.在解决同一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效,高成本的技术。这是人类利益诉求所决定的。

    2.一般刚开始解决根本问题的技术的效率是比较低的,只是把不可能变成了可能。然后就会有提高效率的需求出现,要求改进这个技术。这个技术的低效率部分就会被其他人加以改进,这部分就会形成新的技术。当关系2发生的时候,这个地方必定会形成一个切分,新技术会通过某种方式和原有的技术连接在一起形成一个整体,让这个新的技术可以和原有技术共同工作,使得原有的技术可以用更高的效率解决问题。这个时候其实已经产生了架构。也就是说,一般是先有技术,才会有架构。

  • 相关阅读:
    CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体
    利用vue-cropper做的关于图片裁剪、压缩、上传、预览等做的一个公共组件
    解决浏览器拦截弹出窗口问题
    详解Vue中的nextTick
    vue里ref ($refs)用法
    vue组件的hover事件模拟、给第三方组件绑定事件不生效问题
    JS实现千分位
    JS实现异步编程的4种方法
    Cas_个人理解
    zabbix_监控_邮件预警
  • 原文地址:https://www.cnblogs.com/haobox/p/15924922.html
Copyright © 2020-2023  润新知