趣文网 > 作文大全

为什么除了计算机科学家 每个人都在编写草率代码?

2020-12-14 09:50:02
相关推荐

全文共2919字,预计学习时长9分钟

所有开发人员都认为自己写的代码完全能让人看懂,然而,他们却无法解密彼此的代码(更不用说维护代码了)。

原因在于他们写的代码都是有效却草率的,看起来很干净,但实际上却很凌乱。草率代码是指就是那些可以正常运行,但因凌乱而不能很好地拓展或通用的代码。

计算机科学家与之不同——他们写的是无法正常运行的漂亮代码。

原因何在?以下的四大理由将为你揭秘。

四大理由

理由1:对于计算机科学家来说,编码是一项艺术。而对于其他人来说,编码是一种工具

计算机科学家编码是因为他们想编码,而其他人编码是因为他们想完成某件事。开发人员一般会根据自己的第一个想法来构建程序。之后,他们会以之为基础,直到最简化可实行产品出现,通常不会考虑其他方法。

而计算机科学家恰恰相反,他们会考虑实施的每一种选择,并权衡利弊。几周之后,他们会写出一段漂亮的代码,不过由于尚未确定输出格式,代码仍然无法完全正常运行。

开发人员使用简单的工具有组织地扩展代码,从而产生了大量草率代码;计算机科学家则会在一开始建立起一个结构,之后在结构中开展工作。

最有效的就是用有机方法避免编码器的阻碍并按时交付。但是,如果想要编写持久代码,则可能需要把结构放在首位。

理由2:开发人员写代码时不常考虑读者的感受

即使是在合作项目中,开发人员写代码时也往往只考虑到它的功能。实际上,代码也需要维护,不过他们经常会把这件事抛之脑后。

问题在于,这样的习惯会造成意想不到的后果。当三个月后,他们想给代码添加一个功能时,很可能会看不懂自己写的代码。这种情况经常出现,次数之多超乎想象!

其他开发人员按要求实施新功能时,则会更艰难。看懂别人写的代码可能需要几天或几周的时间,这取决于项目的大小。

理由3:即时奖励的谬论

被问题困扰了好几天,最后终于找到了解决方案,是不是感觉特别痛快?

这确实是激动人心的时刻。但问题在于,开发人员对快速修复的渴望往往会让他们忽略那些长期存在的问题。比如,他们可能解除了故障或添加了功能,但他们没有意识到代码结构已经过时了。

这意味着每添加一个新功能,他们都必须要开展更多的工作。相反,从长远来看,对程序进行一次重组会让功能的添加变得更容易。

宁愿快速修复而非解决根本问题的人不在少数。与长期的变化相比,人类的奖赏系统更容易受到短期修复的影响。但这样一来就会累积大量的技术负债。从长远来看,这会消耗人的很多精力。

理由4:风格也是一个因素

每个人的编码风格都不一样。有些人讨厌内嵌注释,有些人却很喜欢这么做。有些人在第一行代码上方添加函数注释,有些人却选择在下方添加。有些人喜欢单值判断,有些人却对此厌恶至极。

这就是为什么同一段代码对一个人来说仿佛洪水猛兽,而对另一个人来说却是小菜一碟。要是独立工作还好说,然而如今的很多软件都是通过合作构建的。因此,在项目的早期阶段确定好风格十分重要。

当然,确保所有开发人员遵守风格指南也是必须的。否则,最后产生的将是混乱代码,毕竟其中混杂着不同的约定。

干净的危害vs.凌乱的危害

一些开发人员声称自己一直在写干净代码的,他们要么是在撒谎,要么高估了自己。话虽如此,开发人员不想写过分干净代码也不是毫无理由的:

1、有些开发人员整天都在清理代码,只是为了美观。如果是与其他人合作或者代码需要呈现,这当然很有用。但通常来说,完善代码与普通医疗保健提供的外科手术产生的效果一样——看起来不错,但没有解决深层次的问题。

2、如果他的目标是从头开始编写非常干净的代码,那么他遭遇编码器阻碍的几率就会变大。为避免出现重大阻碍,最好从一开始就自然生成代码。初学者尤其适用。

但反过来讲,开发人员也并不想让代码过于混乱,这会让代码变得难以维护。缺少维护会导致代码腐烂,从长远来看,这样弊大于利,项目会被放弃。

