为什么许多 Java 项目都试图用 Go 重写?原来...

共 1651字,需浏览 4分钟

 ·

2020-12-31 23:18

点击上方[全栈开发者社区]右上角[...][设为星标⭐]


对互联网来说,重构是政治斗争和大清洗的重要手段,尤其面向业务编程的公司和码农。

比如某走出创业期已有平稳营收的互联网公司。35岁的技术总监在公司建立初期就加入公司,全程参与公司所有重大项目。技术总监拥有10年Java开发经验,年薪100万及若干股份。他手下还有一个平均薪资60万,平均在职6年的核心技术团队支撑公司运转。
这时公司的项目随便增加删除一个功能或业务都得依靠这位技术总监及其团队,毕竟只有他们全程参与了公司的项目最有经验,只有他们更清楚既有架构的性能潜力,怎么重复利用既有代码以及潜在的bug都在哪,就算让新的团队做新功能也还得基于旧有的架构。
因此这家公司包括老板在内的所有员工及投资人是不是都得看他们眼色,每次涨工资加薪发奖金是不是都不能少了他们?甚至有时候老技术团队还会仗着资历老对老板的命令阳奉阴违。
老板和投资人面对日渐升高的薪资成本和话语权被分走,自然会想办法解决。如果直接把年轻人塞进去让技术总监培养,稍微有脑子的技术总监都会给自己留一手刻意限制这些新人的发展。而如果直接裁员优化又容易对公司造成强烈冲击,搞不好还会把整个团队送给竞争对手或者新的投资人。
思来想去解决工程师问题最好的方法还是技术,比如用新的技术体系重构。
新的技术体系在开发时必然参考现有技术体系的优缺点,而且随着技术迭代和编程语言的既有发展规律也一定会大幅降低技术门槛。
如果招一些年轻人,然后宣布要用新技术体系对既有业务重构,那某种程度上不正是把公司旧的技术团体经验清零同年轻人们拉到了相对较近的起跑线,还给了旧技术团队不得不把技术同年轻人传承,让年轻人可以从头理解公司技术架构培养经验的机会?

重构是把既有的成熟代码重新实现,不存在什么开发失败的可能性也不会绕很多弯路。而且现在分布式微服务的思想和架构快速普及,重构越来越可以通过一个功能一个业务在线实时无缝替换的形式进行,不会造成对旧有体系的突然冲击使得重构的成本越来越低。


绝大多数互联网公司的技术也并不高深,无非就是人力堆起来的业务代码,只要给年轻人一个完整项目的开发机会,年轻工程师的成长也非常迅速。一场重构就能培养一大批堪当大任的新鲜码农,然后再把这些年轻工程师们的工资从20万翻倍到40万也比老技术团队动辄70多万的平均薪资低不少,而且这些没见过钱的年轻码农们面对工资翻倍比那帮老油条们感激多了。
很多时候,年轻码农为了上位也会主动找老板提出用新技术体系重构,往往老板和投资人对这种工程师内部矛盾和内部竞争非常喜闻乐见,通常也会主动扶持这些想要下克上的年轻人。
新人新技术体系培养起来了,还留着旧体系的老人干什么,要么优化要么降薪。故重构在很多时候不是提高性能,也不是减少冗余,更不是技术创新,而是赤裸裸的政治斗争。
在互联网企业外,开源组件的重构也是年轻工程师开辟新路线后浪拍死前浪的重要手段。假如Java技术体系永远占据绝对市场份额,那岂不是Github上收集星星的开源大神永远就那几个,出书录编程网课的大大永远只有那些?那年轻码农什么时候才能翻身。

很多工程师觉得自己有一技之长踏实工作积攒经验就可以越老越吃香,可当工程师红利泛滥时,年轻的工程师必然通过各种手段卷死老的,资源就这么多,不是你死就是我活。


来源:zhihu.com/question/434704940/answer/1630300574

觉得本文对你有帮助?请分享给更多人

关注「全栈开发者社区」加星标,提升全栈技能

本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!

如果感觉推送内容不错,不妨右下角点个在看转发朋友圈或收藏,感谢支持。


好文章,留言、点赞、在看和分享一条龙吧❤️

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报