代码太草率?5个技巧教你如何编写漂亮的代码

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


文章图片1

图源:unsplash


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


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


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


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


文章图片2

四大理由


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


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


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


文章图片3

图源:unsplash


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


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


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


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


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


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


文章图片4

图源:unsplash


理由3:即时奖励的谬论


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


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


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


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


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


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


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


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


文章图片5

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


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


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


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


文章图片6

图源:unsplash


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


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


文章图片7

五项技巧


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


文章图片8

图源:medium.com


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


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


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


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


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


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


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


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


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


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


文章图片9

图源:unsplash


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


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


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


技巧4:为重构分配时间


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


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


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


文章图片10

图源:unsplash


技巧5:要求审查


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


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


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


平衡结构与混乱


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


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


快去实践一下吧!


文章图片11

留言点赞关注

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

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

系统架构设计,高并发场景下,消息队列中间件究竟该如何选型?

为何要使用消息队列在高并发业务场景下,消息队列在架构设计中至关重要,特别是在异步处理、削峰、解耦上有不可替代的作用。目前较为流行的消息队列中间件有Kafka、ZeroMQ、RabbitMQ、RocketMQ、ActiveMQ、Pulsar 等。

CSS居中解决方案荟萃

我是poetry,点击上方“关注”,每天为你分享前端进阶与个人精进干货。

代码太草率?5个技巧教你如何编写漂亮的代码

全文共2919字,预计学习时长9分钟图源:unsplash所有开发人员都认为自己写的代码完全能让人看懂,然而,他们却无法解密彼此的代码。

有个开发者总结这 15 优雅的 JavaScript 个技巧

JavaScript 有很多很酷的特性,大多数初学者和中级开发人员都不知道。今天分享一些,我经常在项目中使用一些技巧。1. 有条件地向对象添加属性我们可以使用展开运算符号(...)来有条件地向 JS 对象快速添加属性。

程序员写简历时的技术词汇拼写规范备忘录

这两年陆陆续续看过不少同学的简历,有一个小感慨就是:求职前,我们都会花很多的时间在自己的技术水平提升+笔/面试的准备之上,但往往却忽略了找工作第一步所需要的一个严谨且靠谱的简历。