就一句:站在巨人的肩膀上!
使用成熟的开源方案,能避开太多坑,减少大量不必要的损耗。
如果商业上允许,法务上合规,优秀的开源项目自然是最好的选择。我看到过太多各种理由的自建轮子,理由都是站不住脚的,可能是为了取悦自己让自己觉得搞出一个轮子有成就感,可能为晋升加点火药,可能说开源的项目扩展性不好不适合自己的业务(深究一下会发现可能他根本没仔细研究清楚)。
我相信这种新老版本基建需求不会以一个断层式的方式出现,即不会要求所有的业务功能马上都迁移到新版本上去。
从你的Case上看,我的做法会是让需要新版特性的新业务及它依赖的一些功能升级到新版就可以解决当前的问题。而至于剩下的要不要升级,就是另一件事情了,需要更全面的评估分析来支撑。
既然各类框架已经把基本的设施都建好了,那你现在在业务里编写的代码是什么类型的,它们存在重复吧?你有思考过可以把你日常的编码工作的效率再提升一步吗?甚至可以再过份一点,你是不是可以让你自己做的这部份工作无代码化呢?
你自己也提到了架构,我认为一个架构思维良好的同学需要具备全栈的思维,这里的全栈不仅是前端后端技术的全栈,还有跨技术、产品、设计、商业等领域的全栈。如果你认为在后端的知识储备已经够用了,那就可以开始去接触更多的领域,融合贯通后,视野会更广,看到的也会更多,发现自己不知道的需要学习的越来越多。
所以,只要你开始观察和深入思考,你会发现学习和进步的机会无处不在。
架构师是要“能”写代码的,但要不要下场写就看需要了。
即,架构师是必须具体写代码的能力,他的架构能力也必然是基于他过程大量的编码经验积累而来的,没有一个靠谱的架构师就凭写文档和PPT能成。
但,架构师在实际的项目中要不要写代码就真的是Case by Case看的,这就不展开了。
前沿技术落地到实际其实不容易。
首先看企业有没有土壤,以及前沿技术对于企业来说是不是迫切。如果正好是企业的痛点,那么有可能付出一定的代价。否则很难。
以Oracle发布的23AI为例,除非企业有迫切的AI需求,否则很难说服企业去升级到这个版本,将相关前沿技术落地。
如果强调可扩展,用微服务吧。如果一个微服务迭代遇到瓶颈了,可以将整个微服务换掉或拆分。其实现在很多云服务如腾讯云的存储和计算都是可以扩展的。现代的架构师可以说省了很多心。重点是业务的抽象和拆分,如果业务能做到无状态或拆分成很多无状态的服务,使用一些serverless的服务更可以几乎无限的扩展。