为什么有人说程序员千万不要重写代码?

为什么有人说程序员千万不要重写代码?
从事编程开发多年已经有一种共识,不好的程序代码就是想尽办法进行重构,优秀的程序员整天做的事情是整天考虑着重写代码,优秀的代码是经过无数次的洗礼出来的,一次性就写出高质量的概率不是很高,而且代码的重构不仅仅是代码的问题,关键是实现方式上的差异。现在大家对于开源的认识越来越多了,开源精神的宗旨是锻造出最极致的代码框架,所以无论是linux内核社区还是谷歌旗下几个主流的开源社区,每天的代码更新量都会非常巨大,无论什么模块都力求做到最极致。当然开源社区的思想和实际企业中追求的目标有些差异,开源属于完全自由的思想,追求代码的极致实现方式,企业就要考虑实际的生存现状,企业从大方向上也是趋向于走向理想化,但现实中企业首先要保证有收益才会生存下去,所以企业的生存发展过程中是不断向着理想化的状态迈进,很多企业还没开始进入理想化的状态就已经倒闭了。所以程序员的理想化状态要符合当前的工作实际状态。这点就讲到了开源社区的起源,首先开源社区的发起者属于理想主义者,而且基本上算是衣食无忧的状态,吸引着一群同样状态的人去维护,更新维护代码的标准都一致,大家一起维护这套代码,不断重写代码重构代码以达到理想的状态。对于一个标准的程序员讲基本的职业素质讲见到不合适的代码就是选择重构,但平时企业工作的工作安排很少直接安排代码重构,都是以任务板块的方式估算时间,所以重构的时间只能放在业余的时间。但在实际开发过程中重构代码的难度还是非常大,如果接手是一团乱糟糟的代码,而且项目周期卡的非常紧迫,明知道代码里面很多坑但没时间去重构,遇到这种状态想要长久的安稳呆下去还是要想尽一切办法重写如果实在不行进行代码的优化,程序员的准则就是写出优秀的代码,并且持续不断的优化,写出让自己看着顺眼代码。对于一个程序员来讲写出优秀的代码是基本素质。所有一切的代码都是为了程序框架,框架的目的是为了项目更加顺畅的运行,有些企业研发成本有限所以在框架上下的功夫不大或者直接从开源社区拿到在项目进行的过程中,会遇到各种棘手的问题,本身开源社区的代码很多并没有经过项目的洗礼,里面可能藏着很多bug,曾经在项目开发过程中遇见过深层次的开源bug,由于开源代码数据量巨大所以排查起来会非常困难,国内很多程序员做的就是在开源代码里面找到问题并且尝试解决,能够把开源代码框架理解透彻,并且能够完成深度的定制的程序员就算是水平不错的了,毕竟国内软件产业大部分还处于解决有没有问题上,至于深层次的挖掘还差的非常远,所以很多程序员重构的代码心思和精力都不够,希望能帮到你。

