王概凯博文阅读笔记

在王概凯老师的九篇架构漫谈里面,谈及了什么是架构,下面我就会一一阐述看完王概凯老师的博文后对每一篇内容的理解和感受

(1)什么是架构?为什么会产生架构?为什么会产生架构,王概凯老师用一个非常生动的例子来给我们展示了出来。

在最早期,每个人都完全独立生活,衣、食、住、行等等全部都自己搞定,整个人类都是独立的个体,不相往来。为了解决人类的延续的问题,自然而然就有男女群居出现,这个时候就出现了分工了,男性和女性所做的事情就会有一定的分工,可是人每天生活的基本需求没有发生变化,还是衣食住行等生活必须品。

但是一旦多人分工配合作为生存的整体,力量就显得强大多了,所以也自然的形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产出棉花等,就自然形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。

这实际上就形成了社会的架构。那么怎么定义架构呢?以上面这个例子为例,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。

(2)第二篇主要讲了认识概念是理解架构的基础。架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要。在这篇王概凯老师仔细讲了现实中对某些事物为何产生这种概念和这些事务的概念的阐述。

(3)第三篇讲了如何做好架构之识别问题。王概凯老师说:一般来说,如果把真正的问题找到,那么问题就已经解决了 80% 了。所以找到问题的关键很重要。但我们平时都是过于关注解决问题,急于完成自己的工作,而不关心“真正的问题是什么”而造成的。当我们去解决一个问题的时候,一定要先把问题搞清楚。那在我们处理问题的时候,都会犯什么样的错误:

  1. 被告知要处理一个问题,但是交过来的实际上是一个解决方案,不是问题本身
  2. 被告知要处理一个问题,直接通过直觉就有了一个解决方案,马上考虑解决方案如何落地,或者有几种解决方案,选哪个合适

那么如何识别问题呢?识别问题的一个最大的前提就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。当明白了问题的主体,我们才可能真正的认识问题是什么。因为问题的主体是问题的隐含边界,边界不确定下来,问题就是不确定的。一旦确定了主体,剩下的就是去搞明白主体有哪些问题。这个就比较直接了,常用的方式就是直接面对主体进行访谈,深入到主体的工作生活当中,体验并感受这些问题,甚至通过数据的反馈来定位问题。

(4)如何做好架构之架构切分。架构的切分的导火索是人的负载太重。架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个 stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。

(5)什么是软件。文中作者探讨了软件发展火热的根本原因以及软件扮演的角色等问题。成本是我们为什么采用软件的主要动力,可以节省大量的人员培训,减少雇员的数目。随着互联网的发展,人类社会也开始软件化了。

(6)不要空设架构师这个职位,给他实权。成为架构师的前提条件,要成为架构师,必须要超越恐惧才能够看清楚,我们要解决的是别人的问题,不是自己完成工作的问题。我们把完成别人工作当成自己的最大利益,就知道怎么去发现问题了。只有做到这一点,才能在自己所服务的领域建立起自信,成为一个合格的架构师。

(7)从架构的角度看如何写好代码。重写代码,推翻原有架构,重新设计等等说法,来说明架构的进化。这实际上就是当初为了完成任务,没有充分思考所带来的后果。软件实际上是对现实生活的模拟,虚拟化。逻辑只允许存在于 Business 中,Service、Glue Code、Repository 都不允许存在业务逻辑。在软件代码中,不需缩进和计算的顺序调用,包括缩进的代码目的是 catch exception 的,都不算逻辑,除此以外都是逻辑。

(8)理清业务,技术,架构之间的关系。技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。

有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求–也就是业务。有人会问,不用钻木取火了,但是弓弦加速转动木棍还可以用啊? 没错,因为弓弦转动木棍这个技术,不是来生火的,是用来加速木棍转动的,所解决的问题不一样。但是两种不同的技术,合理结合起来,会更好更有效率的解决业务问题。

 

posted @ 2024-02-29 17:08  普信男孩阿洲  阅读(19)  评论(0)    收藏  举报