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

      软件架构师如何工作?

      不同于软件工程中只需要编码的“低级”码农,一名合格的软件架构师首先要对架构有深刻的理解。那么什么是架构?从建筑的角度解释,架构是计划、设计和建造建筑物、物理结构的过程和生产活动。从这个定义上看,架构像一个过程,但又不明确。为了弄清这个问题,我们首先要了解为什么会产生架构?在最早期,人类之间不会沟通,过着自给自足的自闭式生活。但是作为一个高级动物,繁衍后代的本能让男性和女性开始群居,这个时候就出现了分工。每个人擅长的能力不同,有些人种田厉害,有些人制作工具厉害,有些人狩猎厉害等,当每个人都得带了合适的分工,这个群体就像是一个有着完整骨架的人,不再一盘散沙,不再各自为战。所以架构就是:
        1. 根据要解决的问题,对目标系统的边界进行界定。
        2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
        3. 并对这些切分出来的部分,设立沟通机制。
        4.根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

      软件架构师是一个严格的职业,需要对概念的绝对理解和掌握。《同福客栈》里给我印象最深的人物不是那些每集都出现的主角,而是一个倒霉的小反派“姬无命”,因为他就是对概念不够理解,才会被吕秀才抓到破绽强加错误的概念,最后死在了自己的手里。其实大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并不是主动的认识。为什么软件架构师一定要认识概念呢?根据前面对架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。 

      认识概念只是一个基础,发现问题才是软件架构的关键。大部分的概念基本都有一个很大的问题,就是缺乏主语。所以就需要软件构架师找出问题的主题,主题找到了,边界进而也就明确了,后续的一系列解决方案也都水到渠成。架构师要解决的,基本都是别人的问题,不是自己的问题。任何找上架构师的问题,绝对都不是真正的问题。因为如果是真正的问题的话,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。

      在识别出问题后,大部分问题都会迎刃而解,但还是会有一些问题需要做出相应的调整,也就是架构的切分。切分是一个很生动的词汇:切分团体中每个人应得的“蛋糕”,也就是合理分配每个人的利益。利益是一个人生存的根本,所有维护利益是每个人的本能,“人不为己天诛地灭”正是由此而来。有舍才有所得,在这个模式下,每个人都必须舍弃自己一部分的利益,才能达到团体的共赢,而那些不愿意和别人进行利益交换,不想依赖别人的人就会受到孤立,生活自然也就越过越差。那么如何切分呢?切分一定要掌握如下几个原则:

        1. 必须在连续时间内发生的一个活动,不能切分。

        2. 切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。

        3. 切分出来的部分,不应该超出一个自然人的负载。

        4. 切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。 

      在我看来,架构的实质其实就是利益的分配,架构师就是要去平衡别人的利益,甚至会调整别人的利益的。软件工程是一个博大精深的学科,我不能只满足于做一个会编程的码农,现在的社会需要的是软件构架师这种复合型编程人才,不局限于解决问题,而是发现问题、平衡问题的两端。这就需要从今天开始做一个有心人,盲目的编程只会局限自己的眼光,提高自己的格局从善于发现开始。


     


     

      

  • 相关阅读:
    windows下开启docker占用内存过高解决办法
    如何与别人共享Docker镜像
    使用docker部署springboot应用
    使用docker安装mysql5.7
    win10家庭版安装docker
    alibaba sentinel简单实践
    mysql函数GROUP_CONCAT()
    SVN同步时报错:“Previous operation has not finished; run 'cleanup' if it was interrupted”
    Eclipse从SVN检出maven项目后的一些配置
    完美解决 Uncaught SyntaxError: Unexpected token ‘<‘
  • 原文地址:https://www.cnblogs.com/clueless/p/8525480.html
Copyright © 2011-2022 走看看