架构漫谈--读后感

  浅谈架构漫谈,从架构的定义开始切入分析,架构到底是什么??老师在课上提出,架构就是找到切实解决别人的问题,平衡利益关系的最好方法。

  为什么会产生架构一词?

  由于不同的社会分工加上角色分配,建立起不同部分的有机结合,整合起来,达到这个整体的利益最大化,就是把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部少时诵诗书或分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。因为社会分工的不同,每个人的能力有限,人的要求、目的的更高要求,如何在不同的部分做合理的分配、从而提高工作的效率。借用作者的一句话就是架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。

  分析了许久的架构的定义,正确的理解架构的概念会对我们了解架构起到重要的作用,作者通过简单的举例“桌子”的定义来引出做好架构所要具备的基本能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。真正理解事物的概念会对我们学习技术、新领域也会起到帮助。通常做架构,很多时候都是在一个新的领域解决问题,所以要求必须快速进入并掌握这个领域,然后才能够正确的解决问题。

  如何开始架构?

  首先要做的是识别需要解决的问题,我们在解决问题的时候,不应该仅仅一味的想办法如何找到解决的方法,应该做的是先理解为什么会有这个问题,这个问题是什么问题?找出问题的主体发现问题确定问题的隐含边界,直接面对主体采取措施,简单来说就是找到问题的首要提出者,然后与其探讨,完善自己的这个问题的理解,如果无法定位问题的来源,我们可以尽量就将问题带来的损失尽可能的小化,把控住问题的影响,从而留出一些时间、空间给自己去识别真正的问题。在一开始拿到这个问题时,记得反问自己两个问题1.这是谁的问题?2.有什么问题?相对而言,问题1是主要核心,需要解决的,一旦解决了问题1,问题2就相对容易。

  利益不同,导致问题频出。

  因为有问题,所有就需要需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构中的切分的概念。所谓的切分调整就是对利益关系的调整。每个人都是本性自私的,都想可以将自己的利益最大化。但是这世上没有一个人是完美的,他不可能所有东西都十分擅长,这样比起单打独斗,团队分工合作就自然而然的变成大趋之势。在这个大环境下,你只能选择提供自己擅长的东西,去换取你想要的东西。切分决策首要根本是利益。一般的情况体现为:

  1. 某个或者某些利益相关人负载太重。

    时间上的负载太重。

    空间上的负载太重,本质上还是时间上的负载太重。

  2.某个或者某些利益相关人的权利和义务不对等。

  情况 1 是切分的原因,情况 2 是切分不合理而导致的新的问题,最终还是要回到情况 1。对于情况 1,本质上都是时间上的负载。因为每个人的时间是有限的,怎么在有限的时间内做出更多的事情?在有限的时间里,对工作进行并行处理。当然,必须在一个连续时间内发生的活动自然不可切分,针对切分部分,负责人的权利和义务是对等的,另外,切分不能更改要解决的问题的本质,我们应该做到利益和义务的对应化,建立一个合理的利益关系,组织、合作才能长久的良性发展。

  软件为什么会诞生?

  因为人想要让计算机模拟人,比如人的计算、阅读等等能力,人类可以创造一个东西,用它来更好的控制硬件的行为。我们为了降低成本,所以开始使用软件。有意识的切分,导致了不同的软件架构的出现。

  架构师角色的定义

  作为一名架构师要清楚:我们要解决的是别人的问题,不是自己完成工作的问题。我们完成的问题没有真正解决别人的问题就不算真正的解决问题。架构师主要是去为别人的利益服务,所有架构的核心就是组织架构,一个合格的组织领导人,一定必须是一个合格的架构师。架构师最重要的是要对自己有自信。

  如何写好代码?

  代码的两个责任:1.表达业务逻辑的代码

          2.对用户提供访问并保存业务逻辑运行结果的代码。

   逻辑只允许存在于 Business 中,Service、Glue Code、Repository 都不允许存在业务逻辑。在解决同一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效,高成本的技术。架构师应该承担起解决业务问题的这个角色准确识别采用什么技术的能力,也是架构师所要具备的能力

 

posted @ 2019-03-10 18:42  s硕s  阅读(196)  评论(0编辑  收藏  举报