【鲁班学院】java高级培训-一个大系统为什么要进行拆分

2020年10月21日 22:10

83

    如果不进行拆分,一个拥有数十万行代码的大型系统,20个人维护一个代码,那将是一场悲剧。该代码经常更改,并且会发生冲突。必须处理各种代码冲突和合并,这非常耗时。我经常更改代码,然后您打电话给我,这导致您的代码被重新测试,这非常麻烦;然后,每次发布系统时,都会一起发布数十万行代码。每个人都必须准备一起上网。随着成千上万行代码联机,每次联机时可能都会进行大量检查,而处理许多异常问题则完全是另一回事。这既麻烦又痛苦;如果我打算将该技术升级到最新的春季版本,它将无法正常工作,因为这可能会导致您的代码报告错误,并且我也不敢随意更改该技术。

java高级培训

    假设一个系统是20万行代码,其中小A在里面改了1000行代码,但是此时发布的时候是这个20万行代码的大系统一块儿发布。就意味着20万上代码在线上就可能出现各种变化,20个人,每个人都要紧张地等在电脑面前,上线之后,检查日志,看自己负责的那一块儿有没有什么问题。


    小A检查了与他负责的10,000行代码相对应的功能,并确保ok闪烁了;不幸的是,当小A联机时,他不小心修改了在线计算机的某些配置,从而导致了另一个小B。与小C负责的20,000行代码相对应的某些功能是错误的。


    数十人负责维护具有成千上万行代码的单个块应用程序。每次上线时,都要准备几个星期,然后上线->部署->检查其负责的功能。


    最近,从2013年到现在,在2013年之前的五年中,基本上是BAT的世界。自2013年以来,几家小巨人开始迅速发展,上市了数百亿美元,估值接近100亿美元;2015年,除了英美烟草(BAT)之外,互联网行业的几家小巨头也出现了。


    BAT工作,在市值几百亿美金的小巨头工作


    有某一个小巨头,现在估值几百亿美金的小巨头,5年前刚开始搞的时候,核心的业务,几十个人,维护一个单块的应用


    维护单块的应用,在从0到1的环节里,是很合适的,因为那个时候,是系统都没上线,没什么技术挑战,大家有条不紊的开发。ssh+mysql+tomcat,可能会部署几台机器吧。


    结果不行了,后来系统上线了,业务快速发展,10万用户->100万用户->1000万用户->上亿用户了。


    2)拆分之后,整个世界都焕然一新。具有数十万行代码的系统被分成20个服务,每个服务平均有10,000至20,000行代码,并且每个服务都部署在单独的计算机上。20个项目,20个git代码仓库,20个代码农民,每个人都可以维护自己的服务,这是他自己的独立代码,与他人无关。没有更多的代码冲突了,很酷。每次都测试我自己的代码,很酷。每次发布自己的小型服务都很好。从技术上讲,您可以根据需要进行升级,只需保持界面不变就可以了。


    简而言之,如果它是一个具有成千上万行代码的中型或大型项目,并且团队中有数十人,那么如果不拆分系统,开发效率将非常低。而且有很多问题。但是,在拆卸系统后,每个人都将对自己的一小部分负责,他们可以玩,做任何想做的事。分布式系统拆分后,可以大大提高大型复杂系统团队的开发效率。



更多鲁班学院java高级培训免费课程试听地址https://www.lubanjava.com/course.html

鲁班学院java高级培训课程https://www.lubanjava.com/course/detail/519.html

加群即可领取鲁班学院最新Java高级培训课程资料学习包 群号:700541970


在线咨询
免费试听
领取优惠
加群交流

扫一扫
加群领取架构师资料

售后反馈
返回顶部