编码的十诫

编程在不断发展,越来越多的人在其中投入时间。 如此巨大的增长导致编码实践上的差异,这被证明是善良的,因为它通常可以为同一组问题提供多种解决方案。 但是,在调节这种增长以及使新移民更容易遵循最佳实践和方法时,在获得这种独特的解决问题技能时,总会有一些改进的余地。


长期以来,编程工作一直在快速发展。 为了以最有效的方式赶上来,必须阅读其他人的代码。 最好检查多种解决同一问题的方法。 这使您可以从不同的角度看待特定的问题,这正是优秀的程序员所做的。

不要试图重新发明轮子。 如果有直接,可用的解决方案,请加以学习,使用它,然后尝试解决更重要的问题。 如果您要执行的操作有一个或API,请使用它。 这不仅节省了时间,而且还教会您如何处理代码文档阅读以及将黑盒概念集成到代码中的方法,这是业界程序员正在做的事情。

可以将您的代码视为很少有人共同解决问题。 每个人都有一个明确的责任。 您的主要算法仅应指定他们的工作顺序以及一个小人物应该如何获取另一小人物的工作成果并在此工作上执行工作。 您可以通过将代码(如果足够大)分解为多个文件/脚本,然后将这些文件分解为简短,集中的功能来应用。 这就是所谓的模块化编程原理。

上一节中的每个小人物都有自己的秘密。 他们没有告诉任何人关于他们的事。 但是,为了共同发挥作用,他们都应该知道某些事情。 实际上,这被称为封装的概念,其中每个代码块都有自己的变量和子算法,通过它可以执行其职责。

未记录的代码是无法使用的代码。 记录代码的最简单形式是通过代码内注释。 这并不意味着对代码的每一行都进行注释,而是在相关代码行的每一块的开始处表达算法意图

遵循到目前为止提出的不同原则,将导致您的代码被相当分段。 但是,我们可以以这样一种方式来构建代码,以便每个块标题(即函数定义)都解释即将到来的小节。 这可以通过根据每行代码在程序中的位置和角色进行缩进来实现。 一些编程语言迫使程序员缩进其代码(例如Python,Haskell等),而其他语言(例如C ++,JavaScript等)则不这样做。 原则上,所有代码都必须分段。

关于代码可重用性,最重要的实践之一是命名约定。 这应该以某种方式起作用,从而使得如果一个随机的人查看代码中的任意行,那么他们就应该能够对该特定行的行为有所了解,而不必查看整个代码块。 每个变量名称都应描述变量本身包含的内容。 每个函数名称都应表明程序中该函数的职责。

关于编程的一个重要事实是,在任何给定的点上,有不止一种方法可以编写执行相同功能的代码段。 这使一些程序员在以显示其经验水平的方式或以相当直接的方式编写代码之间进行权衡。 总是简单! 如果您的代码不可读,那么您假定的样式过于复杂就浪费了。

不要重复自己。 在任何时候,如果您意识到要从程序的另一部分复制自己的代码,请停止并重新评估手头的代码块的存在。 您的程序应始终清除所有复制粘贴

没有完美的代码。 即使您的代码完成了工作,效率还是有一定提高空间的。 从最小化全局变量的数量到使用其他更有效的数据结构。 归根结底,不仅解决问题的能力使优秀的程序员与普通的程序员区别开来,而且在时间和空间复杂性方面还提高了其算法的效率。


每个程序员都应蓬勃发展,以更好地做自己的工作。 这使技术制作社区之间的交流更加容易,从而可以更好,更快地解决实际问题。