您的位置:首页 > 运维架构 > 网站架构

读《漫谈架构》感想

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

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

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

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


面对问题有哪些困难呢?

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

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


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


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


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


软件要解决什么问题

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

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

1. 技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。
2. 有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求–也就是业务
先有技术,才会有架构
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: