首页 > 数据库 > 数据库开发技术 > 心性:架构师的修炼之道

怎么成为优秀的架构师?架构师的修炼之道究竟是什么?
我的答案是:修心。心性,是架构师区别于一般软件工程师的地方。也是为什么他能够看到那么多人看不到的关键点的原因。
同理心的修炼:认同他人的能力
架构师最关键的素质之一是同理心,必须具备理解和认同他人的能力。在调整现有代码设计逻辑之前,务必确保充分理解他人的思维方式。这一点非常重要,但也相当具有挑战性。
因此,若确实决心理解他人思维,刚开始接手一个模块时可能会相对缓慢,具体时间取决于个人的经验积累。要理解一个系统的架构,若能与当初设计该系统的核心人员联系上,应该毫不犹豫地争取一小时时间与他们沟通,这比直接阅读代码要更有效。阅读代码有点类似于进行逆向工程,将机器码转回源代码,非常复杂。
但如果无法联系到相关人员,只能勤奋地阅读代码。结合文档阅读代码通常事半功倍,但也必须警惕文档与代码不一致的情况,并将其记录下来。随着经验的积累,阅读源代码将变得更加容易,能够快速理解他人的思维。这背后实际上依赖于架构能力。
架构师通常会思考和评估多种实现路径来满足一个需求场景。经过反复思考和评估,看到别人的代码时就能建立起熟悉感,迅速理解别人的思路。架构师的同理心也体现在需求分析上,这在某种程度上更具挑战性。因为接管系统时要理解的是其他架构师的思维,这是熟悉的场景。
而需求分析则需要理解用户的核心需求,因此需要更强的空杯心态,以认同他人。
全局观的修炼:保持好奇心与韧性
架构师第二大能力,是全局观的修炼。没有了全貌,那就是井底之蛙,谈何架构?为什么我们的架构课不是一上来就谈架构思维?这是因为,并不是我们理解了架构思维的原则,就能够做好架构。
架构之道,是虚实结合之道。我们要理论与实践相结合。不可能只要理论,否则架构师满天飞了。如果两者只能取其一,我选实践。从实悟虚,从虚就实,运用得当方得升华。这其实是最朴素的虚实结合的道理。对学架构来说尤其如此。
架构思维的感悟并不能一步到位,永远有进步的空间,需要我们在不断实践中感悟,升华自己的认知。
迭代能力的修炼:学会否定自己
架构师第三大能力的修炼,是迭代,是反思,是自我批判。不管你喜不喜欢,工程师天天都在接任务,码代码。但是差别在于,你究竟在用什么样的态度来接任务,码代码。
关于码代码,不少优秀的工程师都有这样的体会:洋洋洒洒写了好多代码,过了半年一年,自己看着怎么看怎么不爽。如果你有同感,那么恭喜你:你进步了。但,接下来的事情更重要。
你是捏着鼻子忍着,继续接老板安排下来的新任务;还是,百忙里抽出一点时间,把之前写的代码改到你满意的样子。这个改代码的过程,它之所以重要,是因为它才是真真正正的架构能力升华的过程。通过迭代而升华。这是架构能力提升之路。
你的收益不会只是你重构的那一个模块本身。通过重构,你建立了新的知识体系。它是内在根本性的变化,看不见但你自己可以体会得到。
接任务的态度也很重要。面对每一个新的开发任务,都是一次重新审视架构合理性的机会。就算这个模块从来没有交给过他人,所有代码都是你自己写的,也不代表这个模块就不会老化,发出臭味。
这里面的原因在于,很多时候你给模块加上新功能的时候,往往会出现很多当初架构没有考虑到的场景,导致不得不用打补丁的方式把需求给满足了。一个需求捏着鼻子做,两个需求捏着鼻子做,慢慢的系统就不堪重负,变得很脆弱,到后面加功能就会变得越来越困难。
所以,发现架构无法很方便地支持某个需求,就意味着架构存在缺陷,这时要及时停下来思考以下问题:还有哪些潜在的需求,现在还没有收到,但是未来可能会需要去满足?如果这些需求当初就提出来了,架构做成什么样更合理一些?当前的架构设计,迭代到新架构设计,它的成本是什么样的?
在架构调整这件事情上,早迭代,小步迭代,比做一个大的重构版本要好。
架构师成长之旅,是心性修炼之旅。我们需要记得,并不是理解了架构思维的原则,就能够做好架构。架构之道,是虚实结合之道。理论与实践相结合。从实悟虚,从虚就实,运用得当方得升华。架构思维的感悟并不能一步到位,永远有进步的空间,需要我们在不断实践中感悟,升华自己的认知。
从技能来说,我们可能把架构师能力去归结为:理需求的能力;读代码的能力;抽象系统的能力。但是架构师修炼之道,更难的是在心性上,这包括:同理心的修炼,认同他人的能力。全局观的修炼,保持好奇心和学习的韧性。迭代能力的修炼,学会反思,学会在自我否定中不断成长。
原文作者:二进制跳动;如有侵权,请联系管理员删除。