我的软件架构之初路的杂谈

       作业一个软件从业人员,从大学时候就对“软件架构”这个词有所耳闻,也在断断续续地尝试学习它,希望自己成为一个技术方面的专家。无论是在大学,还是早期几年(确切的回忆话,应该是6年)的工作中,发现自己学习的理论并没有实际使用到工作中,也没能与已有工作的项目实践联系起来。总结起来,十年多的软件行业浸染,自己觉得自己在软件架构层面并没有真正的入门,似乎处于技术方向的瓶颈状态,很难突破。焦虑,似乎所说的中年危机就在眼前。

       事情的转机,发生在我参与公司的一个预研项目,公司需要在19年的MWC展会上有一些Demo进行演示。前后三个月的时间,理解并更新原有的项目,构建新的组件模块。在理解原有项目过程中,根据设计等一些文档,看到了当时设计者的初衷和思想,发现设计出来的模块结构,其实在以前的工程项目也是存在的。知道了设计的初衷和思想,再去查看项目的代码,才发现自己觉得设计不合理(或者说,让自己实现功能时不能那样去实现)的地方原来是合理了。在后续更新原有项目(项目使用的是常用的分层架构)添加功能模块时,更体会到原有设计架构的合理性,无论是扩展性,解耦等。重新查看了之前学习架构的资料,也回顾了最近工作中的项目或模块,感觉隐隐约约能看到或对应到一些架构体模式中。在构建新的组件模块中,也使用分层架构,结合原有项目的代码结构来设计。感觉自身已经摸到架构的感觉,像一种顿悟。

       后面也在想自己顿悟这回事,我认为顿悟也是很多知识的累积来突破这个点的。为什么之前一直没有找到架构的感觉?一是,工作遇到的大型项目,自己只负责其中一部分,没有全局观;而且实际设计和实现模块过程中,有的信息也由有经验的前辈的提供了,缺少了一些实践过程。上述Demo的开发,梳理需求,设计,实现和验证,都是全程高进度的情况下完成的。特别在,设计和实现过程中,因为需求的变更等原因,来来回回大改了好几次,改动过程中越来越体会到设计好的架构的重要性。有些地方看起来可能是比较冗余,但从扩展,解耦等方面来看,是更加合理的。之前也独自负责过一些单独的产品模块,由于实际经验不够,缺少指引,虽然也完成实现了,但没有找到架构相关的感觉。二是,我认为顿悟需要知识量的累积,到一定时候,需要一个契机,突破一个点。自认为自己是一个热爱技术的人,在架构之前,基本上对设计模式,代码模式,及一些外围知识有一定的掌握。三是,大环境下(可能一直在小公司吧),感觉架构师这个岗位被淡化了,或者被合并到其他岗位了。对新人,没有一个明确的职业发展指引,或者直观的感受和体会。四是,架构的设计,本身就是一件很难的事,需要大量的知识,大量的实际项目经验。

        自己觉得自己也只能算是初入门吧(很难找到一个量化标准),只希望遇到好的指引,好的项目,好的机会,能够越走越远,成为一个自己想要的技术专家。

发布了8 篇原创文章 · 获赞 12 · 访问量 5266

猜你喜欢

转载自blog.csdn.net/Hi_douzi/article/details/102628043
今日推荐