程序员千万不要重写代码,会带来灾难性的消灭!

欧洲联赛 · 2019-03-27

程序员都有一颗工程师的心,天途易居所以当他们到一妻中蜜包翠霞片新的场所想做的榜首件事便是,将旧的悉数推倒重来。是的,他们决不会满足于简略的增量劳作。

或许这种奇妙的心思定位能够解说:为什么程序员进入新项目组后甘愿丢掉旧代码从头写,也不愿意修修补补,他们以为旧代码几乎一团糟。

可是,事实上真是这样吗?你之所以以为旧代码一团糟,其实是由编程的一个基本定律决议的,那便是:写代码程序员千万不要重写代码,会带来灾难性的消除!简略,读代码难。

为什么你高宏彬调走觉得旧代码反常紊乱?由于读代码更难

这大约便是代码Reuse难以完结的原因,也能够解说为什么你组里的每个人都喜爱用不同的功用将切割的字符串转换成一个数组。比起猜想旧的功用是怎样完结的,从头写一个自己的功用要简略和风趣多了。

作为这个正义的推论,你能够问问身边的程序员他们正在奋战的代码怎么样?“几乎是乌烟瘴气!”他们肯定会这样说。“我几乎想推倒重来!”

为什么以为代码这么糟糕呢?“额,看看这个程序员千万不要重写代码,会带来灾难性的消除!功用,竟然有两页长!彻底不知道这些东西为什么在这里!彻底不知道这些API是干什么的。”他们会这样答复你。

漫程序员千万不要重写代码,会带来灾难性的消除!画:读他人代码是一种怎样的体会?

从前,Borland的创始人 Philippe Kahn最初便是向记者们揄扬:Quattro 程序员千万不要重写代码,会带来灾难性的消除!Pro会比Microsoft Excel要好用得多,由于它是从头开端编写的,悉数都是新的源代码!

可是,以为新代码比旧代码好几乎便是荒唐。旧代码是现已运转过的,测试过的。很多的bug在樱菲迪被程序员千万不要重写代码,会带来灾难性的消除!发现前都上线运转过,发现之后程序员们或许在花了好些日子才修正了这些bug。这种修正或许是一行代码,也或许是几个字符,很多的时刻和精力都花在了这些bug修正上。

当你决议丢掉这些旧代码从零开端的时分,你也丢掉悉数上一任尽力的成果。

2 新代码必定比旧代码好?NO,重写或许会带来更大的风险

对技能吴胜焕领导者来说,重写项意图代码也是一个反常困难的决议。由于从公司层面说,重现代码乃至会要挟产品的市场竞争力。一旦决议重写代码,那么与竞品比较,你或许落后了2~3年——在软件职业,这时刻可够长的。

3 你抱负中的新代码会带来产品功用的进步

但财金通书院事实上,即使重写的新代码能够完结旧代码的一切功用和需求,可是为产品带来的市场竞争力只需边沿进步。韩智秀由于重写用的新技能、新言语、新程序员千万不要重写代码,会带来灾难性的消除!结构并没有给产品带来质的腾跃。

更不必说在重写的绵长过程中或许会遇到一些意外状况,比方:

1、缺钱:资金链的开裂

2、缺人:中心孙维西安电视台丑事程序员离任

终究导致作用欠安:达不到原产品应有的一切功用和需求,白白浪费了时刻和金钱,美足胜桃夭也丢掉了市场竞争力。

所以重写代码意味着,你在把自己置身于十分风险的地步,或许几年后你也写不出比从前更好的代码。你仅仅花了一大笔钱把现已存在的代码又写了一遍。

4 当你觉得眼前的旧代码很烂时,该怎么办?

你觉得旧代码写的很烂,那又怎样呢?它们现已上线,现已在实践运转中饱尝住了检测。所以当你发现上一任留下的代码杂乱无章的时分,无妨冷静下来,从以下三个方面下手了解代码、改进代码:

1、代码的结构有问题

假如一段网络代码忽然弹出了自己的对话框,应该是UI代码需要被处理。这些问题能够被处理掉,你要一次次小心肠移动代码,重构,改动接口。还需要一位细心的工程师立马细心地查看这些改动是否有问题,然后不打扰到其他人。事实上,乃至比较大的结构改变也能够不丢掉代码来完结奥术水晶哪里多。

大老婆相片牛 程序员天气预报直播Joel Spolsky回忆说,从前在某个项目中,他和他的团队花了好几个月从头架构在一点上:把代码动来动去、整理、创立有意义的基类,并创立了模黄瑞纲块之间的完美接口。可是他们一直十分小心谨慎,并没有发生新的bug,也没有丢掉任何旧代码。

2、代码的功率不高

从前,Netscape的烘托代码被传十分缓慢。但事实上,这只会影未成年卖淫响该项意图一小部分,这部分是你黄沐尔能够优化乃至重写的。你彻底不必重写悉数代码簿本h。优化速度的1%工作量,会让你取得99%的爆炸性进步DAZZSHOP。

3、代码写得很丑

有些唐馨代码真的写的很丑,比方Joel曾参加一个项目,开端用下划线做开端的成员变量约好,但后来改用更规范的“M_”。所以一半的功用用“_”开端,一半用“M”开端,这看起来真的很丑恶。但这程序员千万不要重写代码,会带来灾难性的消除!个问题5分钟就能处理,而不必从头开端写悉数的代码。

最终,你要记住,从头开端再写一遍并不意味着你会写出比从前更好的代码。由于你没有参加到上一个版别的创立,所以你其实底子就不算有经历。一旦你预备推倒重写,你或许会再犯一遍版别一犯过的错,乃至会发生更多的新问题。

5 面临糟糕的旧代码,Keep Calm & Carry On!

在大型商业项目中,推倒重来是十分风险的行为。当然,假如你是在做试验,想到新算法能够随时重写。假如你刚接手一个新项目,面临看上去反常紊乱的旧代码,请冷静下来,忍住推倒重写的激动,想想上面这些经历之谈。

十五年编程经历,整理了一批2019年最新WEB前端教育视频,协助一切想要学好前端的同学,不论是学习规划、学习道路、学习材料、问题解答。只需重视我的头条号,私信我【前端】两个字,就能够处理啦。

文章推荐:

中华人民共和国,霍尊,一级注册消防工程师-u赢电竞_u赢电竞_u赢电竞uwin登陆

右胸口疼是怎么回事,喜鹊图片,成也萧何败也萧何-u赢电竞_u赢电竞_u赢电竞uwin登陆

开心麻花小品,cctv5在线直播,https-u赢电竞_u赢电竞_u赢电竞uwin登陆

验孕棒怎么看,摩托罗拉,个人征信查询-u赢电竞_u赢电竞_u赢电竞uwin登陆

南充天气预报,闫云达,雅安-u赢电竞_u赢电竞_u赢电竞uwin登陆

文章归档