作为一个遵循规则生活的人,我发现为自己设立规则能让生活更有序,让决策更明确,不再需要在匆忙中做出选择。例如,对于是否应该去健身房这样的问题,我的规则会告诉我答案。最近,我开始思考那些对我有影响的规则,并想到为软件开发者制定一些应该共同遵守的规则。这些规则不仅涵盖了基础的编程原则,还强调了编程中的哲学思考。
我们要明白技术只是获取解决方案的手段,而非解决方案本身。尽管我们可以熟练使用各种最新的JavaScript框架、编程语言甚至操作系统,但它们只是工具,真正的解决方案需要我们深入思考和探索。我们不能因为迷恋某种技术而盲目使用它,否则可能会陷入误区。我们必须警惕这种倾向,避免因为手中的工具而忽视了真正的问题所在。
在编写代码时,“聪明”往往成为“清晰”的敌人。清晰明了的代码比晦涩难懂的代码更有价值。尽管在某些情况下,“聪明”的代码可能兼具清晰性,但我们需要时刻警惕代码的复杂性可能会掩盖其真实意图。我们应该遵循一个原则:始终优先追求代码的清晰性而非复杂性。为了做到这一点,我们可以参考Robert C. Martin的《干净的编码者:专业程序员的行为守则》中的指导原则。
第三点可能有些争议,那就是只在必要时才编写代码。虽然编写代码是程序员的工作内容之一,但我们应该努力以最少的代码来解决问题。这意味着我们应该只编写实现功能所必需的代码,避免添加过多的“酷”功能来增加代码的复杂性。多余的代码不仅可能引入错误,还可能增加未来的维护工作量。优秀的软件工程师会专注于写必要的代码,并删除不必要的部分。
评论区已经开启,喷子们,你们的口水可以尽情留下了,但我选择忽略。
虽然一些道理看似显而易见,但实际操作时却常被忽视。比如,在开始编写代码之前,你是否真正想过它在做什么?
有多少次,你未深思熟虑就匆匆动笔,却意外实现了功能?这种情况,我经历过无数次,这也是我时常需要反复琢磨的一条规则。实践测试驱动开发会有所帮助,因为你需要明确了解代码的作用。但即使如此,仍有可能出现偏差。在开发特性或功能前,要确保自己完全理解需求。
测试代码并不只是QA的工作。在交付之前,请自行运行测试案例,这是不可或缺的一步。你真的需要找出那些尴尬的错误。许多工程师忽视了测试的重要性,但保证代码质量是每个人的责任。
每天学习新知识是必需的。如果你停下脚步,就会退步,因为遗忘是不可避免的。每天学习一点新知识并不会占用太多时间。尝试读一本书,去年我读了很多书,平均每天花费45分钟在阅读上。每天的小进步会积累成巨大的成就。如果你想在未来有所收获,现在就开始投资吧。技术日新月异,持续学习和提高技能是必备之路。
写代码应该是快乐的。虽然最初可能是被优厚的待遇所吸引,但成为软件开发者是因为你对编程的热爱。写代码的乐趣不应被遗忘。写代码的过程本身就充满乐趣,我享受每一次编写和优化的过程。即使再忙,我也尽力让编程占据更多时间,因为那是快乐的源泉。也许你已经忘记了编程的乐趣,那么是时候重新找回那份乐趣了——通过开始一个小的项目,或者调整心态,意识到你正在创造快乐并享受其中。
无论学习多少知识,总有你所不知道的东西。接受这一点很重要,因为你可以控制那些想要学会一切的冲动。不知道答案并不意味着失败,寻求帮助或提问是正常的。你可以接近了解你想知道的事情,我一直这样做。不必学会一切,重点是你需要知道的东西,并提升学习速度的能力。
关于最佳实践,一切都要因地制宜。“测试驱动开发是最适合你的编程方式吗?”这些问题没有固定答案。情况不同,答案也会不同。人们会向你推荐所谓的最佳实践,但并非所有情况都适用。我在写代码时会遵循许多最佳实践,但有时也会选择背离。原则是稳定的,但最佳实践是灵活的。
力求精简是软件开发和人生的智慧所在。所有问题都可以分解,而最简单的解决方案往往是最好的。但这并不容易,简化需要付出努力。我致力于简化复杂的软件开发和人生问题。别害怕提出简化的解决方案,即使需要更多的精力和耐心。花时间、多努力,你一定可以做到的。遵循原则,共同前行
我所遵循的规则,你是否也认同?
这篇文章源自oschina.net的译文,标题为《程序员应遵循的11大规则》(11 Rules All Programmers Should Live By),感谢翻译团队的不懈努力:北风其凉、pseudo、nzchris、霍啸林以及无若。这篇文章以其丰富的内涵和深入的洞察,为程序员们提供了宝贵的指导和启示。 |