Eil*_*idh 9 readability code-readability
我意识到,作为一名编程学生,我最大的弱点就是我很难理解其他人的代码.
我对"教科书"代码或明确注释的代码没有任何麻烦,但是当给出几百行的程序,包含十几个不同的函数而没有注释时,我发现它甚至很难开始.
我知道这种类型的代码是我在职业生涯中可能遇到的代码,我认为代码理解能力差对我来说是一个很大的障碍,所以我想专注于提高我的技能在这方面.
哪些工具/技术有助于提高您的体验中的代码理解力?
你如何处理不熟悉的,未注释的代码?为什么?你认为你的技术有用吗?
谢谢
熟悉国外代码
如果代码库足够小,您可以立即开始阅读。到了某个时候,这些碎片就会开始拼凑在一起。
在这种情况下,“足够小”会有所不同,随着您的经验增加,它会变得更大。您还将开始从这里的“作弊”中受益:您可以跳过根据经验识别为“实现模式 X”的代码片段。
您可能会发现在阅读代码时绕一些小弯路很有帮助,例如,在看到函数被调用时查找该函数,然后花一点时间浏览它。在了解被调用函数的作用之前,不要走这些弯路;这不是重点,它会让你感觉自己在跳来跳去,毫无进展。绕道的目标是在不到半分钟的时间内了解新函数的作用。如果不能,说明该功能太复杂。中止绕道并接受这样一个事实:在没有这种额外帮助的情况下,您将必须了解您的“当前”功能。
如果代码库太大,你就无法开始阅读它。在这种情况下,您可以首先在高级抽象级别上识别程序的逻辑组件。您的目标是将源代码中的类型(类)与这些组件相关联,然后确定每个类在其组件中扮演的角色。将有在组件内部使用的类以及用于与其他组件或框架通信的类。这里进行分而治之:首先将类分成相关的组,然后关注一个组并了解其各个部分如何组合在一起。
为了帮助您完成此任务,您可以使用源代码的结构作为指南(而不是作为最终法则;由于人为错误,它有时可能会产生误导)。您还可以使用函数或类型的“查找用法”等工具来查看每个函数或类型的引用位置。再次强调,如果您不能相当快地完成,请不要尝试完全理解 IDE 告诉您的内容。当这种情况发生时,这意味着您从一台您不太了解的机器中取出了一块复杂的金属。把它放回去并尝试其他的东西,直到找到你能理解的东西。
调试国外代码
这完全是另一回事了。我会稍微欺骗一下,除非你积累了大量的经验,否则只要代码对你来说是陌生的,你就不可能成功地调试它。
我发现绘制调用图和继承树通常对我有用。您可以使用任何手边的工具;我通常只使用白板。
通常,代码单元/函数本身很容易理解,而且我可以清楚地看到每个单元是如何运行的,但我常常很难看到更大的图景,这就是故障发生的地方,我得到这个“我”我迷失了”的感觉。
从小处开始。对自己说:“我想完成x,那么代码中是如何完成的呢?” 其中x是您可以跟踪的一些小操作。然后,只需跟踪代码,制作一些可视化的东西,以便您可以在跟踪后回顾。
然后,选择另一个x并重复该过程。每次执行此操作时,您都应该对代码有更好的感觉。
当需要实现某些东西时,选择与您追踪的事物之一相似(但不几乎相同)的东西。通过这样做,您可以从跟踪级别的理解转变为实现级别的理解。
与第一次编写代码的人交谈也很有帮助。
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |