我从阅读《程序员修炼之道》中总结出的5个关键要点
上个月我读完了《程序员修炼之道》。我承认我平时不太喜欢在空闲时间读软件开发方面的书,但这本书确实让我受益匪浅,我希望能将一些知识运用到未来的工作中。
构建知识库
你的知识库包含了所有与编程相关的知识、经验和经验。就像构建金融投资组合一样,你应该确保你的知识库多元化——不要把所有鸡蛋放在一个篮子里!密切关注技术趋势,并确保在新领域或新技术上进行“投资”。时不时地学习一门新的编程语言。
如果你想“低买高卖”,可以在新兴技术流行起来之前就学习它,这可能会带来丰厚的回报(如果它真的流行起来的话!)。作者还建议阅读技术书籍、参加你感兴趣的新领域的课程,或者加入相关的技术交流会。
就我个人而言,由于工作原因,我现在主要专注于 React,但我确实想拓展一下视野,了解一下其他前端框架和技术,比如 Svelte、Preact 或 Vue。我还打算学习一些 Ruby on Rails,以便尝试为 DEV 代码库做贡献。
确保你的代码是正交的。
在软件开发中,如果对其中一项的更改不影响另一项,则称这两项是正交的。例如,如果你的应用程序包含数据库和用户界面,那么更换数据库不应该需要修改用户界面。
问问自己:如果我大幅改变某个特定功能的需求,会有多少个模块受到影响?
一般来说,组件最好是自包含的。这样可以降低风险——如果你依赖第三方库,但想把它替换成另一个库,这应该会相对容易。如果你对某个部分进行更改,你会确信这些更改不会影响其他地方。更简单、更小的组件也意味着更容易编写和运行测试,同时也能提高代码的可重用性。
达到编辑流利程度
熟练使用编辑器基本上意味着掌握大量的快捷键。编写代码时,你肯定希望把更多的时间花在专注于代码编写本身,而不是思考如何把代码输入编辑器。我知道如何注释和取消注释一行代码,但我完全不知道如何一次选择单词或一行(我只会用鼠标选择),所以我知道这是我需要练习的地方。
如果你想挑战一下自己,可以尝试一周不用鼠标或触控板,只用键盘编写代码。更轻松的提升编辑器流畅度的方法是,在编写代码时不断问自己:有没有更简单的方法来实现你正在做的事情?然后找到它,并尽可能地使用它。这可能是一个新的键盘快捷键,也可能是你可以安装到 IDE 中的新扩展。如果找不到解决方案,你甚至可以自己编写一个扩展。
准备一本工程日志
作者建议随身携带纸质笔记本,每天记录工作内容。它也可以用来存放你的想法。这样做的好处在于,你可以日后回顾,重新回忆起当初做某件事的理由。把问题或解决方案写下来,也能帮助你冷静思考,意识到自己是否做错了什么。
这本书特别推荐使用纸质文档而不是电子设备——这一点我不太认同。目前,我遇到难题时会在笔记本电脑上做些笔记,之后再找到解决方案,这些笔记对博客文章的灵感很有帮助,我肯定会继续保持这个习惯。我或许还会把它发展成更详细的每日工作日志。
使用基于属性的测试
编写单元测试时,你通常会考虑代码可能出错的方式,并编写测试来覆盖这些情况。但是,如果你在编写这些测试时做出了错误的假设,或者没有意识到你遗漏了某个特定的边界情况,会发生什么呢?
引入基于属性的测试。你不再需要提供一个输入并测试一个特定的输出,而是提供一个属性(例如,在测试排序函数时,该属性会断言结果是否正确排序),然后测试会尝试一系列不同的随机组合,以查看该属性是否会失效。根据你使用的编程语言,很可能已经有现成的属性测试库,例如JavaScript 的JSVerify 。
我一直很喜欢看看别人在读什么书,所以如果你有 Goodreads 账号,欢迎加我好友。感谢阅读!
文章来源:https://dev.to/emma/my-5-key-takeaways-from-reading-the-pragmatic-programmer-1959