疑Google员工把8w行Python项目用4w行Java重写了
看发帖IP是亮点。后面后贴的一堆喷子。
发信人: daluobu (阿土仔), 信区: Python
标 题: 终于把一个8万行的Python程序用Java重写了
发信站: 水木社区 (Fri Dec 6 08:10:26 2013), 转信
在噩梦般地维护了一年多一个8万多行的Python程序之后,终于争取到机会把这个破烂玩
意用Java重写了一遍,大概是4万行Java左右。说说效果吧:
1. 从过去平均每周down一次,到现在连续运转近半年只down过一次。
2. 节省超过80%的cpu和内存
3. 代码多了很多功能,过去无数因为系统太复杂无法实现的功能现在都能简单清爽地实现
了。
4. 单元测试真管用了,不是过去那种把代码反过来写一遍的滥用mock了
前后代码都是同一个team写的,写代码的人都不是菜鸟(顶级公司的核心团队)区别只有
语言和几年的经验积累。
总结一句话就是:动态语言滥用起来真是可怕
珍惜生命,远离Python。
※ 来源:·水木社区 http://newsmth.net·[FROM: 216.239.45.*]
发信人: daluobu (阿土仔), 信区: Python
标 题: Re: 终于把一个8万行的Python程序用Java重写了
发信站: 水木社区 (Fri Dec 6 08:24:55 2013), 转信
刚开始写的时候以为就是随便hack一个小系统临时用用,结果慢慢发展到成为关键系统,
负载巨大,而且还对宕机越来越敏感,导致不得不用Java重写。重写也不是那么简单的过
程,半年多时间里面一个模块一个模块地替换,整个系统还不能停转一分钟,像是给一架
飞行中的飞机换引擎。
同样的故事在别的公司肯定也发生过好多次,写一个小东西玩玩结果变成了关键系统。我
觉得我们团队的问题是几年前过分迷信Python,错过了在系统还不太复杂的时候重写的机
会。
发信人: daluobu (阿土仔), 信区: Python
标 题: Re: 终于把一个8万行的Python程序用Java重写了
发信站: 水木社区 (Fri Dec 6 13:42:31 2013), 转信
原帖说的是一个10个人团队的故事,不是他自己。信与不信其实并不太重要,我发这个
帖子也是纪念一下这个美梦成真的项目。如果有人有共鸣,那就已经很好了。
过去公司里面也是有不少迷信Python的人,重写系统的想法我在组里提了很多次,终于
在一个Python大粉丝离开之后才得以实现。现在随着某Python之父的离开,公司里面
粉Python的人也越来越少了。而且事实证明,那个Python之父带的项目(不是我们这
个,比我们这个规模要大一些),用Java重写之后,不论功能还是性能还是新功能,也
都明显好了很多,和我们组的经验相当吻合。
我觉得代码行数的节省也在于新系统更严谨的设计。Java鼓励精密的接口设计和简洁的
代码关系,再加上Dependency Injection,代码的复用程度很高。Python完全没有接
口的概念,一切类都是胡乱写,还可以动态增加新成员,导致代码复用的难度相当大,
不修改地复用一个类还不引入bug简直是奇迹。
※ 来源:·水木社区 http://newsmth.net·[FROM: 216.239.45.*]