回复
  • 林雨轩用户

    从事编程开发多年已经有一种共识,不好的程序代码就是想尽办法进行重构,优秀的程序员整天做的事情是整天考虑着重写代码,优秀的代码是经过无数次的洗礼出来的,一次性就写出高质量的概率不是很高,而且代码的重构不仅仅是代码的问题,关键是实现方式上的差异。现在大家对于开源的认识越来越多了,开源精神的宗旨是锻造出最极致的代码框架,所以无论是linux内核社区还是谷歌旗下几个主流的开源社区,每天的代码更新量都会非常巨大,无论什么模块都力求做到最极致。

    当然开源社区的思想和实际企业中追求的目标有些差异,开源属于完全自由的思想,追求代码的极致实现方式,企业就要考虑实际的生存现状,企业从大方向上也是趋向于走向理想化,但现实中企业首先要保证有收益才会生存下去,所以企业的生存发展过程中是不断向着理想化的状态迈进,很多企业还没开始进入理想化的状态就已经倒闭了。所以程序员的理想化状态要符合当前的工作实际状态。

    这点就讲到了开源社区的起源,首先开源社区的发起者属于理想主义者,而且基本上算是衣食无忧的状态,吸引着一群同样状态的人去维护,更新维护代码的标准都一致,大家一起维护这套代码,不断重写代码重构代码以达到理想的状态。对于一个标准的程序员讲基本的职业素质讲见到不合适的代码就是选择重构,但平时企业工作的工作安排很少直接安排代码重构,都是以任务板块的方式估算时间,所以重构的时间只能放在业余的时间。

    版步权归芝士向回答网站或原认作者象所支有

    但在实际开发过程中重构代码的难度还是非常大,如果接手是一团乱糟糟的代码,而且项目周期卡的非常紧迫,明知道代码里面很多坑但没时间去重构,遇到这种状态想要长久的安稳呆下去还是要想尽一切办法重写如果实在不行进行代码的优化,程序员的准则就是写出优秀的代码,并且持续不断的优化,写出让自己看着顺眼代码。

    对于一个程序员来讲写出优秀的代码是基本素质。所有一切的代码都是为了程序框架,框架的目的是为了项目更加顺畅的运行,有些企业研发成本有限所以在框架上下的功夫不大或者直接从开源社区拿到在项目进行的过程中,会遇到各种棘手的问题,本身开源社区的代码很多并没有经过项目的洗礼,里面可能藏着很多bug,曾经在项目开发过程中遇见过深层次的开源bug,由于开源代码数据量巨大所以排查起来会非常困难,国内很多程序员做的就是在开源代码里面找到问题并且尝试解决,能够把开源代码框架理解透彻,并且能够完成深度的定制的程序员就算是水平不错的了,毕竟国内软件产业大部分还处于解决有没有问题上,至于深层次的挖掘还差的非常远,所以很多程序员重构的代码心思和精力都不够,希望能帮到你。

    2024-05-02
    1楼
    回复
  • 荣育慧用户

    不要重新别人的,自己可以重新

    2024-05-02
    2楼
    回复
  • 孙光辉用户

    这是一个非常好的问题,作为一名从业多年的程序员,我来回答一下这个问题。

    首先,对于一款已经发布的软件产品来说,在很多情况下,重写代码并不是一个明智的选择,一方面重新代码对于技术人员来说,未必会带来技术上的提升,另一方面重新代码可能会导致大量新的问题出现,结果未必像之前想象的那样好。

    对于不少开发团队来说,在决定重写代码的时候,往往有三方面因素,其一是开发团队的人员变动,这是比较常见的一个原因,而且很多新接手代码的程序员通常也比较支持重写代码,原因自然是不想阅读已有的代码逻辑;其二是产品在升级迭代的过程中遇到了较大的障碍;其三是技术体系的重大变革。

    版权归芝士回答节网站或百原作量适者心所有

    在这三个因素当中,除了技术体系的变革不得不进行代码重写之外,其余两种情况一定要慎重。实际上,当技术体系出现重大革新的时候,产品往往也会基于新的技术模式进行重新设计,这与重写代码还是具有一定区别的,程序员在这个过程中也会获得明显的技术提升。

    按照历史经验来看,如果在开发团队出现人员更替的时候,重写代码往往会带来更多的问题,不仅会延长开发周期,同时也会出现很多沟通上的问题,之前已经解决的问题往往还需要再解决一遍。对于已经上线的互联网产品来说,重写代码可能会带来比较严重的安全问题,这一点一定要引起足够的重视。

    最后,对于程序员来说,通过修改自己的已有代码,或者团队做定期的review是很有意义的,但是要大面积重写代码一定要慎重,尤其是重写其他人的代码,更应该慎重。

    的开内系必什,采转场周。

    我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

    如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

    2024-05-02
    3楼
    回复
  • 吕锦云用户

    也不是绝对的不能重写代码,任何事情都要去评估收益风险比,如果你重写之后可以获得更好的可读性,更高的性能,也是可以重写的。

    比如淘宝为了去ioe重写了整套的背后的系统,然后他达到的收益是他去掉了IBM小型机 oracle数据库和Emc存储设备,为阿里节省了巨额的成本。

    很多公司都有一些历史悠久代码,但是没有重写,是因为他重写之后的收益并不高。但是可能影响核心业务,这样如果出现问题,就得不偿失了。

    转派载或者引用本文石内容请注明广来源片于层芝士回答

    2024-05-02
    4楼
    回复
  • 熊燕星用户

    重写代码是需要很大勇气的。

    如果需要重写的代码是经过了许多人转手的,那么恭喜你,你掉进了一个大坑。不同程序员的代码风格、代码注释、文档,这些都将成为你重构路上的绊脚石。而且更常见的是许多程序员压根不写文档、注释,毕竟这些都是程序员最讨厌的事儿。

    版权归芝士回品答网站或务原作者件斗明所有

    就算你比较厉害,通过代码反推逻辑,但是如果代码中本身就有坑,可能后面就会被越冷越深了。这种经过多次转手的代码,大概率很难找到人解释的清真正的代码逻辑吧。没有准确的业务逻辑,也没有清晰的代码逻辑,重构之路何其难哦。

    于主小使业日问角根白万走马话响。

    就算里面有注释,但是要去翻看各种风格程序员的代码,也是一项巨大的挑战。大括号风格、换行风格、代码臃肿,这些都是不好啃的硬骨头。这样重构下来,估计自己都要掉不少头发…

    还有一种情况就是重写的是自己之前的代码,有注释的习惯还算好一些,如果没有可能真的看不懂自己曾经写的代码,也就很难看得懂代码的逻辑了。

    总之,对于经过多次转手的代码,重构难度还是不小的,特别是那种逻辑有些绕的,更是难上加难。

    代码初写一时爽,待到重构天天愁!

    民或想已五,文组越市眼。

    2024-05-02
    5楼
    回复

参与评论

游客评论不支持回复他人评论内容,如需回复他人评论内容请