https://www.freecodecamp.org/news/thought-on-the-pragmatic-programmer/
简而言之:古老而又黄金。
《实用程序员》于1999年出版,是一本有关如何成为一名实用程序员的书。真正的意思是“优秀程序员”。
是的,它大约在20年前出版。但是,这本书仍然提供了许多与程序员或软件工程师非常相关的见解,就像有些人如今所说的那样。
您可能以前曾经听说过这本书,并质疑它的真正含义。好吧,今天我将与您分享我在阅读本书时学到的一些有趣的东西。
成为一名程序员不仅仅是技术技能
阅读本书的标题时,您可能希望它会提供很多技术课程。但实际上并非如此。使本书在20年后仍然有意义的是,它告诉我们,成为程序员并不仅仅涉及技术实力。而且我们经常忽略这一事实。
这本书告诉我们,编程不仅仅是技术能力。
猫吃了我的源代码
这是本书的第一章,是一个非常有趣的概念。
还记得有一天我们没有完成作业,我们说那只狗吃了吗?(实际上我不记得了,因为我总是完成作业?)
那以及本章所教我们的实际上是责任。当您对某事负有责任时,您应该准备对此负责。
如果您犯了错误而不能履行这些责任,则必须弥补并找到解决方案。不要编造借口,不要玩指责游戏。您不能仅仅上班告诉所有人猫都吃了您的源代码。
提供选择,不要做la脚的借口。
都是关于窗户破了
在这本书中,有一个关于城市地区的故事,这个城市变得非常混乱和破败,这都是由于一个破窗户造成的。
这很像我们的代码:当我们看到一些脏代码(我们可以看到它是一个坏的窗口)时,我们可能开始认为让代码变脏是可以的。以后再回去是可以的,大多数时候我们从不这样做。
尽量不要让“破损的窗户”得到修复。找到此类代码后,请尽快对其进行修复。当您继续认为没有人有时间修复该损坏的代码时,您不妨去买一个垃圾箱来保护您的代码。
本章讨论的内容实际上很简单:它涉及主动性和照顾您的东西。
主动,成为催化剂
有时候,您可能知道有些事情是一件好事,或者实际上需要完成某件事。它浮现在您的脑海,您只是想自己就认为这是对的。
如果您一直在思考,什么都不会发生。或者,如果您只是要求将其显示在项目时间表上,则可能会遇到巨大的功能开发要求和技术债务。因此,讨论结束了一年。
现在该加强您的游戏了。尽力而为,不要过度,但要使其合理。一旦您有了完整的想法,就向人们展示。他们可能会认为“是的,如果我们这样做的话可能会更好。”
向他们展示未来,人们将在您周围集会。成为变革的催化剂。
更重要的是,这本书还教会了我们一些程序员常会忘记的基本基础知识。
有时,我们对工作的研究越深入,就越容易忘记很久以前学到的基本知识。
忙于追逐功能和新技术改进,我们常常会忘记,在深入研究之前,实际上还有很多事情需要我们事先注意。
干净的代码
我们经常忘记的最基本的原则之一是干净的代码。随着功能的堆积越来越多,代码库变得越来越胖,技术债务也随之增加。
但是我们必须始终记住,每次编写代码时都要保持代码的一致性和整洁性。
本书中提到的一件事是DRY原则(不要重复自己)。它与代码可重用性有关。复制是邪恶的,那是事实。重复的代码会使维护代码变得非常困难,并且在您需要更改功能或修复错误时会引起混乱。
还记得那个时候需要修复一些代码的时候吗?您是否意识到有些代码与您刚刚更改的代码非常相似?这样一来,您就必须同时更改该部分和另一部分,然后也许也要更改一下……您就可以了。
找到正确的工具
就像a夫一样,找到正确和适当的工具非常重要。a夫开始砍树之前。他们必须决定-他们需要电锯吗?还是斧头足够好?也许他们可以使用一种全新的光剑。但是使用菜刀可能需要一些时间才能砍伐树木。
对于程序员来说这是相似的:这本书告诉我们,对于我们来说,在开始工作之前找到合适的工具非常重要(就像一个好的代码编辑器一样)。我们不应该直接进行编码。
例如,实际上可以使用Windows记事本进行编码,然后使用控制台进行编译。但这是适合您的工具吗?尝试找到最舒适的最佳编辑器。学习和掌握它,它将使您的生产率提高数倍。
书中提到了几种编辑器,例如Emacs或Vim。但是如今,您可以找到更多现代代码编辑器,例如Visual Studio Code。寻找适合您的一个。就像您在咖啡中的口味一样-有些人喜欢拿铁咖啡,有些人喜欢卡布奇诺咖啡。
不要巧合编程
这是书中提到的非常重要的一点。在我们所有的编程旅程中,可能有时我们只是盲目地和意外地进行编码……并且某种程度上它才起作用。
您可能不确定自己的实际工作,因此您不断添加越来越多的代码,但它仍然有效。也就是说,直到有问题的一天,您尝试删除一些代码,它完全破坏了所有内容。而且您不确定是哪块引起的。
依靠未知是非常危险的。当您不确定代码应该做什么时,请尝试简化它,并确保代码本身是可靠的,而不仅仅是偶然的可靠。
仅依靠您确定的事情。不要巧合编程。
单元测试
最近,测试是一个热门话题。是的,这也是20年前的一个重要话题(而且将永远如此)。
但是有时候,人们如今忘记了单元测试。他们可能刚刚完成了代码,并且认为一切都还好……直到由于边缘情况导致代码在生产中被破坏为止。
为了保持稳定性和安全地进行重构,我们始终需要通过编写单元测试来保护代码。如果您的测试仅涵盖幸福的道路,那将是远远不够的。对您的代码执行无情的测试,并记住您的代码只有在涵盖所有可用测试后才能完成。
单元测试将帮助您确信自己的代码部分已经完成。
取得所有权
我想谈的最后一件事。众所周知,程序员喜欢以代码形式留下“遗留”。是的,大多数情况下都是不好的。
作为程序员,我们应该为自己的工作感到自豪。我们应该为我们所承担的责任和我们一直在努力的代码感到自豪。
当我们最终能够以自己的代码为荣并拥有它时,我们将可以留下良好的遗产。人们会把我们的代码视为签名。当他们看到我们的代码时,就会知道该代码将是可靠且由专业人员编写的。
整理起来
本书中涵盖了我这里没有讨论的更多主题,例如需求和团队合作。如果您有兴趣探索这些主题,则应尝试查找并阅读本书!
不过,请注意:尽管我喜欢这本书,但看看这本书有多老(20岁),似乎有些东西并不相关。它谈论诸如Prolog之类的旧语言,并像一个真正的新概念一样谈论OOP-因此这些奇怪之处似乎并不正确。
但是不能怪它,因为它已经有几十年了。
除此之外,本书涵盖的大多数内容仍与当前的编程时代密切相关,例如我上面提到的那些主题。
如果我想总结本书中的所有内容,我会说它基本上涵盖了我在网络上阅读的有关成为一名更好的工程师的所有内容。
感谢您阅读我有关实用程序员的文章!希望它使您对作为程序员或软件工程师的旅程有所了解。如果您有兴趣了解更多信息,请抓住本书的副本。