面试微服务开发技巧
五年的老程序员没有分布式微服务的开发经验是不是意味着即将被淘汰?
跟你接触过的项目有关系,你可以没搞过分布式,但你不能不知道大概,找出你自己的人竞争力,比如很强的逻辑,特别是管理系统做多了,前后端甚至产品需求方面应该是你的强项
如果是Web开发,五年的老程序员没有分布式、微服务的开发经验,我认为情有可原,毕竟工作经验都是跟着项目走,不是所有项目都用到分布式;但是如果业余时间一点儿没接触过,那就有点儿说不过去了;淘汰不淘汰的说不好,至少对发展前景是有影响的。
我的观点是:脱离业务实际的架构和技术都是耍流氓,对分布式相关技术不熟悉,那么可能是公司的业务没有达到需要分布式的程度,很多公司的项目都是面对公司内部的业务,其数据量、并发量远不能和互联网公司相比,这时候没有微服务化的必要(服务化会带来更多的问题),很多时候,公司的架构都是被业务逼出来的。
但是如果对分布式一无所知,那说明除了做好本职工作之外,没有花额外的时间和精力去学习,这对程序员来说,是个致命的问题。
首先软件开发也是有很多细分行业的,有些行业对于分布式经验的要求并不高,比如嵌入式开发;有些行业可能是需要掌握分布式的思想即可;而有些行业,分布式已经是行业趋势,建议要掌握,比如Web项目开发;如果你身处这些行业中不了解这些知识,被行业淘汰可能说的有些严重,不过肯定会对你的职业发展有着一定的影响。
着重说一些Web项目开发,因为我在这个领域工作了十余年,有着一定的经验的感悟。在互联网公司,很多公司都做到了微服务化的程度,因为如果不走分布式这条道路,很难对如此大的业务量做支撑;而在传统行业,越来越多的公司也开始意识到了这一点,如果还像原来一样,做开发一个又一个系统,三五年之后推到重建,这个成本是很高的,也很难快速响应客户的需求,所以目前很多传统行业的IT,也都还是转型,***用分布式、服务化的架构。
所以大势所趋,如果作为一名Web开发程序员,不懂分布式和微服务的架构和技术,那么职业发展一定会受到限制的。
分布式微服务属于架构范畴,如果程序员想要向架构师发展,那么最好懂得这个东西。然而并不是所有架构师都需要分布式微服务的知识,也不是所有项目需要用到这种架构。具体需要向什么方向发展,要看自己的领域和目标是什么。
其实里面真没那么多难点,坑虽然有,但踩完就行了,我们银行花了5个月完成了整个条线的系统及业务拆封,现在不能说跟以前比有什么重大的提升意义,但是对业务拆分及运维确实有比少帮助,但对于整个产品条线的开发人员来说,其实比以前更加麻烦了,另外这破事干了大半年,感觉又少了好多头发,想想几个月天天十二点到家,每个月打车费报销都要两千多确实有点累,过了三十身体跟不上了,年轻时通宵两三天处理生产问题简直跟玩似的,年纪大了还是好好考虑养老吧
分布式微服务虽然是企业开发中最常见的技术,但不是所有的程序员都应该会这些!程序员的种类繁多,企业开发中的砖🧱不是一时半会就会搬完的。
更多的时候,你是跟着项目在走的,做的多了,熟能生巧,再加上不断学习,什么都不用怕!
最关键的还是你解决问题的能力怎么样?并不是说你做了多少东西!
SOA和微服务架构的区别是什么?
SOA粗暴理解:把系统按照实际业务,拆分成刚刚好大小的、合适的、独立部署的模块,每个模块之间相互独立。
每个模块之间都能独立运行,不会缺少某个程序无法使用的情况,有比较强的容错率,多服务的情况服务之间的治理、还有问题的排查就会以几何程度增加,但是同时也增***务的高可用性 ,横向扩展能力。
微服务架构强调的第一个重点就是
业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。在这里我们不用组件而用小应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身的能力朝外部发布为服务。
如果一句话来谈SOA和微服务的区别,即微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wntfw.com/post/29697.html