当前位置: 首页 > 科技观察

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

时间:2023-03-13 12:00:34 科技观察

所有开发人员都认为他们编写的代码完全可以理解,但他们无法破译彼此的代码(更不用说维护代码了)。原因是他们编写的代码高效但草率,看起来很干净但实际上很乱。草率的代码是可以工作但过于混乱而无法很好地扩展或概括的代码。计算机科学家是不同的——他们写出漂亮的代码却无法运行。是什么原因?以下四大理由为你揭秘。四个理由理由一:对于计算机科学家来说,编码是一门艺术。而对于其他人来说,编码是一种工具,计算机科学家编码是因为他们想编码,而其他人编码是因为他们想完成一些事情。开发人员通常根据他们的第一个想法来构建程序。之后,他们以此为基础,直到出现MVP,通常不考虑其他方法。另一方面,计算机科学家会考虑每个实施方案并权衡利弊。几周后,他们会有一段漂亮的代码,但它仍然无法完全工作,因为输出格式尚未确定。开发人员使用简单的工具来有机地扩展代码,导致大量草率的代码;计算机科学家在开始时构建一个结构,然后在该结构中工作。最有效的方法是使用有机方法来避免编码器阻塞并按时交付。然而,如果你想写持久化的代码,你可能需要把结构放在第一位。原因二:开发者在写代码时往往不考虑读者的感受即使是在协作项目中,开发者在写代码时也往往只考虑其功能。其实代码也需要维护,只是他们经常忘记了。问题是这样的习惯会产生意想不到的后果。三个月后,当他们想在代码中添加一个功能时,他们很可能不会理解他们编写的代码。这种情况发生的频率超出您的想象!其他开发人员更难按要求实现新功能。理解他人编写的代码可能需要几天或几周的时间,具体取决于项目的规模。原因3:即时奖励的谬误在被问题困了好几天后终于找到解决方案不是很好吗?这确实是一个激动人心的时刻。但问题在于,开发人员对快速修复的渴望常常导致他们忽视长期存在的问题。例如,他们可能修复了错误或添加了功能,但他们没有意识到代码结构已经过时。这意味着他们必须为他们添加的每个新功能做更多的工作。相反,从长远来看,程序的重组使添加功能变得更加容易。有很多人宁愿快速修复也不愿解决根本问题。与长期变化相比,人类奖励系统更容易受到短期修复的影响。但是在这样做的过程中,您可能会积累大量的技术债务。从长远来看,这会消耗大量的人力。理由四:风格也是一个因素每个人的编码风格都不一样。有些人讨厌行内评论,有些人喜欢它。一些人在第一行代码上方添加函数注释,另一些人选择在下方添加。单值判断有人喜欢,有人讨厌。这就是为什么对一个人来说似乎是祸害的同一段代码对另一个人来说可能是小菜一碟。如果您独立工作,那很好,但当今的许多软件都是协作构建的。因此,在项目初期树立良好的作风非常重要。当然,确保所有开发人员都遵守风格指南也是必须的。否则,您最终会得到混合了不同约定的混乱代码。干净的危险与混乱的危险有些开发人员声称他们一直在编写干净的代码,要么是在撒谎,要么是高估了自己。话虽这么说,开发人员不想编写过于干净的代码是有充分理由的:一些开发人员花一整天的时间来清理他们的代码只是为了美观。如果您正在与其他人协作或需要呈现代码,这当然很有用。但总的来说,完善代码与普通医疗提供的手术效果相同——看起来不错,但并没有解决根本问题。如果他的目标是从头开始编写非常干净的代码,那么他遇到编码障碍的机会就会高得多。为避免出现重大障碍,最好从一开始就自然地生成代码。特别适合初学者。来源:unsplash但另一方面,开发者也不想让代码过于混乱,这样会使代码难以维护。缺乏维护会导致代码腐烂,从长远来看弊大于利,并导致项目放弃。因此,开发人员需要在眼前利益和可维护代码之间找到平衡点。很多人都被困得一团糟,所以提高清洁度才是出路。五个提示一些好习惯可以大大提高开发人员的清洁度和工作效率。图片来源:medium.com技巧1:尽早测试,经常测试一些开发人员对他们的技术非常有信心,以至于他们在不运行测试的情况下构建整个项目。但除非手头的任务是完全微不足道的,否则你会后悔的。一旦他们开始编译或执行程序,屏幕上就会出现错误信息,情况可能会更糟。直到几个月后,当用户发现该程序无法正常运行时,该错误才被发现。从事技术工作的教训之一是:“如果某个程序没有在所有情况下都经过测试,则永远不要假设它会起作用。”尽快构建可执行文件。一有机会就测试,一旦出现问题就立即修复。技巧2:结构良好且格式随意只要代码的底层结构良好,就可以快速修复。事实上,开发人员经常面临非结构化或过时的代码。在这种情况下,最好花一些时间重构代码。如果修复没有正确注释或隐藏变量名,这不是什么大问题。然而,在有缺陷的代码中构建干净的功能完全是浪费时间和资源——开发人员可能不得不重写很多功能。因此,清洁度和速度之间的折衷是保持基础设施清洁和最新,细节上尽可能少的混乱。技巧3:保持代码干净我称之为厕所规则。如果人们(至少)像以前一样干净,公共浴室就会处于完美状态。从大多数公共厕所的状况来看,事实并非如此。保持《厕所法》的实施需要每个人的纪律——以及一位优秀的管理者。像这样受到纪律处分是值得的,因为从长远来看,回报是巨大的。通过完成不可能来实现不可能是不可能的——做出明智的决定,每天向前一点点,不可能的事情就会发生。技巧4:为重构分配时间每一个混乱都会产生技术债务。就像金融一样,你做的时间越长,你创造的债务就越多。对于一般的开发人员来说,花几天甚至几周的时间清理代码听起来不太好。这就是为什么养成每天还清一点债务的习惯的原因。最好先预留15%的时间用于重构。我称之为时间规划,随着时间的推移完善代码的数量是惊人的!技巧5:寻求评论有时代码会搞砸是因为开发人员不知道如何完善它。例如,某些代码可能使用switch语句,但使用map会容易得多。在这种情况下,高级开发人员的建议至关重要。建立代码审查程序有助于创建反馈循环。这有助于年轻开发人员获得更好的学习曲线和健康的讨论文化。常规是关键,如厕规则和时间计划也是如此。初级开发人员应该养成征求意见的习惯,而高级开发人员也应该提供建议。理想情况下,审查时间应该是开发团队核心流程的一部分,每次讨论也应该总结关键建议。平衡结构与混乱太多的清理会浪费时间和资源,编写草率的代码总比被编码人员拖延而根本不交付要好得多。但与此同时,草率的代码缺乏灵活性且难以维护。这五个技巧可以帮助您有效地清理代码,同时节省您的时间,在混乱和结构之间找到平衡。去练习吧!