说到代码重构,国外程序员有很多参考,尤其是大型开源项目。基本上一个模块或者函数的实现都会被反复修改,一个文件可以修改上千次。我订阅过linux内核组的邮箱,每天收到几千个修改文件,有时候一个文件可以修改上百次。文件修改最疯狂的是谷歌的chrome源代码。重构的次数让你感觉每天都在重写,但是功能感觉越来越流畅。为什么我们身边的程序员大多数时候不做这样的事情。
凭直觉,为什么我们会认为外文写作质量比我们高?我们国内的程序员大部分时间都在赶进度,准确的说是忙着加功能,修改bug。其实也从侧面反映了为什么中国没有出现安卓、Linux等影响深远的技术革新。从全球开源代码的占比来看,差距还是巨大的。
为什么觉得外国人写的代码比我们的好?
1.国内软件开发的主要阶段还在解决吗?远远谈不上强大。中国的软件经过近几十年的快速发展,取得了巨大的成就,尤其是在互联网行业。最近热议的脸书用户数据泄露事件,作为当事人,扎克伯格在讨论中也提到了中国有几家实力雄厚的互联网公司。这说明中国在互联网领域取得了相当大的成就,但在一些核心领域,还是
任何事物在发展初期的首要考虑是有没有,所以就像创业初期的公司一样,会选择在短时间内生产出一个产品,哪怕是一个不成熟的产品,然后迅速投入市场,根据市场用户的反应同步跟踪问题。当产品差不多稳定了,在市场上有了一席之地,下面的事情就要考虑优化功能,提高代码或者产品各方面的性能。目前国内互联网大部分普遍比较年轻,是否可用的问题还在解决中。相信随着时间的推移和国产软件的发展,会有大量高质量的开源框架代码问世,但这一切都需要很长的时间。
所以国内程序员大部分时间都在赶进度,按照要求完成功能代码。
2.软件行业的基础还很薄弱,历史积累不足以举一个典型的例子。现在国内很多程序员到了三十多岁都开始考虑后续的转型,因为身后的年轻人会带来很大的冲击,所以大部分三十多岁的程序员都在考虑自己的出路,他们都要考虑转型的问题。相反,一些有经验的程序员已经转型为管理或合伙企业家。他们中有多少人还在安心从事技术?那些年纪大了还在搞技术的人被鄙视,觉得自己没前途。
但是在国外写代码是一个很普通的职业,和其他工种没有太大区别。四五十岁写代码也是比比皆是。做软件是一个技术工种,经验的比重很高。所以老程序员写的代码更深入,更稳定。这一切的根源在于行业发展还不够成熟,需要时间和历史积累。在这方面,国内软件行业整体还是比较薄弱的。员工的整体素质和工作氛围还有待慢慢成熟。有经验的程序员都在指导如何重构代码,如何提高代码质量。但是国内大部分程序还是被产品经理催着增加需求,修改代码。
3.公司的文化差异。目前很多中国科技公司更多的是追求短期利益的最大化,在基础软件上的投入远远不够。毕竟基础投入很难取得短期效果。在特定场景下,实现了一个产品主体的功能,也可以在用户端投入使用。一般公司很难花时间让你重构代码。毕竟这种东西很难直接产生经济效益。这和公司本身的文化差异有很大关系。重视技术或者懂技术的公司更重视这方面,反之亦然。
小时候课本上说我们落后100年,所以高楼不是一天建成的,所以追赶的路很长,所以我们承认有差距,然后努力追赶。
觉得好就给我点个赞。