golang比java编码效率高太多,为什么各大厂还在继续用java而不是重构整个项目?

真不一定。golang是语法简洁,但抽象能力和动态能力太弱了,真不适合写业务代码,只适合写技术项目、工具之类的。

业务项目是存在非常多的重复或者通用逻辑的,比如异常处理、响应封装、出入站参数记录、鉴权、权限控制、限流、参数校验、幂等并发控制等等,GO要想将这些公共逻辑抽离出来,使业务代码足够简洁,非常考验编码能力,而且最终也很难抽干净,GO还不支持循环导入,更增加了抽取的难度,这会导致Go写的业务项目里往往存在大量复制粘贴的重复代码,可维护性差。

Java则不同,Java反射、泛型、动态代理(AOP)、SPI、注解、运行时生成/修改类等动态技术可以将非业务逻辑非常干净的抽离出去,可以将这部分沉淀为依赖包,新项目可以很方便复用,沉淀的好,业务开发效率极高。

Go的优势是资源占用少、编译产物小、无虚拟机、原生支持协程,这些确实比Java有优势。

另外Go因为动态能力弱,代码上手门槛会低很多,一个再复杂的项目,跟着代码走基本都能读懂,所见即所得,不会有太多遗漏。

Java则不然,如果没有IDE的提示功能,如果对Java动态能力和Spring体系不够熟悉,可能会漏掉很多隐藏逻辑,运行起来可能完全和预想的不同,上手门槛反而会比较高。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容