读完王概凯老师的架构漫谈,感觉自己对软件架构方面的知识了解了一点点。以前都只是听说软件架构师特别的厉害,高薪,但是具体说软件架构师是什么,具体是做什么的,自己并没有多大的一个观念。现在看王概凯老师的专栏,希望能让自己有一些收获。
看完该专栏的几篇文章之后,有以下收获:
1.什么是架构,为什么需要架构?
按文章中所说,架构是规划、设计和建造建筑物和其他物理结构的过程和产物。人们完成一项任务,因为每个人的能力不同,所擅长的方向不同,所以如果自己去完成一项任务一般要花费很长的时间,效率很低,但是人们对目标有更高的要求,所以需要提高效率,所以需要将任务进行分割,然后将每一部分交给擅长的人去做,并且并行进行工作,然后再将每一部分进行合并,形成一个整体,可以大大减少完成任务所需要的时间,并且可以将任务完成地很好,所以需要架构,架构可以提高工作的效率。我觉得架构就是将整体工作按某种原则分为几个小部分,有不同的角色完成不同的部分,而且每一个部分之间都能联系起来,通过完成每个部分的工作,每个部分配合,完成整体所有的工作。就像一个家庭一样,家里的工作很多,每一位家庭成员都成大 不同的事情,每一位家庭成员之间相互配合,完成一个家庭的所有事情。完成一件事情需要人的参与,而且想要让这件事情完成的更好更高效,所以会产生架构。
2. 软件架构师是个什么样的人?
软件架构师最终目标是解决别人的问题,只专注与解决自己工作的问题没办法称为软件架构师,为别人的利益服务是架构师的义务。义务与权力是相辅相成的,有为别人利益着想的架构师也必须有领导权力的架构师,架构师作为组织领导,组织内部每个人的权力与义务会得到均等的划分,每个人都会得到发展。而要做好架构,首先需要识别需要解决的问题,识别出问题了,那么目标就不难实现,而识别问题的前提就是找出这个问题是谁的,找到这个问题的主题,这样才可以知道问题的边界,从而了解真正需要实现的目标是什么,才能真正的认识到问题是什么,然后是实现目标。发现问题要比解决问题更重要,如果一味的解决问题,但是并没有弄清楚问题是谁的,真正的目标是什么,那么解决问题只是空谈,而架构师的能力很大程度就体现在发现问题源头上面。
3.架构师需要做好架构切分
需要架构的原因我在前面已经叙述过了,这里就不多赘述了,做架构切分也是很重要的,按一个原则去将目标进行切分,然后将每一个部分都交给擅长的人去做,每一个部分都是有联系的,然后进行整合,从而形成一个整体。
4. 在硬件上编写的程序就是软件,用来控制硬件的行为,而控制硬件使以最初的二进制编码实现的,成本非常高,随着半导体的诞生,编程语言的出现,软件编写成本越来越低,人们开始意识到软件可以节省大量的劳动力,提高成倍的效率,软件也越来越复杂,开发难度越来越高。让复杂的软件开发过程有层次有分工,让软件模拟人的大脑去工作提高效率成了软件架构师的基本工作,有分工就有渐渐地有了分工的标准,然后演变成了架构。
5. 技术、架构以及业务之间的关系:技术在解决业务问题中产生,为了解决业务问题,人们会想出更好的技术来,目的就是获得更大的利益,业务要解决的问题越来越多越来越复杂,一种技术已经不能满足解决问题的需要了,需要把多种技术拼接在一起,多个技术共同工作来获得更大的利益。这里业务和技术的高效衔接就成为了架构师的主要问题,因为技术不会和业务有直接的关系(一种技术可以适应多种业务),架构师的作用也在这里体现,架构师有意识的组织和识别不同的技术,来实现业务的目标。
6. 软件功能越来越多,开发过程越来越复杂,代码的编写也要用架构的思想对部署单元进行责任切分,切分标准就是有无业务逻辑,有业务逻辑的分为一组,无业务逻辑的分为一组,因为含有业务逻辑的部分是业务的核心,所以再对业务逻辑进行细致的划分。这样每个单元相对系统都成了独立的一部分,使业务的扩展和修改成本在可控范围内。
原文地址:https://www.cnblogs.com/zhoulonghai/p/12330602.html