因此,开发人员需要在立竿见影和可维护代码之间找到平衡。很多人都深陷混乱的困境,因此提高清洁度是必由之路。

五项技巧

养成一些良好的习惯,可能会对开发人员的清洁度和生产力大有益处。

技巧1:尽早测试,经常测试

有些开发人员对自己的技术很有信心,甚至到了不运行测试就构建整个项目的地步。但是,除非手头的任务完全微不足道的,否则会后悔的。

他们一开始编译或执行程序,屏幕上就会显示错误信息,情况可能还会更糟。几个月以后,用户发现程序无法正常运行,错误才被发现。

从事技术工作会获得如下经验:

“如果没有经过所有情况的测试,永远不要认为程序会正常运行。”

尽快构建可执行文件。只要有机会,就进行测试,一旦出现错误就可以立即进行修复。

技巧2:结构合理,格式随意

只要代码的基础结构良好,就可以进行快速修复。而现实是,开发人员常常面对的是结构凌乱或过时的代码。在这种情况下,最好花些时间重构代码。如果修复程式未正确注释或存在隐藏变量名,也没什么大不了。

但是,在错误代码中构建干净的功能完全是浪费时间和资源——开发人员可能必须要重写很多功能。

因此,保持清洁度和速度的折中方案就是保持基础结构的清洁和更新,在细节上尽可能让内容混乱。

技巧3:让代码保持干净状态

笔者称之为厕所法则。如果人们使用完的公共浴室(至少)像使用之前的一样干净,那这公共浴室的状态就堪称完美。从大多数公共厕所的状态来看,现实并非如此。维持厕所法则需要所有人遵守纪律——还需要一位优秀的管理者。

遵守这样的纪律是值得的,因为从长远来看获得的回报是巨大的。通过完成不可能的事情来实现不可能,这是天方夜谭——做出明智的决定,每天前进一一点点,不可能才会实现。

技巧4:为重构分配时间

每一次混乱都在产生技术负债。像金融一样,时间越长,产生的债务就越多。

对于普通开发人员来说,花上几天甚至几周时间清理代码听上去并不是那么美好。这就是为什么要养成每天偿还一点债务的习惯。

一开始可以每天抽出15%的时间进行重构,这是个不错的方法。笔者称之为时间规划,长此以往完善的代码数量将令人惊叹!

技巧5:要求审查

有时候,代码出现混乱是因为开发人员不知道该怎么完善。比如,某个代码可能使用了switch语句,但使用映射会容易得多。在这种情况下,高级开发人员的建议至关重要。

建立代码审查例程有助于创建反馈环路。这会帮助年轻开发人员改善学习曲线,形成健康的讨论文化。

例程是关键,这与厕所法则以及时间规划是一样的。初级开发人员应养成要求审查的习惯,而高级开发人员也应提供建议。理想情况下,审查时间应该是开发团队核心过程的一部分,每次讨论也应总结关键建议。

平衡结构与混乱

过多的清理会浪费时间和资源,编写草率代码比受到编码器阻碍而完全无法交付要好得多。但同时,草率代码不灵活且难以维护。

这五大技巧能帮助你有效清理代码同时节省时间,在混乱和结构之间找到平衡点。

快去实践一下吧!

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

阅读剩余内容
网友评论
显示评论内容(2) 收起评论内容
  1. 2021-08-07 06:59水木清華[上海市网友]IP:3406830394
    或许是因为大家都追求效率,而没有意识到优秀的编码实践对于软件质量和可维护性的重要性。
    顶8踩0
  2. 2020-03-14 01:01流水画桥 离殇[贵州省网友]IP:1927340580
    这可能是因为很多人缺乏对优秀编码实践的认识,编写草率代码似乎能快速解决问题,但后果往往不堪设想。
    顶7踩0
相关内容
延伸阅读
小编推荐

大家都在看

故宫作文400字 二十四节气作文 认清自己作文 值得作文800字 介绍信英语作文 温暖作文300字 初中成长类作文 关于亲人的作文 作文名字大全 满分作文400字 历史作文300字 二十四节气 作文 摘抄作文400字 奋斗作文议论文 海盗船作文 国防教育作文 坚守作文600字 小狗作文500字 橘子洲作文 关于力量的作文 我的青春作文600字 回家的路作文 亲情主题作文 心中的阳光作文 冬日作文600字 童年作文200字 感谢什么作文 上海旅游作文 山茶花的作文 写黄山的作文