阅读优秀源代码
-----------YouXiFans整理--------------------
成为大师的方法之一是,到一位大师,让其倾囊传授其所知。 有这种可能么?当然了,有这可能,虽然机会不大,但你必须极其走运。 不过你不必十分走运,因为我们幸运地处于这样一个职业,一个充满着大师知识和技能的职业,等待我们去汲取吸收,这些东西就在他们所编写的代码中。
大多数的伟大作家也是如饥似渴的读者,这是一个普遍事实。 在你能写出任何拿得出手的东西之前,你需要品读其他伟大作家,吸收不同的风格,看看前辈已尝试过的东西,从中吸取精华。对于程序员来说,阅读卓越代码就如同作家阅读优秀书籍一样重要。
你不能只靠长时间盯着代码来阅读代码,你要理解它并化为己用。 这里有一些我喜欢用的技巧,虽然这不是一份详尽的列表,但我发现其中有些特别有用。
      1. 尽力构建并运行代码。
虽然构建通常非常复杂,但通过构建并生成可执行的代码,你能学到很多。
      2. 不要只注重细节。
你要做的第一件事是,在你正阅读的代码中,到代码结构和风格的。 首先浏览一下代码,尽力理解不同代码段要做什么。这会让你熟整个代码的上层结构,你也能领会到你正处理的代码的一些构思(良好架构和意大利面条等)。 这时候,你可以到切入点(不管它是什么,主函数、servlet或控制器等),并查看代码如何在那里分支。 不要在这上面花过多的时间,随着你愈加熟悉代码,你可以随时回来查看。
      3. 确信自己理解所有结构。
除非你碰巧是所用编程语言的首席专家,否则该语言有些它能做的事你可能还不知道。当你在浏览代码时,记下所有你不熟悉的结构。即便只有几个你不熟悉的结构,你应当深入查看,探索你所用编程语言中你以前不知道的东西。
     4. 既然你对大多数结构已有很好了解,那现在是该做些随机深入研究了。
就像步骤2,开始浏览代码,但这次要挑选一些随机函数或类,并开始逐行详细查看。 这是硬仗开始的地方,但也是你要取得主要成功的地方。 这里的构想,会形成你正在查看的
代码库的思维模式。 也不要在这上面花过长的时间,但在继续前行之前,你要尽力并极大吸收一些有内容的代码块。 这个步骤,你也可以随时反复回过头来,每次你都会了解更多的背景,并收获更多。
-----------YouXiFans 整理--------------------
     5. 测试。 
在测试的时候,你的麻烦可能会更少,同时你也能理解代码。 我一直感到奇怪,开发人员忽略一套写得很好很全面的测试代码,而尽力去阅读并理解某些代码。 
     6.编写测试
(编写测试)有助于你自己的理解,有助于你提升代码库,阅读代码时也要编写代码。即便已经有了测试,你也可以编写一些测试。测试代码通常需要换种方式思考问题,那些你以前不太明了的概念也会变得更清晰。
      7. 提取奇特的代码,使其成为单独的程序。
即便你不了解代码的底层细节,你或许能知道一些代码在上层结构上要做什么。提取一些特定的函数,单独列为独立的程序。当你在执行小段程序时,调试也会更简单。反过来说,可能还需要一些额外的步骤,才能理解你正查看的代码。
     8. 重构
我并不建议你重写整个代码库,但重构部分代码怎样写代码 自己做编程,真的有助于你理解上升一个层次。把你理解的函数拿出来,改成独立的函数。在你知道之前,原来的大函数看起来易管理,你可以在脑海中修改它。重构允许你把代码变成自己的,无需完成重写代码。 如果有好的测试,有助于重构,但即便你没有好的测试,抽取你确定的函数并做测试。 即便测试看起来不完全充分,但作为一个开发人员,你得学着相信你的技能,有时候你只需努力去做(重构)。(如果你必须重构,你通常都可以把代码恢复原状。)
     9. 如果没什么人能帮上你,那你就个阅读代码的同伴。或许并非只有你一个人能从这代码中获益,所以去一个人,一起阅读代码吧。 但你别专家,他们会从上层结构上,向你解释所有东西,你会错失那些你自己详细查看代码时所能学到的细微差别。然而,如果不见效,不能理解的话,你能做的最好的事就是去问 向你的同事请教,如果你正在阅
读开源代码,可以在互联网上人问问。 但是你要记住,这是最后一步,而不是第一步。
-----------YouXiFans 整理--------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。