系统除了高性能,高并发,高可用,还应该有什么?

 当系统承载的用户越来越多时,非功能性需求也越来越重要,开发人员为了保持用户的体验,需要付出的努力也越来越多。有追求的开发者对三高问题都很兴奋,因为可以用自己的技术去解决极限问题,从而给自身带来极大的成就感。当然解三高问题要求技术人员有很强的技术能力与付出大量的努力。这也是网络上的编程培训班的广告都会带上这样“三高”字样的原因之一,当然这些问题有公共的解决方案,对培训班来说也是很重要的。在技术招聘的JD也充斥大量关于三高的技术字眼。

 开发者的技术追求就在这里吗?当然不是。固然开发人员首先应该提高的是解决三高问题的能力,但是这些问题的技术方案,已经BAT等公司,为我们积累很多思路。但是在时间的维度中,我们还需更多点需要去关注与思考:业务知识积累、运维成本,随着商业环境的变化,需要保持系统稳定的情况下,保持交付速度等。以个人经历来看,这些关注点的涉众更广,也更有挑战。而且在时间的维度,这些关注也变得越来越重要。

业务知识的积累

 当前状况,很多很多的系统,技术与业务场景规则混在一起,时间一长,谁都不知道整体业务是什么,当时是怎么解决问题的。很多代码都是问题的描述、问题的解决及解决过程所用的技术手段混在一起。人脑要在阅读这种代码时,要随时切换角度,这种认知负担太重。
 当前解决方案,很多团队都是后期投入人力去解决这些问题,所以996 ICU在中国是如此的盛行。也要感谢生在中国,让中国软件/互联网行业尝到了人口与教育的红利。但是这种人海战术,准入门槛也越来越高,后继也越来越乏力(人员离职,复制这种战术容易),因为没有建立自己的核心优势。

运维成本

 揉杂的东西,去维护它的时候总是很吃力

保持系统稳定,保持交付速度

 随着外部商业环境的变化,公司战略的调整,系统总是要去满足新的需求,当前很多系统是在运营到3-5年后,系统一重构,整体成火葬场,团队为了保持系统的稳定,对新的需求变得越来越迟顿,交付速度越来越慢。最后掀桌子,重新来过。但是这样子只是回到了轮回的起始。

posted @ 2020-07-23 11:43  潇水鱼米  阅读(304)  评论(0编辑  收藏  举报