王概凯架构设计原则 阅读笔记
什么是架构:
通过阅读架构漫谈这几篇文章,我对架构这个名词有了初步的认识。架构,顾名思义,就是结构,正如文中所介绍的那样原始社会有了分工,并且通过交易使每个个体获得生活的必需品,这样就构成了社会的架构。那么架构的准确定义就是:把一个整体切分成不同的部分,由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。
那么为什么会产生架构呢?
- 必须是有人在执行的工作才会产生架构,如果不需要人来介入,就意味着不需要改造,也就不需要架构了。
- 因为每个人的能力是有限的,人不能方方面面做的很好,这就需要每个人发挥自己的长处,来获得更大的利益。
- 因为每个人的时间是有限的,做同一件事情,为了尽快完成,必然会把工作分解出来,给擅长于这些方面的人来做,从而缩短时间。
- 人对目标系统有更高的要求
- 目标系统的复杂性使得单人很难完成这个系统,满足2.3
当上边这五个条件同时成立的时候,一定会产生架构。架构就是人类在发展过程中以更高的效率去改造这个世界的方法。
总之,架构就是:
- 根据要解决的问题,对目标系统的边界进行界定。
- 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切 分出来的部分,并行或串行开展工作,一般并行才能减少时间。
- 并对这些切分出来的部分,设立沟通机制。
- 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成 目标系统的所有工作。
同样这个思考,考虑到我们的专业就是软件架构,为了开发软件(得到软件),将软件的开发分成不同的任务,让各自的擅长的这方面的人进行开发,并且这些人通过沟通机制,共同开发出一个完整的软件。这就是我看完第一篇文章后得出的软件架构的定义。
认识概念是理解架构的基础
正如上一篇所说,架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要。
根据架构的定义,要做好架构所必须具备的能力,就是能够正确认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。
通过这篇文章,我明白了之前对概念的误区,如何有效的去认识概念,明白概念背后的含义,以及如何利用对概念的理解,快速的进行学习。掌握了这些原则,会有利于帮助我们在架构阶段,快速的识别和定位问题。
如何做好架构之识别问题
根据之前架构的定义,要做好架构首先就是要能够识别需要永嘉够解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决80%了。这个能力基本上就决定了架构师的水平。
当我们去解决一个问题的时候,一定要把问题搞清楚,明白了问题,我们才能看清努力的方向,而识别问题的最大的前提就是要搞清楚:是谁的问题。搞清楚个,问题的边界也就确定了,这时候再去讨论问题才有意义。
在讨论的过程中,搞清楚目标问题“是谁的问题,是什么问题”,为了帮助自己尽可能搞清楚,首先要做的就是问正确的问题。架构师应该问的第一个正确问题就是:目标问题是什么问题,这个问题背后的目的是什么。作为软件工程师或是架构师,大部分解决的是“别人”的问题,“别人”是谁,是值得好好思考的。正如故事总的男人要解决的,实际上是家庭晚餐需要吃土豆的问题,目标问题的主题实际上是这个家庭的成员。明白了问题的主体,这个主题就自然会带来很多边界约束,比如,土豆是要吃的,要给人吃的。“切土豆下锅”这个问题因识别了问题的主体,自然而然就附带了这么多问题。女主人给的解决方案可能是有问题的。这时候才算是真正明白了问题,真正的问题解决了,才能真正完成自己的任务。
架构漫谈》这本书的核心问题之前两次的读书笔记已经做了很多相关的阐述,
这一次我们来聊一聊软件架构师这个职业
让我们聊一聊,如何成为一名架构师
如果一个人在工作中,只是致力于完成自己的工作,以做好自己的工作为主要目标,那么最多只能成为一个工匠,无法成为一个架构师。当我们所做的工作是处于社会的分工的一环,需要帮助别人解决问题,并且按时解决别人的问题成为我们自己的问题的时候,我们就有了时间压力,潜意识里会自然而然的有一种对时间的恐惧。要成为架构师,必须要超越这个恐惧才能够看清楚,我们要解决的是别人的问题,不是自己完成工作的问题。
这个涉及到了一个核心问题,架构师要解决的是别人的问题,而不是自己的工作。所以说想要成为一名优秀的架构师首要的条件就是:摆正心态,我们是来解决问题的
其次还有一个问题不可避免,我曾经也有这样的疑问:架构师和技术-架构师是不是需要学习技术,甚至是学习语言?
通过刚才的论述,我们已经能得到答案了,既然我们解决的是别人的问题,那如果我们对这个问题一点解决的能力都没有,那该如何帮助别人解决问题呢?这里还有一点引申含义,这也代表着我们需要该领域的知识,来作为我们解决问题的助理。之前在《程序员的自我修养》这本书的阅读笔记里就聊过了,程序员是要读非专业书的,了解越多的程序员,其眼界与能力就越强。
再来聊聊架构师的权利和义务
权利:架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。
义务:架构师必须能够超越对时间的恐惧–也就是说必须具备了一定程度的自信,哪怕是装的,去真正的发现问题的主体,识别真正的问题,并把这个行为变成为自己面对问题的第一反应。
再看过架构漫谈综合自己的理解以后,我觉得想要成为一名架构是,首先需要足够的专业知识做支撑,拥有相当丰富的跨领域知识为自己保驾护航。要熟悉架构流程,熟悉解决问题的方式,拥有相当的领导了以及创造力,基于此再加上丰富的工作经验,才有可能成为一名合格的架构师。
找出问题的主体,是做架构的首要问题。我们要解决的问题,一定是人的问题。在进一步,我们一定要明白,任何招商架构师的问题,绝对都不是真正的问题,因为如果是真正的问题,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。
所以,在架构之前一定要找到真正的问题,找到问题的主体。找到这些,任务就完成了80%。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
2023-03-02 数据库