正确的编程之道
最近,我读了希勒尔·韦恩(Hillel Wayne)在《Computer Things》时事通讯上发表的一期文章,里面有给编程新手的建议,其中一句话让我停顿了一会儿。原文如下:
“在某个时候,你会发现编程的正确方法,让这一切变得有意义的事情,你会相信,如果其他人也以正确的方式编程,整个领域都会变得更好。”
作者继续说道:
我不会告诉你不要被“正确方法”所迷惑,因为那几乎是不可能的。说实话,找到“正确方法”的感觉真的很棒,人生苦短,何必不开心呢。只要你意识到自己正在被迷惑,并尽量不要让自己成为“正确方法论者”。最终,这段“蜜月期”会结束,你会明白,无论人们使用哪种“正确方法”,编程都是令人沮丧和混乱的;而且,即使不使用“正确方法”,你也可以开发出很棒的软件。随着时间的推移,你会学到其他五十种“正确方法”,并学会将它们混合搭配,以解决手头的问题。
它本该如此美丽……
它让我回想起我发现正确方法的那些时光。
💥 第一点:React 比 Angular 好。为什么不是每个人都用 React 写前端呢?
💥 第二点:测试。为什么部分代码没有测试?为什么不是每个人都为所有东西都写测试?(好吧,我仍然认为这一点是对的)。
💥 第三点:重构。为什么有人要在旧代码中添加新功能,而不是用新的方式重写?既然已经知道不应该这样做,为什么还要保留这样的旧代码呢?
💥 第四点:代码覆盖率。如果没有它,其他程序怎么运行?用测试检查代码覆盖率,补充缺失的部分就够了,就这样。
💥 第五点:函数式编程。代码简短、简洁、赏心悦目。为什么不是每个人都用这种编程方式呢?
我可以继续说下去,因为类似的事情还有很多。如果你编程经验丰富,你可能已经列出了一堆这样的“正确方法”。随着时间的推移,我意识到程序员的生活并非非黑即白。并非总能找到“正确方法”。哎呀,有时甚至连别人都认为这种方法并非唯一,也并非正确。而你,心碎地同意了他们的观点。
因为这取决于代码的具体细节、项目本身以及客户的需求。首先,代码必须能够正常工作,需要添加新功能,而有时产品负责人并不真正关心为某个部分添加端到端测试可能需要一周时间(哦,我曾经参与过这样的项目!)。
我并非提倡编写糟糕的代码、不重构或不编写测试。我更强调的是,并非所有事情都取决于我们,而且,了解一些很酷、很有用的新方法并不总是意味着它应该被广泛使用。
然后理想破灭了……
我记得在一次面试中,当被问到如果接手一个遗留项目我会怎么做时,我毫不犹豫地回答:“首先我会用新技术重写它。”如今,我甚至会自嘲。而且,我当时也笑了,后来还在 Backbone 里加了几行代码(如果你懂的话,你懂的)。这些年来,我的重构方法一直在变化。通常情况下,我都会遵循我在这篇文章中总结的规则。我会改变我所遵循的规则吗?很有可能。
几年的编程经验教会我,世上没有放之四海而皆准的方法。当然,我们可以运用某些原则和技巧。然而,代码涉及许多变量,而当我们进入一个现有项目时,很多变量都是我们无法控制的。因此,如果因为某些东西没有按照“我们的方式”编写而感到沮丧,那就毫无意义了。
今天反思的契机就是正道。你明白了吗?你把它当圣经一样对待吗?或者有些东西你曾经相信,但今天已经不再重要了?我真的很好奇你是怎么看待这个问题的!在下面的评论区分享你的想法✨
鏂囩珷鏉ユ簮锛�https://dev.to/joannaotmianowska/the-right-way-of-programming-3jda