读《漫谈架构》感想

来源:互联网 发布:汉字读音软件 编辑:程序博客网 时间:2024/05/15 02:14

从大学开始学习编程到现在10多年,架构师好像是程序员心中的一座金字塔的塔尖。其实我们对架构师有一定的误解,或者说架构师是技术最牛的?

最近要为公司做基础架构,同时再复习下架构是什么。

读过一些Martin Fowler文章,早已忘记具体读过什么,只记得领域模型、持续交付等词语, 但是现在认识到软件是一套系统工程,不只是写代码。

总结一下,什么是架构,就是: 1.  根据要解决的问题,对目标系统的边界进行界定。  2.  并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。 3.  根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。


面对问题有哪些困难呢?

我们先看一则笑话。女主人公:老公,把袋子里的土豆切一半下锅。结果老公是把袋子里的每个土豆都削了一半,然后下锅。 
以这个笑话为例,看看在我们处理问题的时候,都会犯什么样的错误:    被告知要处理一个问题,但是交过来的实际上是一个解决方案,不是问题本身。   被告知要处理一个问题,直接通过直觉就有了一个解决方案,马上考虑解决方案如何落地,或者有几种解决方案,选哪个合适。

以上面切土豆的例子来分析: .  女主人提出一个问题,要切土豆下锅煮。 .  男主人有一个问题,女主人交代了自己必须要完成的一个任务。 

架构师应该问的第一个正确的问题就是:目标问题是谁的问题。
作为软件工程师或者架构师,我们大部分时候是要去解决别人的问题,“别人”是谁,是值得好好思考的。

要正确的认识问题,需要问两个问题: 1.  这是谁的问题? 2.  有什么问题?


切分就是利益的调整 
1.  某个或者某些利益相关人负载太重。 A. 时间上的负载太重。 B. 空间上的负载太重,本质上还是时间上的负载太重。 2.  某个或者某些利益相关人的权利和义务不对等。 

软件要解决什么问题

要解决谁的问题? 分别是谁的问题 分别有什么问题 分析问题 

业务、技术、架构之间的关系

1.  技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。 2.  有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求–也就是业务先有技术,才会有架构






0 0
原创粉丝点击