架构漫谈读后感
什么是架构:
架构产生的必要条件包括:
- 必须由人执行的工作;
- 每个人的能力有限;
- 每个人的时间有限;
- 人们对目标系统有更高要求;
- 目标系统的复杂性超出单个人的能力范围。
架构的本质是对目标系统的规划、设计和构建过程,具体体现为:
- 根据要解决的问题,明确目标系统的边界;
- 基于某个原则对系统进行有效的切分,以便不同的角色可以并行或串行地高效开展工作;
- 设立有效的沟通机制,保证各个切分部分之间的有机联系;
- 合并这些部分,形成一个完整的整体,以完成目标系统的所有工作。
架构成为一种主动的认识世界和改造世界的方法,旨在提升效率、质量和适应性。不论是建筑、企业、国家、组织,还是音乐、色彩、软件等领域,架构的核心都是对问题的识别、分解、重组及解决方案的设计。它不仅仅是技术层面的产物,更是包含了深刻的社会学、经济学、管理学等多元视角的综合应用。架构产出物包括拆分和合并的原则、逻辑以及对应的组织角色和核心能力需求等要素。总结起来,架构是人类智慧在面临复杂性和挑战时创造秩序和协同的重要手段。
认识概念是理解架构的基础
文章以日常生活中常见的“杯子”、“桌子”为例,揭示了概念并非简单指向实体物品本身,而是其所承载的功能或作用。例如,杯子解决的是人单手持握并能盛放液体的需要,而桌子则是为了解决人在坐姿状态下手部活动支撑和平稳放置物品的问题。这样的解读有助于我们跳出表象,洞察事物内在的目的和价值。
文中进一步阐述了抽象的概念,指出抽象并非用于定义事物,而是将多个概念中相似之处提取出来形成新概念的过程。然而,需要注意的是,抽象的新概念并不等同于原概念,两者解决的问题可能存在差异,如杯子与容器的关系。
作者提倡架构师应该具备准确识别和理解概念的能力,因为这是架构工作的基石。在面对新技术或新领域的挑战时,若能迅速抓住核心概念,理解其背后要解决的实际问题,则有助于快速有效地学习和应用。这对于架构设计、技术选型乃至创新都有着深远的影响。
总之,通过这篇文章,我们可以深刻认识到,无论是架构设计还是其他领域的知识学习,都需要从深层次理解概念出发,挖掘概念背后的实际需求和目的,这样才能更好地进行系统设计、高效学习和问题解决。
如何做好架构之识别问题
作者强调了识别问题在架构设计中的核心地位,指出正确识别问题是解决问题的关键,而这正是区分普通工程师与优秀架构师的重要标志之一。文章通过实例揭示了在处理问题时容易出现的误区,如混淆问题与解决方案、忽视问题的主体等,并提醒读者在面对问题时要问对问题:“这是谁的问题?”和“有什么问题?”
文中提到,在日常工作中,工程师们往往急于寻找解决方案,却忽略了对问题本身的深入理解和探究,这可能导致看似完成了任务,实则并未真正解决问题,反而可能带来更多后续问题。识别问题首先要明确问题的主体,即问题归属于谁,这将有助于划定问题边界,引导我们深入了解问题的具体内容和背景信息。
以切土豆的笑话为例,问题的主体是家庭成员而非单一的执行任务的个体,识别到这一点就能发现真正的需求是为家人准备晚餐,从而有可能质疑初始解决方案的合理性,并进一步提出一系列相关问题,确保最终解决问题并达成令人满意的结果。
在软件开发领域,架构师通常需要解决他人提出的问题,而这些问题往往是以解决方案的形式呈现。架构师的任务是追溯问题根源,识别真正的问题主体,从而确保问题得到正确定义和有效解决。在面对诸如用户提出“需要一把锤子”这样的解决方案式问题时,架构师需要通过访谈、体验和数据分析等方式,深入理解用户的真实需求,定位问题的真正主体和边界。
总结而言,识别问题是架构师的重要技能,正确理解问题主体、明确问题边界有助于架构师更精准地定位问题本质,从而设计出切实可行的解决方案。在面对复杂问题时,架构师需要有足够的耐心和洞察力,不断追问和探寻,直到找到问题的核心所在。通过精准识别问题,架构师不仅能从根本上解决问题,还能提高工作效率,降低因未能彻底解决问题带来的潜在成本。
如何做好架构之架构切分
切分的原则主要包括:
- 不能切分连续时间内发生的活动,强调自然规律和事物内在联系的不可分割性。
- 切分后各部分的责任人权利和义务必须对等,这样才能保证个体积极性和整体效率。
- 切分后的部分不应超过单个自然人的承受能力,并需根据实际情况动态调整。
- 切分应当保证内部活动对外部透明,不影响系统整体功能和边界。
架构切分与建模过程紧密关联,每一次切分都是对原有大问题的细化和模块化,进而形成不同的概念和领域。这种切分不仅适用于软件系统的架构设计,也反映在社会组织结构的演变中,如家庭、村落乃至国家政权的形成。
切分的输出表现为系统的模型,以及据此调整后的组织架构。组织架构的调整直接影响到利益相关者的权责分配,因此在实施架构切分时必须深入理解和尊重各方利益诉求,确保架构调整能促进组织的良性发展和长远利益的最大化。
最后,文章强调架构切分的理想结果应是一棵平衡树状结构,减少层级、提高沟通效率,从而最大化整个系统的运行效率。这意味着在实践中不仅要注重技术层面的架构优化,更要关注组织层面的协调与管理,以确保架构能够成功落地实施。