架构漫谈有感
什么是架构?看完博客我有了大概的了解:根据问题制定目标,依据不同角色对目标进行拆分,拆分成各个部分,切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间,同时将各个部分进行有机的联立,对这些切分出来的部分,设立沟通机制,向着完成目标进行。
为什么要出现架构?博客做出了很有格局的解释,我将其理解为一种随社会发展而产生的社会现象,每个人的能力和时间都是有限的,需要专注做好自己的事情,每个人都有自己的强项,个人的产出受限于最短板,并且由于人的结构限制,同时只能专注于做好一件事情,比如虽然有两只眼睛,但是只能同时专注于一件事物,有两只手,无法同时做不同的事情;人们对完成一件事有更高的要求,需要更合理高效的指引;问题的复杂性使得一个人不足以完成该任务,需要多人的合力完成目标。架构是为了解决人的问题,产生分工的人类社会整体。
如何做好架构,需要首先认清楚问题,这个是沟通问题。其实我们大部分时候过于关注解决问题,急于完成自己的工作,而不关心“真正的问题是什么”。当我们去解决一个问题的时候,一定要先把问题搞清楚。去看看软件开发工作者的时间分配也可以看出,大家大部分时间花在讨论解决方案和实现的细节上,基本都不会花时间去想“问题是什么”。或者即使想了一点点,也是一闪而过,凭自己的直觉下判断。只有真正投入思考问题是什么的工程师,才可能会真正的成长为架构师。如果每个人都急切专注于自己的工作,每个人都做了很多工作,每个人都认为自己做的是对的,因此没有一个人对结果满意。因为真正的问题没有被发现,自然也就没有被解决,那么后续还得收拾残局,还要继续解决问题。事实上自己的工作并没有完成,反而更多了。把原因归结为沟通问题也是可以的,但对于解决问题似乎并没有太多的帮助。因为要改进沟通,这也是一个大问题。搞明白目标问题“是谁的问题,是什么问题”,当然也是需要沟通的。为了帮助自己更快的搞明白,首先要做的事是问正确的问题。架构师应该问的第一个正确的问题就是:目标问题是谁的问题。找出问题的主体,是做架构的首要问题。这也是博客一再强调的,我们要解决的问题,一定都是人的问题。更进一步,架构师要解决的,基本都是别人的问题,不是自己的问题。再进一步,我们一定要明白,任何找上架构师的问题,绝对都不是真正的问题。因为如果是真正的问题的话,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。当问题的主体离架构师越远,就会让找出问题主体的过程越加困难。
我们需要识别:用户究竟是二传手,还是问题的真正主体。一旦确定了主体,剩下的就是去搞明白主体有哪些问题。这个就比较直接了,常用的方式就是直接面对主体进行访谈,深入到主体的工作生活当中,体验并感受这些问题,甚至通过数据的反馈来定位问题。
我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。切分任务也是架构非常重要的一部分,当人们认识到要主动的去切分一个系统的时候,毫无疑问,我们不能忘掉利益这个原动力。所有的切分决策都不能够违背这一点,这是大方向。确保我们不能违反人性,因为维护自己的利益,是每个人的本性。只有权利和义务对等才能做到这一点。架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
如何才能成为架构师,要克服自己的恐惧,当我们所做的工作是处于社会的分工的一环,需要帮助别人解决问题,并且按时解决别人的问题成为我们自己的问题的时候,我们就有了时间压力,潜意识里会自然而然的有一种对时间的恐惧。这个恐惧在潜意识里面会想方设法推动我们采用各种手段,以便及时的完成工作,换取报酬。甚至会加班加点,不择手段。如果我们还生活在这个恐惧下面,是不可能成为架构师的。要成为架构师,必须要超越这个恐惧才能够看清楚,我们要解决的是别人的问题,不是自己完成工作的问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-02-22 2月22日