我听说有些人说,提高您的编码能力的最佳方法之一是阅读并理解其他代码。作为一个相对较新的程序员,我的问题是,我应该去哪里找到不太费力的好的源代码示例?
我听说有些人说,提高您的编码能力的最佳方法之一是阅读并理解其他代码。作为一个相对较新的程序员,我的问题是,我应该去哪里找到不太费力的好的源代码示例?
Answers:
您可以在GitHub,Codeplex,Google Code或BitBucket等存储库站点上浏览开源项目。您会发现不同复杂性级别的项目,因此您应该能够找到既使您感兴趣又不会让您费解太多的事情。
另一种选择是Scott Hanselman的每周源代码博客文章。
我建议从一个已建立的活动项目开始,以降低开始阅读尚未通过使用和审查的代码的几率。理想情况下,找到您感兴趣并且可以使用的东西。使用该应用程序将帮助您了解源代码。选择一个开源项目的另一个好处是,您可以提供一些修复程序或功能,这将有助于使阅读代码更加有趣。
盯着一堆别人的代码可能会令人生畏,所以从main
函数(或等效函数)开始,然后逐步进行。
很少有人会在第一次尝试时就编写出色的源代码。好的源代码通常是由一系列修订产生的。因此,如果您可以找到经过多次同行评审并经过多次修复的源代码,那么您的位置可能更好。对某些开源项目(以及其中的某些部分)进行了特别仔细的审查。来自具有强制审核周期的公司(例如Google,但还有很多其他公司)的代码可能很适合。
话虽这么说,我不确定您的目标应该是找到“伟大的代码”。应该是查看不同样式的代码(例如您的同事编写的代码),并学习识别有关代码的优缺点。您发现的坏点越多,您就越会努力使代码变得更好并知道如何做。
特别是,我相信获得良好代码感的一种非常好的方法是使用交互式调试器按照调用链来跟踪复杂的代码。例如,转到公司的主文件之一,放置一个断点,然后开始从文件中找出问题。
几次后,您就会对具有十个缩进级别和对全局变量的依赖的100行函数感到迷惑,并且几次通过分解良好的代码轻而易举地改善了自己的编程。
我发现,您选择的编程语言随附的库代码通常是了解最佳实践和良好编码风格的良好开端。
尽管您不想从排序算法或复杂容器类之类的地方开始。
编写代码的有趣见解的另一个地方是Project Euler(http://projecteuler.net/)。那里的弱点:您必须首先解决问题,才能进入其他人张贴其解决方案的论坛(所有经验水平的有趣挑战)。但是一旦完成,您将找到几乎所有主要编程语言的示例。并且既然您已经解决了问题,它将帮助您理解其他人的代码。此外,您还可以看到尚不了解但可能会很有趣的语言代码。
我真的很喜欢阅读美丽代码。它具有简短但非常不错的代码示例,并带有详细说明。
...领先的计算机科学家提供了案例研究,揭示了他们如何找到与众不同的,精心设计的解决方案来应对备受瞩目的项目。您将可以在主要的编码和设计专家的肩膀上看到,通过他们的眼睛看问题。
...作者在研究项目的体系结构时会大声思考,在项目构建过程中要进行权衡,以及何时打破规则很重要。
这本书包含33章,由Brian Kernighan,KarlFogel,Jon Bentley,Tim Bray,Elliotte Rusty Harold,Michael Feathers,Alberto Savoia,Charles Petzold,Douglas Crockford,Henry S.Warren,Jr.,Ashish Gulhati,Lincoln Stein,Jim Kent贡献,Jack Dongarra和PiotrLuszczek,Adam Kolawa,Greg Kroah-Hartman,Diomidis Spinellis,AndrewKuchling,Travis E.Oliphant,Ronald Mak,Rogerio Atem de Carvalho和Rafael Monnerat,Bryan Cantrill,Jeff Dean和Sanjay Ghemawat,SimonPeyb Jones,奥特(Otte)和道格拉斯(Douglas C.