提高软件系统设计和架构理论水平之路

简介: 提高软件系统设计和架构理论水平之路

软件架构设计能力可能是任何一个行业中最逆向生长的一种能力了!因为我们都清楚,建筑设计、问诊把脉、机械制造、水利工程等等存在了成百上千年的行业,无论你后来有多么丰富的实战经验,前期必须要有扎实的理论基础。


但是软件架构恰恰反过来,从一开始就研究理论,等于在做无用功。具备软件架构的能力,前期需要有丰富的开发经验,然后在过程之中提炼模式,完善自我架构思维逻辑的系统化。因此软件系统的架构设计是逆向生长的过程。


当你的开发能力日益精进,不断在小的成就中积累出比较大的成功经验,那么软件系统的整个生命周期,尤其是多种类型的软件系统,不断被你体验,业务类型和技术模式在胸中逐渐清晰了然,那么你对软件架构的理解就会变得通透。


这就分为三个阶段:


第一阶段,编程的顶点阶段


这一阶段往往完成在程序员的头5-8年,如果你是一位天赋异禀的人,那么速度会更快。编程技巧的运用在这个阶段达到了顶点,尤其是面对复杂的业务问题,总能从别人看起来乱如麻的方案中缕出一条线索,化繁为简。


这个时候,你会认为编程对你来讲,不算个事儿,其实这个阶段,对于软件架构更多的理解还是在技术框架之内,对多种技术框架的组合运用有了一定经验。


第二阶段,内心回归阶段


在第二个阶段之前,你会经历一个比较长期的混沌,也就是玩腻了技术编程这些自以为芝麻大点的事情,而是转向管理,人事,经营和产品等工作,在这个过程属于个人认识的外延,自己的技术能力会有所退步,但是眼光明显扩大,但始终找不到落脚点。


这个混沌的时期会经历好几年,自以为很多事都能干,最终发现任何事都不是那么好干,回归于技术往往是本心所求,那么这时候的你实际上已经进入到了架构精进阶段,那么你对软件架构的认识不再局限于技术本身,而是开始学会推己及人,懂得让别人看起来简单比自己觉得技术酷炫更重要,心态也会不在傲娇,懂得了谦让。


这时候你的力量会全部集中在技术爬升上,软件架构师的角色感在你身上更为突出,不仅能书写方案,还能搞定核心代码,团队任何一员都尊重你,甚至在重大架构方向上,可以于公司高管据理力争,这时候的你已经可以承担重大的项目架构主导者了!


第三阶段,理论化的觉悟阶段


到了这个阶段,你已经从编程开发,技术框架,产品化,等各个方面走过来,那么就不再对这些应用操作层面的事情带有太多的好奇心,开始关心支撑应用的基础框架技术体系是怎么建造出来的?我也可以吗?在具体要突破的领域内,研究清楚所有相关的技术,知识和理论,结合实验,业务和经验,打造一套属于自己的核心理论资产,这套理论可以应用于这个领域任何人的学习,参考和使用。


这个阶段你会发现原来上学和初期编程阶段食之无味的算法,数据结构和经典理论,是如此的富有趣味,而且这些基础知识灌溉了整个技术生态体系,它们一直存在,只是你感受不到,如饥似渴的理解这些理论,那么你真正将进入到基础平台的架构问题解决的专家级别架构师了!


这就是我作为一个老架构师,对已经走过的路的一些内在感受。


相关文章
|
4天前
|
人工智能 运维 虚拟化
完善多云平台软件体系,VMware再探索下一代企业IT架构
完善多云平台软件体系,VMware再探索下一代企业IT架构
|
17天前
|
监控 持续交付 数据库
持续交付的软件系统架构
持续交付的软件系统架构
18 1
|
27天前
|
供应链 监控
软件架构一致性问题之软件供应链管理中降低维护成本如何解决
软件架构一致性问题之软件供应链管理中降低维护成本如何解决
29 4
|
29天前
软件复用问题之复用决策中,业务架构和技术之间有何关系
软件复用问题之复用决策中,业务架构和技术之间有何关系
|
29天前
|
监控 前端开发 UED
软件交付问题之架构让代码组织更有序,如何解决
软件交付问题之架构让代码组织更有序,如何解决
|
26天前
软件复杂度问题之端口适配器架构划分系统,如何解决
软件复杂度问题之端口适配器架构划分系统,如何解决
|
27天前
|
供应链
软件架构一致性问题之通过减少修改次数降低软件供应链管理的成本如何解决
软件架构一致性问题之通过减少修改次数降低软件供应链管理的成本如何解决
24 0
|
27天前
|
供应链 安全 Java
软件架构一致性问题之通过软件供应链管理提升研发体验如何解决
软件架构一致性问题之通过软件供应链管理提升研发体验如何解决
29 0
|
29天前
|
测试技术 开发者
对抗软件复杂度问题之系统架构对软件复杂度的有什么影响,如何解决
对抗软件复杂度问题之系统架构对软件复杂度的有什么影响,如何解决
|
29天前
|
消息中间件 缓存 架构师
对抗软件复杂度问题之降低代码的复杂度,如何解决
对抗软件复杂度问题之降低代码的复杂度,如何解决